From a8988c074261e7d351b7241581969f6e6c320dbf Mon Sep 17 00:00:00 2001 From: ashim-hq Date: Thu, 23 Apr 2026 17:28:41 +0800 Subject: [PATCH] feat: add API Callout, Open Source, and Footer sections --- apps/landing/src/components/api-callout.tsx | 66 +++++++++++++++ apps/landing/src/components/footer.tsx | 92 +++++++++++++++++++++ apps/landing/src/components/open-source.tsx | 30 +++++++ 3 files changed, 188 insertions(+) create mode 100644 apps/landing/src/components/api-callout.tsx create mode 100644 apps/landing/src/components/footer.tsx create mode 100644 apps/landing/src/components/open-source.tsx diff --git a/apps/landing/src/components/api-callout.tsx b/apps/landing/src/components/api-callout.tsx new file mode 100644 index 00000000..f923a8dc --- /dev/null +++ b/apps/landing/src/components/api-callout.tsx @@ -0,0 +1,66 @@ +import { FadeIn } from "./fade-in"; + +const request = `curl -X POST https://your-server/api/tools/resize \\ + -H "X-API-Key: sk_live_..." \\ + -F "image=@photo.jpg" \\ + -F "width=800"`; + +const response = `{ + "success": true, + "output": "resized_photo.jpg", + "metadata": { + "width": 800, + "height": 600, + "format": "jpeg", + "size": "124KB" + } +}`; + +export function ApiCallout() { + return ( +
+
+ +

+ API-first by design. +

+

+ Every tool accessible via HTTP. OpenAPI documentation included. +

+
+ + +
+
+
+ Request +
+
+                {request}
+              
+
+
+
+ Response +
+
+                {response}
+              
+
+
+
+ + +

+ + Explore the API Docs → + +

+
+
+
+ ); +} diff --git a/apps/landing/src/components/footer.tsx b/apps/landing/src/components/footer.tsx new file mode 100644 index 00000000..d41f65f3 --- /dev/null +++ b/apps/landing/src/components/footer.tsx @@ -0,0 +1,92 @@ +import { Github } from "lucide-react"; + +const columns = [ + { + title: "Product", + links: [ + { label: "Features", href: "#features" }, + { label: "Demo", href: "https://demo.snapotter.com" }, + { label: "Enterprise", href: "#enterprise" }, + ], + }, + { + title: "Resources", + links: [ + { label: "Documentation", href: "https://docs.snapotter.com" }, + { label: "API Reference", href: "https://docs.snapotter.com/api" }, + { + label: "Docker Hub", + href: "https://hub.docker.com/r/snapotter/snapotter", + }, + ], + }, + { + title: "Community", + links: [ + { label: "GitHub", href: "https://github.com/ashim-hq/ashim" }, + { + label: "Contributing", + href: "https://github.com/ashim-hq/ashim/blob/main/CONTRIBUTING.md", + }, + { + label: "Discussions", + href: "https://github.com/ashim-hq/ashim/discussions", + }, + ], + }, +]; + +export function Footer() { + return ( + + ); +} diff --git a/apps/landing/src/components/open-source.tsx b/apps/landing/src/components/open-source.tsx new file mode 100644 index 00000000..a1a1f8dc --- /dev/null +++ b/apps/landing/src/components/open-source.tsx @@ -0,0 +1,30 @@ +import { Github, Star } from "lucide-react"; +import { FadeIn } from "./fade-in"; + +export function OpenSource() { + return ( +
+
+ +

Open source. Always.

+

+ SnapOtter is AGPL-3.0 licensed. Inspect every line of code. Contribute back. Self-host + forever. No vendor lock-in, no surprise pricing changes, no rug pulls. +

+
+ + + Star on GitHub + + +
+
+
+
+ ); +}