diff --git a/apps/landing/src/components/enterprise.tsx b/apps/landing/src/components/enterprise.tsx new file mode 100644 index 00000000..bacf26f4 --- /dev/null +++ b/apps/landing/src/components/enterprise.tsx @@ -0,0 +1,56 @@ +import { Lock, Server, Users } from "lucide-react"; + +import { FadeIn } from "./fade-in"; + +const features = [ + { + title: "Data Sovereignty", + description: + "Your images never leave your network. No external API calls, no cloud dependencies. Full GDPR, HIPAA, CCPA compliance by architecture.", + icon: Lock, + }, + { + title: "Enterprise Controls", + description: + "Multi-user authentication, team permissions, API key management, and audit logging. Everything you need for regulated environments.", + icon: Users, + }, + { + title: "Deploy Anywhere", + description: + "Docker, Kubernetes, bare metal. ARM and x86. Air-gapped networks. One container, any infrastructure.", + icon: Server, + }, +]; + +export function Enterprise() { + return ( + + + + + Built for organizations that take data seriously. + + + Healthcare, legal, defense, finance — when images are sensitive, SnapOtter keeps them on + your infrastructure. + + + + + {features.map((feat, i) => ( + + + + + + {feat.title} + {feat.description} + + + ))} + + + + ); +} diff --git a/apps/landing/src/components/how-it-works.tsx b/apps/landing/src/components/how-it-works.tsx new file mode 100644 index 00000000..6ae652f7 --- /dev/null +++ b/apps/landing/src/components/how-it-works.tsx @@ -0,0 +1,55 @@ +import { FadeIn } from "./fade-in"; + +const steps = [ + { + number: "1", + title: "Pull", + code: "docker pull snapotter/snapotter", + description: "One image. Everything included.", + }, + { + number: "2", + title: "Deploy", + code: "docker run -p 8080:8080 snapotter/snapotter", + description: "One command. Any server.", + }, + { + number: "3", + title: "Use", + code: null, + description: "Browser UI, REST API, or pipeline automation.", + }, +]; + +export function HowItWorks() { + return ( + + + + + Up and running in 60 seconds. + + + + + {steps.map((step, i) => ( + + + + {step.number} + + {step.title} + {step.code && ( + + {step.code} + + )} + {step.description} + + + ))} + + + + ); +}
+ Healthcare, legal, defense, finance — when images are sensitive, SnapOtter keeps them on + your infrastructure. +
{feat.description}
{step.description}