diff --git a/apps/web/public/not-found.jpg b/apps/web/public/not-found.jpg
new file mode 100644
index 00000000..9ea832d3
Binary files /dev/null and b/apps/web/public/not-found.jpg differ
diff --git a/apps/web/src/app/about/page.tsx b/apps/web/src/app/about/page.tsx
index 74eb6df9..78ed3185 100644
--- a/apps/web/src/app/about/page.tsx
+++ b/apps/web/src/app/about/page.tsx
@@ -180,14 +180,12 @@ export default function AboutPage() {
{/* CTA section */}
-
-
-
- Don't miss out on the AI wave
-
+
+
+ Don't miss out on the AI wave
+
-
-
+
)
diff --git a/apps/web/src/app/not-found.tsx b/apps/web/src/app/not-found.tsx
new file mode 100644
index 00000000..8cd0540d
--- /dev/null
+++ b/apps/web/src/app/not-found.tsx
@@ -0,0 +1,48 @@
+import { ArrowLeft } from 'lucide-react'
+import Image from 'next/image'
+import Link from 'next/link'
+
+import { Button } from '@/components/ui/button'
+// https://images.unsplash.com/photo-1545972154-9bb223aac798?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&fm=jpg&fit=crop&w=2048&q=80&exp=8&con=-15&sat=-75
+import NotFoundImage from '@/public/not-found.jpg'
+
+export default function NotFound() {
+ return (
+ <>
+
+
+
+
+
404
+
+
+ Page not found
+
+
+
+ Sorry, we couldn’t find the page you’re looking for.
+
+
+
+
+
+
+
+ Back to home
+
+
+ >
+ )
+}
diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/page.tsx
index 51c330c3..6a501e34 100644
--- a/apps/web/src/app/page.tsx
+++ b/apps/web/src/app/page.tsx
@@ -127,20 +127,18 @@ export default async function TheBestDamnLandingPageEver() {
{/* CTA section */}
-
-
-
- Publish your own MCP products with Agentic
-
+
+
+ Publish your own MCP products with Agentic
+
-
- Run one command to turn any MCP server or OpenAPI service into a
- paid MCP product. With built-in support for every major LLM SDK and
- MCP client.
-
+
+ Run one command to turn any MCP server or OpenAPI service into a paid
+ MCP product. With built-in support for every major LLM SDK and MCP
+ client.
+
-
-
+
{/* Open source section */}
@@ -186,14 +184,12 @@ export default async function TheBestDamnLandingPageEver() {
*/}
{/* Demand-side CTA section */}
-
-
-
- Level up your AI Agents with the best tools
-
+
+
+ Level up your AI Agents with the best tools
+
-
-
+
)
diff --git a/apps/web/src/app/publishing/page.tsx b/apps/web/src/app/publishing/page.tsx
index 364dda56..865b4281 100644
--- a/apps/web/src/app/publishing/page.tsx
+++ b/apps/web/src/app/publishing/page.tsx
@@ -124,14 +124,12 @@ export default function PublishingMCPsPage() {
{/* CTA section */}
-
-
-
- Deploy Your MCP Today
-
+
+
+ Deploy Your MCP Today
+
-
-
+
)
diff --git a/apps/web/src/components/demand-side-cta.tsx b/apps/web/src/components/demand-side-cta.tsx
index 293c8652..9f2de4c9 100644
--- a/apps/web/src/components/demand-side-cta.tsx
+++ b/apps/web/src/components/demand-side-cta.tsx
@@ -5,14 +5,14 @@ import { Button } from '@/components/ui/button'
export function DemandSideCTA() {
return (
-
+
gotoTools();
-
+
readTheDocs();
diff --git a/apps/web/src/components/dots-section.tsx b/apps/web/src/components/dots-section.tsx
index d7234b9a..19549dfb 100644
--- a/apps/web/src/components/dots-section.tsx
+++ b/apps/web/src/components/dots-section.tsx
@@ -9,7 +9,7 @@ export function DotsSection({
}) {
return (
diff --git a/apps/web/src/components/supply-side-cta.tsx b/apps/web/src/components/supply-side-cta.tsx
index 6e21fe58..8c0d93d2 100644
--- a/apps/web/src/components/supply-side-cta.tsx
+++ b/apps/web/src/components/supply-side-cta.tsx
@@ -21,7 +21,7 @@ export function SupplySideCTA({
const ctx = useAgentic()
return (
-