From 764fdec0113307e6b7a7ef28f64c150e7d80ba22 Mon Sep 17 00:00:00 2001 From: jyswee Date: Thu, 23 Jul 2026 22:08:52 +0000 Subject: [PATCH] Seed: landing-page template (12 files) --- src/pages/Index.tsx | 489 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 489 insertions(+) create mode 100644 src/pages/Index.tsx diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx new file mode 100644 index 0000000..7d9c429 --- /dev/null +++ b/src/pages/Index.tsx @@ -0,0 +1,489 @@ +import { useState, useEffect } from "react"; +import { toast } from "sonner"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { Badge } from "@/components/ui/badge"; +import { Avatar, AvatarFallback } from "@/components/ui/avatar"; +import { Input } from "@/components/ui/input"; +import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet"; +import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@/components/ui/accordion"; +import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs"; +import { + Menu, ArrowRight, Check, X, Quote, ChevronLeft, ChevronRight, + Github, Twitter, Linkedin, Instagram, + Sparkles, TrendingUp, Users, Award, Clock, Shield, Zap, Heart, Lock +} from "lucide-react"; +import { Switch } from "@/components/ui/switch"; +import { ThemeToggle } from "@/components/ThemeToggle"; +import { useSaasMutation } from "@/hooks/use-tygarun"; + +export default function LandingPage() { + const [mobileOpen, setMobileOpen] = useState(false); + const [scrolled, setScrolled] = useState(false); + const [activeTestimonial, setActiveTestimonial] = useState(0); + const [email, setEmail] = useState(""); + const [subscribing, setSubscribing] = useState(false); + const { mutate: subscribe } = useSaasMutation("email", "/send/newsletter-confirm"); + + const handleSubscribe = async (e: React.FormEvent) => { + e.preventDefault(); + if (!email.includes("@")) return; + setSubscribing(true); + try { + await subscribe({ email }); + toast.success("You're in! Check your inbox."); + setEmail(""); + } catch { + toast.error("Could not subscribe. Please try again."); + } finally { + setSubscribing(false); + } + }; + + useEffect(() => { + const onScroll = () => setScrolled(window.scrollY > 20); + window.addEventListener("scroll", onScroll); + return () => window.removeEventListener("scroll", onScroll); + }, []); + + const testimonials = [ + { quote: "Luminary replaced four tools for us. Our product team finally has a single source of truth: from customer feedback to shipped features.", name: "Elena Rodriguez", title: "VP Product", company: "Notion" }, + { quote: "The insights engine alone justified the switch. We discovered three critical pain points that our NPS surveys completely missed.", name: "David Chen", title: "CPO", company: "Loom" }, + { quote: "Our roadmap used to live in five different spreadsheets. Now the entire company can see what we are building and why it matters.", name: "Priya Patel", title: "Head of Product", company: "Figma" }, + ]; + + const navLinks = [ + { label: "Features", href: "#features" }, + { label: "Results", href: "#stats" }, + { label: "Pricing", href: "#pricing" }, + { label: "Stories", href: "#testimonials" }, + ]; + + return ( +
+ {/* ── HEADER ── */} +
+
+ + Luminary + + +
+ + +
+ + + + + + + + +
+
+ + {/* ── HERO ── */} +
+ {/* Grid dots pattern */} +
+
+
+
+
+
+
+ + Launching Summer 2026 + +

+ Transform how your team builds products that customers love +

+

+ The all-in-one platform that brings together product strategy, customer insights, and execution, so you can focus on what matters most. +

+
+ + +
+
+ No credit card required +
+ {/* Social proof row */} +
+
+ {["A", "B", "C", "D"].map((letter, i) => ( + + {letter} + + ))} +
+

Joined by 2,400+ product teams this month

+
+
+
+ + {/* ── SOCIAL PROOF BAR ── */} +
+
+
+ {[ + { value: "12K+", label: "Active Teams" }, + { value: "4.9/5", label: "Average Rating" }, + { value: "98%", label: "Retention Rate" }, + { value: "150+", label: "Countries" }, + ].map((s, i) => ( +
+ {s.value} + {s.label} +
+ ))} +
+
+
+ + {/* ── FEATURES ── */} +
+
+
+ Why Luminary +

Built for teams that refuse to settle

+

Three core capabilities that change the way you work, from ideation to impact.

+
+ {[ + { + icon: , title: "Instant insights from every customer touchpoint", desc: "Automatically capture, organize, and surface customer feedback from support tickets, interviews, and surveys in real time.", + bullets: ["AI-powered sentiment analysis across all channels", "Automated tagging and theme detection", "Real-time alerting for emerging trends"], gradient: "from-indigo-500 to-violet-600" + }, + { + icon: , title: "Roadmaps that align your entire organization", desc: "Create living roadmaps that connect strategy to execution. Keep stakeholders informed and teams focused on the highest-impact work.", + bullets: ["Visual timeline and kanban views", "Automatic dependency mapping", "Stakeholder sharing with custom permissions"], gradient: "from-emerald-500 to-teal-600" + }, + { + icon: , title: "Measure impact, not just output", desc: "Track how every feature affects your core metrics. Know exactly which bets paid off and where to double down.", + bullets: ["Built-in OKR and KPI tracking", "Feature-level impact attribution", "Executive dashboards with one-click export"], gradient: "from-amber-500 to-orange-600" + }, + ].map((feature, i) => ( +
+ {/* Image placeholder */} +
+
+
+
+
{i + 1}
+
+
Live demo →
+
+
+
+ {/* Content */} +
+ + {feature.icon} + Feature {i + 1} + +

{feature.title}

+

{feature.desc}

+
    + {feature.bullets.map((b, j) => ( +
  • + + {b} +
  • + ))} +
+
+
+ ))} +
+
+ + {/* ── STATS ── */} +
+
+
+

The numbers speak for themselves

+
+ {[ + { icon: , value: "2.4M+", label: "Insights Captured" }, + { icon: , value: "37%", label: "Faster Time-to-Market" }, + { icon: , value: "#1", label: "on G2 for Product Mgmt" }, + { icon: , value: "< 2 min", label: "Average Setup Time" }, + ].map((s, i) => ( +
+
+ {s.icon} +
+
{s.value}
+
{s.label}
+
+ ))} +
+
+
+ + {/* ── TESTIMONIALS ── */} +
+
+

What product leaders are saying

+
+ +
+

+ "{testimonials[activeTestimonial].quote}" +

+
+ + + {testimonials[activeTestimonial].name.split(" ").map((n: string) => n[0]).join("")} + + +
+
{testimonials[activeTestimonial].name}
+
{testimonials[activeTestimonial].title}
+
{testimonials[activeTestimonial].company}
+
+
+ {/* Navigation dots */} +
+ + {testimonials.map((_, i) => ( + +
+
+
+
+
+ + {/* ── PRICING ── */} +
+
+
+ Pricing +

Simple, transparent pricing

+

Start free, scale as you grow. No hidden fees, cancel anytime.

+
+
+ Monthly + + Annual + Save 20% +
+
+ {[ + { + name: "Free", price: "$0", period: "/month", desc: "For individuals and small teams getting started.", + features: ["Up to 10 team members", "1,000 insights/month", "Basic roadmaps", "Community support"], + missing: ["Advanced analytics", "Custom integrations"], + cta: "Get Started Free", popular: false, + }, + { + name: "Pro", price: "$29", period: "/user/month", desc: "For growing teams that need advanced features.", + features: ["Unlimited team members", "Unlimited insights", "Advanced roadmaps & OKRs", "Priority support", "All integrations"], + missing: [], + cta: "Start Free Trial", popular: true, + }, + { + name: "Enterprise", price: "Custom", period: "", desc: "For organizations with advanced security and compliance needs.", + features: ["Everything in Pro", "SSO & SAML", "Dedicated account manager", "Custom SLA", "Audit logs & compliance", "On-premise deployment"], + missing: [], + cta: "Contact Sales", popular: false, + }, + ].map((plan, i) => ( + + {plan.popular && ( +
+ Most Popular +
+ )} + + {plan.name} +
+ {plan.price} + {plan.period} +
+

{plan.desc}

+
+ +
    + {plan.features.map((f, j) => ( +
  • + {f} +
  • + ))} + {plan.missing.map((m, j) => ( +
  • + {m} +
  • + ))} +
+ +
+
+ ))} +
+
+
+ + {/* ── FAQ ── */} +
+
+
+

Frequently asked questions

+

Everything you need to know about the platform.

+
+ + + + {[ + { q: "How does the free plan work?", a: "The free plan includes up to 10 team members and 1,000 insights per month. No credit card required to get started." }, + { q: "Can I change plans later?", a: "Absolutely. You can upgrade, downgrade, or cancel your plan at any time. Changes take effect at the start of your next billing cycle." }, + { q: "What integrations do you support?", a: "We integrate with Slack, Jira, Linear, Notion, Intercom, Zendesk, and 50+ more tools. Custom integrations are available on Enterprise plans." }, + { q: "Is my data secure?", a: "Yes. We are SOC 2 Type II certified, GDPR compliant, and all data is encrypted at rest and in transit. Enterprise plans include additional security features." }, + { q: "Do you offer a trial period?", a: "Yes, all paid plans come with a 14-day free trial. You can explore all features before committing." }, + { q: "How do I get support?", a: "Free plans get community support. Pro plans include priority email support with 4-hour response times. Enterprise gets dedicated account management and phone support." }, + ].map((faq, i) => ( + + {faq.q} + {faq.a} + + ))} + + + +
+

Still have questions?

+ +
+
+
+ + {/* ── CTA ── */} +
+
+

Ready to build products your customers love?

+

Join thousands of product teams who ship better, faster, and with more confidence.

+
+ setEmail(e.target.value)} + placeholder="Enter your work email" + className="h-12 rounded-full bg-white/95 text-foreground border-0 px-6 flex-1" + /> + +
+

Free for teams up to 10. No credit card required.

+
+
+ + {/* ── FOOTER ── */} + +
+ ); +} \ No newline at end of file