diff --git a/packages/frontend/src/pages/Landing.tsx b/packages/frontend/src/pages/Landing.tsx index e09cacb..f348669 100644 --- a/packages/frontend/src/pages/Landing.tsx +++ b/packages/frontend/src/pages/Landing.tsx @@ -1,3 +1,4 @@ +import { Icon } from "@iconify/react"; import { Link } from "react-router-dom"; import { useSession } from "@/components/session-provider"; import ThemeToggle from "@/components/theme-toggle"; @@ -27,27 +28,185 @@ export default function Landing() { -
-
-

Need a snappy project management tool?

-

- Build your next project with Sprint. -

-

- Sick of Jira? Say hello to your new favorite project management tool. -

-
+
+
+ {/* hero section */} +
+
+

+ ship faster without the chaos +

+

+ sprint is project management that stays out of your way. track issues, manage sprints, and + keep your team moving—without the jira headache. +

+
-
- {!isLoading && user ? ( - - ) : ( - - )} +
+ {!isLoading && user ? ( + + ) : ( + <> + + + + )} +
+ +

+ no credit card required · full access for 14 days +

+
+ + {/* problem section */} +
+

+ tired of spending more time managing jira than building product? +

+
+
+ +

+ wasting hours configuring workflows instead of shipping features +

+
+
+ +

+ drowning in features you'll never use while missing the basics +

+
+
+ +

+ context switching kills momentum—your flow state doesn't stand a chance +

+
+
+
+ + {/* solution section */} +
+

+ everything you need, nothing you don't +

+
+
+ +

see your work at a glance

+

+ beautiful, intuitive issue tracking with customizable statuses. organize by projects and + sprints. find what you need in seconds, not minutes. +

+
+ +
+ +

track time without thinking

+

+ built-in time tracking that actually works. start, pause, resume. see where your time goes + without juggling another tool. +

+
+ +
+ +

ship in sprints

+

+ sprint planning that actually works. set date ranges, assign issues, track velocity. keep + your team aligned without the ceremony. +

+
+ +
+ +

stay in flow

+

+ minimal clicks, maximum productivity. keyboard shortcuts, resizable panes, and a clean + interface that gets out of your way. +

+
+
+
+ + {/* features list */} +
+

+ built for developers, by a developer +

+
+ {[ + "organization and project management", + "customizable issue statuses", + "sprint planning with date ranges", + "built-in time tracking", + "role-based access control", + "native desktop app (tauri)", + "self-hostable on your infrastructure", + "clean, resizable interface", + "issue assignment and collaboration", + "jwt authentication", + ].map((feature) => ( +
+ + {feature} +
+ ))} +
+
+ + {/* social proof placeholder */} +
+

join developers who've escaped jira

+
+
+

+ "finally, a project management tool that doesn't slow me down" +

+

early user feedback

+
+
+

+ "built by someone who actually understands developer workflows" +

+

early user feedback

+
+
+

+ "the simplicity is refreshing. no bloat, just what we need" +

+

early user feedback

+
+
+
+ + {/* final cta */} +
+

ready to ship faster?

+

+ start tracking issues, managing sprints, and shipping product in minutes +

+
+ {!isLoading && user ? ( + + ) : ( + + )} +
+

+ no credit card required · 14-day free trial · cancel anytime +

+
diff --git a/packages/frontend/src/pages/Pricing.tsx b/packages/frontend/src/pages/Pricing.tsx index d6a60ad..656b5db 100644 --- a/packages/frontend/src/pages/Pricing.tsx +++ b/packages/frontend/src/pages/Pricing.tsx @@ -1,4 +1,5 @@ import { Icon } from "@iconify/react"; +import { useState } from "react"; import { Link } from "react-router-dom"; import { useSession } from "@/components/session-provider"; import ThemeToggle from "@/components/theme-toggle"; @@ -7,34 +8,87 @@ import { cn } from "@/lib/utils"; const pricingTiers = [ { - name: "Indie", + name: "Starter", price: "£0", + priceAnnual: "£0", period: "Free forever", - description: "Perfect for individual developers and small teams", - features: ["1 organisation (owned or joined)", "1 project", "100 issues", "Up to 5 users"], - cta: "Get started", + description: "Perfect for side projects and solo developers", + tagline: "For solo devs and small projects", + features: [ + "1 organisation (owned or joined)", + "1 project", + "100 issues", + "Up to 5 team members", + "Basic time tracking", + "Email support", + ], + cta: "Get started free", ctaLink: "/login", highlighted: false, }, { name: "Pro", - price: "£12", + price: "£11.99", + priceAnnual: "£9.99", period: "per user/month", - description: "For growing teams and professional developers", + periodAnnual: "per user/month", + description: "For growing teams and professionals", + tagline: "Most Popular", features: [ - "Unlimited issues", - "Unlimited projects", + "Everything in starter", "Unlimited organisations", - "Time tracking & reports", + "Unlimited projects", + "Unlimited issues", + "Advanced time tracking & reports", + "Sprint velocity tracking", + "Priority email support", + "Custom issue statuses", + "Role-based permissions", ], - cta: "Start free trial", + cta: "Try pro free for 14 days", ctaLink: "/login", highlighted: true, }, ]; +const faqs = [ + { + question: "Can I switch plans?", + answer: + "Yes, you can upgrade or downgrade at any time. Changes take effect immediately, and we'll prorate any charges.", + }, + { + question: "Is there a free trial?", + answer: "Yes, pro plan includes a 14-day free trial with full access. No credit card required to start.", + }, + { + question: "What payment methods do you accept?", + answer: "We accept all major credit cards.", + }, + { + question: "What if I need more users?", + answer: + "Pro plan pricing scales with your team. Add or remove users anytime, and we'll adjust your billing automatically.", + }, + { + question: "What happens when my trial ends?", + answer: + "You'll automatically downgrade to the free starter plan. No charges unless you actively upgrade to pro.", + }, + { + question: "Can I cancel anytime?", + answer: + "Absolutely. Cancel anytime with no questions asked. You'll keep access until the end of your billing period.", + }, + { + question: "Do you offer refunds?", + answer: "Yes, we offer a 30-day money-back guarantee. If Sprint isn't right for you, just let us know.", + }, +]; + export default function Pricing() { const { user, isLoading } = useSession(); + const [billingPeriod, setBillingPeriod] = useState<"monthly" | "annual">("monthly"); return (
@@ -58,44 +112,94 @@ export default function Pricing() {
-
+
+ {/* header section */}

Simple, transparent pricing

-

Choose the plan that fits your team

+

+ Choose the plan that fits your team. Scale as you grow. +

+ + {/* billing toggle */} +
+ + + + + Save 17% + +
-
+ {/* pricing tiers */} +
{pricingTiers.map((tier) => (
{tier.highlighted && (
- Most popular + {tier.tagline}
)}
-

{tier.name}

+

{tier.name}

- {tier.price} - {tier.period} + + {billingPeriod === "annual" ? tier.priceAnnual : tier.price} + + + {billingPeriod === "annual" ? tier.periodAnnual : tier.period} +
-

{tier.description}

+

{tier.description}

    {tier.features.map((feature) => (
  • - {feature} + {feature}
  • ))}
@@ -103,7 +207,10 @@ export default function Pricing() { @@ -111,13 +218,51 @@ export default function Pricing() { ))}
-
-

Need something custom?

+ {/* trust signals */} +
+
+
+ +

Secure & Encrypted

+

Your data is encrypted and secure

+
+
+ +

No Credit Card Required

+

Start your free trial today

+
+
+ +

30-day money back

+

Cancel anytime, no questions

+
+
+
+ + {/* faq section */} +
+

Frequently Asked Questions

+
+ {faqs.map((faq) => ( +
+

{faq.question}

+

{faq.answer}

+
+ ))} +
+
+ + {/* final cta */} +
+

Still have questions?

+

+ We're here to help. Get in touch with any questions. +

- Get in touch + Contact Us