import { buttonVariants } from "@/components/ui/button"; import { cn } from "@/lib/utils"; import { Check, ExternalLink } from "lucide-react"; import { DOCS_LINK, GITHUB_LINK, WAITLIST_LINK } from "./constants"; import NavBar from "./Navbar"; const pricingTiers = [ { name: "Free", price: "$0", period: "", description: "Trying Karakeep out", features: [ "10 bookmarks", "20MB storage", "Mobile & web apps", "Browser extensions", ], buttonText: "Join Waitlist", buttonVariant: "outline" as const, popular: false, }, { name: "Pro", price: "$4", period: "per month", description: "For serious bookmark collectors", features: [ "50,000 bookmarks", "50GB storage", "AI-powered tagging", "Full-text search", "Mobile & web apps", "Browser extensions", ], buttonText: "Join Waitlist", buttonVariant: "default" as const, popular: true, }, { name: "Self-Hosted", price: "Free", period: "forever", description: "Complete control and privacy", features: [ "Unlimited bookmarks", "Unlimited storage", "Complete data control", "Mobile & web apps", "Browser extensions", "Community support", ], buttonText: "View on GitHub", buttonVariant: "outline" as const, popular: false, isGitHub: true, }, ]; function PricingHeader() { return (

Simple{" "} Pricing

Choose the plan that works best for you

); } function PricingCards() { return (
{pricingTiers.map((tier) => (

{tier.name}

{tier.price} {tier.period && ( /{tier.period} )}

{tier.description}

{tier.isGitHub ? ( {tier.buttonText} ) : ( {tier.buttonText} )}
))}
); } function FAQ() { const faqs = [ { question: "What happens to my data if I cancel?", answer: "Your data will be available for 30 days after cancellation. You can export your bookmarks at any time.", }, { question: "Are there any restrictions in the self-hosted version?", answer: "No. The selhosted version is completely free, fully-featured, and open source. You just need to provide your own hosting infrastructure.", }, { question: "Do you offer refunds?", answer: "Yes, we offer a 7-day money-back guarantee for all paid plans.", }, { question: "How should I contact you if I have any questions?", answer: "You can reach us at support@karakeep.app", }, ]; return (

Frequently Asked Questions

{faqs.map((faq) => (

{faq.question}

{faq.answer}

))}
); } function Footer() { const currentYear = new Date().getFullYear(); return (
© 2024-{currentYear}{" "} Localhost Labs Ltd
Docs GitHub
); } export default function Pricing() { return (
); }