diff options
| author | MohamedBassem <me@mbassem.com> | 2025-04-06 22:57:07 +0100 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2025-04-06 22:57:07 +0100 |
| commit | 3f2d3560dc04dbee23237d896c1325389035c738 (patch) | |
| tree | e683bade56297162394075d7ad306c4578ea3c99 /apps/landing/app | |
| parent | 4e32b409a925136ed575b32abe3c8d6028dbc1fb (diff) | |
| download | karakeep-3f2d3560dc04dbee23237d896c1325389035c738.tar.zst | |
refactor: Migrate the landing page from nextjs to vite
Diffstat (limited to 'apps/landing/app')
| -rw-r--r-- | apps/landing/app/apple-icon.png | bin | 3476 -> 0 bytes | |||
| -rw-r--r-- | apps/landing/app/favicon.ico | bin | 15086 -> 0 bytes | |||
| -rw-r--r-- | apps/landing/app/icon.png | bin | 3476 -> 0 bytes | |||
| -rw-r--r-- | apps/landing/app/layout.tsx | 27 | ||||
| -rw-r--r-- | apps/landing/app/opengraph-image.png | bin | 3195946 -> 0 bytes | |||
| -rw-r--r-- | apps/landing/app/page.tsx | 265 | ||||
| -rw-r--r-- | apps/landing/app/privacy/page.tsx | 217 | ||||
| -rw-r--r-- | apps/landing/app/twitter-image.png | bin | 3195946 -> 0 bytes |
8 files changed, 0 insertions, 509 deletions
diff --git a/apps/landing/app/apple-icon.png b/apps/landing/app/apple-icon.png Binary files differdeleted file mode 100644 index 8b600d2f..00000000 --- a/apps/landing/app/apple-icon.png +++ /dev/null diff --git a/apps/landing/app/favicon.ico b/apps/landing/app/favicon.ico Binary files differdeleted file mode 100644 index d940a939..00000000 --- a/apps/landing/app/favicon.ico +++ /dev/null diff --git a/apps/landing/app/icon.png b/apps/landing/app/icon.png Binary files differdeleted file mode 100644 index 3dcfd34c..00000000 --- a/apps/landing/app/icon.png +++ /dev/null diff --git a/apps/landing/app/layout.tsx b/apps/landing/app/layout.tsx deleted file mode 100644 index e655a770..00000000 --- a/apps/landing/app/layout.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import type { Metadata } from "next"; -import { Inter } from "next/font/google"; - -import "@hoarder/tailwind-config/globals.css"; - -import React from "react"; - -const inter = Inter({ subsets: ["latin"] }); - -export const metadata: Metadata = { - title: "Karakeep", - metadataBase: new URL("https://karakeep.app"), - description: - "The Bookmark Everything app. Hoard links, notes, and images and they will get automatically tagged AI.", -}; - -export default async function RootLayout({ - children, -}: Readonly<{ - children: React.ReactNode; -}>) { - return ( - <html lang="en"> - <body className={inter.className}>{children}</body> - </html> - ); -} diff --git a/apps/landing/app/opengraph-image.png b/apps/landing/app/opengraph-image.png Binary files differdeleted file mode 100644 index b0dce115..00000000 --- a/apps/landing/app/opengraph-image.png +++ /dev/null diff --git a/apps/landing/app/page.tsx b/apps/landing/app/page.tsx deleted file mode 100644 index 88fc1b03..00000000 --- a/apps/landing/app/page.tsx +++ /dev/null @@ -1,265 +0,0 @@ -import Image from "next/image"; -import Link from "next/link"; -import HoarderLogo from "@/components/HoarderLogo"; -import { buttonVariants } from "@/components/ui/button"; -import { cn } from "@/lib/utils"; -import appStoreBadge from "@/public/app-store-badge.png"; -import chromeExtensionBadge from "@/public/chrome-extension-badge.png"; -import firefoxAddonBadge from "@/public/firefox-addon.png"; -import playStoreBadge from "@/public/google-play-badge.webp"; -import screenshot from "@/public/hero.webp"; -import { - ArrowDownNarrowWide, - Bookmark, - BrainCircuit, - CheckCheck, - Github, - Server, - SunMoon, - TextSearch, - WalletCards, -} from "lucide-react"; - -const GITHUB_LINK = "https://github.com/hoarder-app/hoarder"; -const DOCS_LINK = "https://docs.karakeep.app"; -const DEMO_LINK = "https://try.karakeep.app"; - -const platforms = [ - { - name: "iOS", - url: "https://apps.apple.com/us/app/hoarder-app/id6479258022", - badge: appStoreBadge, - }, - { - name: "Android", - url: "https://play.google.com/store/apps/details?id=app.hoarder.hoardermobile&pcampaignid=web_share", - badge: playStoreBadge, - }, - { - name: "Chrome Extension", - url: "https://chromewebstore.google.com/detail/hoarder/kgcjekpmcjjogibpjebkhaanilehneje", - badge: chromeExtensionBadge, - }, - { - name: "Firefox Addon", - url: "https://addons.mozilla.org/en-US/firefox/addon/hoarder/", - badge: firefoxAddonBadge, - }, -]; - -const featuresList = [ - { - icon: Bookmark, - title: "Bookmark", - description: "Bookmark links, take simple notes and store images and pdfs.", - }, - { - icon: BrainCircuit, - title: "AI Tagging", - description: - "Automatically tags your bookmarks using AI for faster retrieval.", - }, - { - icon: ArrowDownNarrowWide, - title: "Auto Fetch", - description: - "Automatically fetches title, description and images for links.", - }, - { - icon: WalletCards, - title: "Lists", - description: "Sort your bookmarks into lists for better organization.", - }, - { - icon: TextSearch, - title: "Search", - description: "Search through all your bookmarks using full text search.", - }, - { - icon: Server, - title: "Self Hosting", - description: "Easy self hosting with docker for privacy and control.", - }, - { - icon: CheckCheck, - title: "Bulk Actions", - description: "Quickly manage your bookmarks with bulk actions.", - }, - { - icon: SunMoon, - title: "Dark Mode", - description: "Hoarder supports dark mode for better reading experience.", - }, -]; - -function NavBar() { - return ( - <div className="flex justify-between px-3 py-4"> - <HoarderLogo height={38} /> - <div className="hidden items-center gap-6 sm:flex"> - <Link - href={DOCS_LINK} - className="flex justify-center gap-2 text-center" - > - Docs - </Link> - <Link - href={GITHUB_LINK} - className="flex justify-center gap-2 text-center" - > - GitHub - </Link> - <Link - href={DEMO_LINK} - target="_blank" - className={cn( - "text flex h-full w-28 gap-2", - buttonVariants({ variant: "default" }), - )} - > - Try Demo - </Link> - </div> - </div> - ); -} - -function Hero() { - return ( - <div className="mt-10 flex flex-grow flex-col items-center justify-center gap-6 sm:mt-20"> - <div className="mt-4 w-full space-y-6 text-center"> - <h1 className="text-center text-3xl font-bold sm:text-6xl"> - The{" "} - <span className="bg-gradient-to-r from-purple-600 to-red-600 bg-clip-text text-transparent"> - Bookmark Everything - </span>{" "} - App - </h1> - <div className="mx-auto w-full gap-2 text-base md:w-3/6"> - <p className="text-center text-gray-600"> - Quickly save links, notes, and images and hoarder will automatically - tag them for you using AI for faster retrieval. Built for the data - hoarders out there! - </p> - </div> - </div> - <div className="flex h-10 gap-4"> - <Link - href={DEMO_LINK} - target="_blank" - className={cn( - "text flex w-28 gap-2", - buttonVariants({ variant: "default", size: "lg" }), - )} - > - Try Demo - </Link> - <Link - href={GITHUB_LINK} - target="_blank" - className={cn( - "flex gap-2", - buttonVariants({ variant: "outline", size: "lg" }), - )} - > - <Github /> GitHub - </Link> - </div> - </div> - ); -} - -function Platforms() { - return ( - <div className="bg-gray-100 py-20"> - <h2 className="text-center text-3xl font-semibold"> - Apps & Extensions for Seamless Access - </h2> - <p className="mt-2 text-center text-gray-600"> - Enjoy seamless access with our mobile apps and browser extensions. - </p> - <div className="mt-6 flex flex-wrap items-center justify-center gap-6 px-6"> - {platforms.map((platform) => ( - <div key={platform.name}> - <Link - href={platform.url} - target="_blank" - className="flex items-center justify-center gap-2" - > - <Image - className="h-12 w-auto rounded-md" - alt={platform.name} - src={platform.badge} - /> - </Link> - </div> - ))} - </div> - </div> - ); -} - -function Features() { - return ( - <div className="mx-auto block px-10 py-20 sm:w-4/5 sm:px-0"> - <div className="grid grid-cols-1 gap-8 sm:grid-cols-4 sm:gap-14"> - {featuresList.map((feature) => ( - <div key={feature.title} className="flex flex-col gap-1 sm:gap-2"> - <div className="flex gap-2"> - <feature.icon size={20} /> - <h3 className="text-md font-semibold text-gray-800"> - {feature.title} - </h3> - </div> - <p className="text-gray-600">{feature.description}</p> - </div> - ))} - </div> - </div> - ); -} - -function Footer() { - return ( - <div className="flex items-center justify-between bg-black px-10 py-6 text-sm text-gray-300"> - <div>© 2024 karakeep.app</div> - <div className="flex items-center gap-6"> - <Link - href={DOCS_LINK} - className="flex justify-center gap-2 text-center" - > - Docs - </Link> - <Link - href={GITHUB_LINK} - className="flex justify-center gap-2 text-center" - > - GitHub - </Link> - </div> - </div> - ); -} - -function Screenshots() { - return ( - <div className="mx-auto mt-6 w-10/12"> - <Image alt="screenshot" src={screenshot} /> - </div> - ); -} - -export default function LandingPage() { - return ( - <div className="flex min-h-screen flex-col"> - <div className="container flex flex-col pb-10"> - <NavBar /> - <Hero /> - </div> - <Screenshots /> - <Features /> - <Platforms /> - <Footer /> - </div> - ); -} diff --git a/apps/landing/app/privacy/page.tsx b/apps/landing/app/privacy/page.tsx deleted file mode 100644 index 366a0395..00000000 --- a/apps/landing/app/privacy/page.tsx +++ /dev/null @@ -1,217 +0,0 @@ -export default function PrivacyPolicy() { - return ( - <div className="p-4"> - <title>Hoarder - Privacy Policy</title> - <strong>Privacy Policy</strong> - <p> - This privacy policy applies to the Hoarder App app (hereby referred to - as "Application") for mobile devices that was created by - Mohamed Bassem (hereby referred to as "Service Provider") as - an Open Source service. This service is intended for use "AS - IS". - </p> - <br /> - <strong>Information Collection and Use</strong> - <p> - The Application collects information when you download and use it. This - information may include information such as - </p> - <ul> - <li>Your device's Internet Protocol address (e.g. IP address)</li> - <li> - The pages of the Application that you visit, the time and date of your - visit, the time spent on those pages - </li> - <li>The time spent on the Application</li> - <li>The operating system you use on your mobile device</li> - </ul> - <p /> - <br /> - <p> - The Application does not gather precise information about the location - of your mobile device. - </p> - <div style={{ display: "none" }}> - <p> - The Application collects your device's location, which helps the - Service Provider determine your approximate geographical location and - make use of in below ways: - </p> - <ul> - <li> - Geolocation Services: The Service Provider utilizes location data to - provide features such as personalized content, relevant - recommendations, and location-based services. - </li> - <li> - Analytics and Improvements: Aggregated and anonymized location data - helps the Service Provider to analyze user behavior, identify - trends, and improve the overall performance and functionality of the - Application. - </li> - <li> - Third-Party Services: Periodically, the Service Provider may - transmit anonymized location data to external services. These - services assist them in enhancing the Application and optimizing - their offerings. - </li> - </ul> - </div> - <br /> - <p> - The Service Provider may use the information you provided to contact you - from time to time to provide you with important information, required - notices and marketing promotions. - </p> - <br /> - <p> - For a better experience, while using the Application, the Service - Provider may require you to provide us with certain personally - identifiable information, including but not limited to Name,Email. The - information that the Service Provider request will be retained by them - and used as described in this privacy policy. - </p> - <br /> - <strong>Third Party Access</strong> - <p> - Only aggregated, anonymized data is periodically transmitted to external - services to aid the Service Provider in improving the Application and - their service. The Service Provider may share your information with - third parties in the ways that are described in this privacy statement. - </p> - <div> - <br /> - <p> - Please note that the Application utilizes third-party services that - have their own Privacy Policy about handling data. Below are the links - to the Privacy Policy of the third-party service providers used by the - Application: - </p> - <ul> - <li> - <a - href="https://www.google.com/policies/privacy/" - target="_blank" - rel="noopener noreferrer" - > - Google Play Services - </a> - </li> - <li> - <a - href="https://expo.io/privacy" - target="_blank" - rel="noopener noreferrer" - > - Expo - </a> - </li> - </ul> - </div> - <br /> - <p> - The Service Provider may disclose User Provided and Automatically - Collected Information: - </p> - <ul> - <li> - as required by law, such as to comply with a subpoena, or similar - legal process; - </li> - <li> - when they believe in good faith that disclosure is necessary to - protect their rights, protect your safety or the safety of others, - investigate fraud, or respond to a government request; - </li> - <li> - with their trusted services providers who work on their behalf, do not - have an independent use of the information we disclose to them, and - have agreed to adhere to the rules set forth in this privacy - statement. - </li> - </ul> - <p /> - <br /> - <strong>Opt-Out Rights</strong> - <p> - You can stop all collection of information by the Application easily by - uninstalling it. You may use the standard uninstall processes as may be - available as part of your mobile device or via the mobile application - marketplace or network. - </p> - <br /> - <strong>Data Retention Policy</strong> - <p> - The Service Provider will retain User Provided data for as long as you - use the Application and for a reasonable time thereafter. If you'd - like them to delete User Provided Data that you have provided via the - Application, please contact them at me@mbassem.com and they will respond - in a reasonable time. - </p> - <br /> - <strong>Children</strong> - <p> - The Service Provider does not use the Application to knowingly solicit - data from or market to children under the age of 13. - </p> - <div> - <br /> - <p> - The Application does not address anyone under the age of 13. The - Service Provider does not knowingly collect personally identifiable - information from children under 13 years of age. In the case the - Service Provider discover that a child under 13 has provided personal - information, the Service Provider will immediately delete this from - their servers. If you are a parent or guardian and you are aware that - your child has provided us with personal information, please contact - the Service Provider (me@mbassem.com) so that they will be able to - take the necessary actions. - </p> - </div> - <br /> - <strong>Security</strong> - <p> - The Service Provider is concerned about safeguarding the confidentiality - of your information. The Service Provider provides physical, electronic, - and procedural safeguards to protect information the Service Provider - processes and maintains. - </p> - <br /> - <strong>Changes</strong> - <p> - This Privacy Policy may be updated from time to time for any reason. The - Service Provider will notify you of any changes to the Privacy Policy by - updating this page with the new Privacy Policy. You are advised to - consult this Privacy Policy regularly for any changes, as continued use - is deemed approval of all changes. - </p> - <br /> - <p>This privacy policy is effective as of 2024-03-19</p> - <br /> - <strong>Your Consent</strong> - <p> - By using the Application, you are consenting to the processing of your - information as set forth in this Privacy Policy now and as amended by - us. - </p> - <br /> - <strong>Contact Us</strong> - <p> - If you have any questions regarding privacy while using the Application, - or have questions about the practices, please contact the Service - Provider via email at me@mbassem.com. - </p> - <hr /> - <p> - This privacy policy page was generated by{" "} - <a - href="https://app-privacy-policy-generator.nisrulz.com/" - target="_blank" - rel="noopener noreferrer" - > - App Privacy Policy Generator - </a> - </p> - </div> - ); -} diff --git a/apps/landing/app/twitter-image.png b/apps/landing/app/twitter-image.png Binary files differdeleted file mode 100644 index b0dce115..00000000 --- a/apps/landing/app/twitter-image.png +++ /dev/null |
