diff --git a/apps/landing/src/app/page.tsx b/apps/landing/src/app/page.tsx index 4e27d1fb..71163595 100644 --- a/apps/landing/src/app/page.tsx +++ b/apps/landing/src/app/page.tsx @@ -8,6 +8,7 @@ import { Navbar } from "@/components/navbar"; import { OpenSource } from "@/components/open-source"; import { ThreeWays } from "@/components/three-ways"; import { UseCases } from "@/components/use-cases"; +import { WhyChoose } from "@/components/why-choose"; export default function Home() { return ( @@ -15,6 +16,7 @@ export default function Home() {
+ diff --git a/apps/landing/src/components/typing-cursor.tsx b/apps/landing/src/components/typing-cursor.tsx index dadb0f9b..51768311 100644 --- a/apps/landing/src/components/typing-cursor.tsx +++ b/apps/landing/src/components/typing-cursor.tsx @@ -5,12 +5,15 @@ import { useCallback, useEffect, useState } from "react"; const phrases = [ "No signups. No accounts.", + "No uploads to the cloud. Ever.", "100% local processing.", - "Unlimited use. Forever free.", + "Forever free. No paywalls.", + "No limits. No hidden caps.", "Works fully offline.", - "Zero data leaves your network.", + "Unlimited batch processing.", "50+ image tools.", "14 AI models. Your hardware.", + "Lightning fast. Built on Sharp.", "Air-gapped ready.", "One Docker container.", "Open source. Always.", diff --git a/apps/landing/src/components/why-choose.tsx b/apps/landing/src/components/why-choose.tsx new file mode 100644 index 00000000..62ba8a9a --- /dev/null +++ b/apps/landing/src/components/why-choose.tsx @@ -0,0 +1,65 @@ +import { BadgeCheck, CircleDollarSign, Layers, ShieldCheck, UserRoundX, Zap } from "lucide-react"; +import { FadeIn } from "./fade-in"; + +const benefits = [ + { + title: "No Signup", + description: "Start instantly, no accounts or emails required.", + icon: UserRoundX, + }, + { + title: "No Uploads", + description: "Your files stay on your server. Nothing leaves your network.", + icon: ShieldCheck, + }, + { + title: "Forever Free", + description: "All tools, no trials, no paywalls. Open source.", + icon: CircleDollarSign, + }, + { + title: "No Limits", + description: "Use as much as you want, no hidden caps.", + icon: BadgeCheck, + }, + { + title: "Batch Processing", + description: "Handle unlimited images in one go.", + icon: Layers, + }, + { + title: "Lightning Fast", + description: "Powered by Sharp. Process images instantly.", + icon: Zap, + }, +]; + +export function WhyChoose() { + return ( +
+
+ +

+ Why choose SnapOtter? +

+
+ +
+ {benefits.map((benefit, i) => ( + +
+
+ +

{benefit.title}

+
+

+ {benefit.description} +

+
+
+ ))} +
+
+
+ ); +}