diff --git a/docs/package.json b/docs/package.json
index 4ecc07d..cfa634f 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -10,6 +10,7 @@
},
"dependencies": {
"@tailwindcss/typography": "^0.5.19",
+ "@vercel/analytics": "^1.6.1",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"framer-motion": "^12.34.3",
diff --git a/docs/public/google4c4480f5ebd28060.html b/docs/public/google4c4480f5ebd28060.html
new file mode 100644
index 0000000..6a8c085
--- /dev/null
+++ b/docs/public/google4c4480f5ebd28060.html
@@ -0,0 +1 @@
+google-site-verification: google4c4480f5ebd28060.html
\ No newline at end of file
diff --git a/docs/public/next.svg b/docs/public/next.svg
deleted file mode 100644
index 5174b28..0000000
--- a/docs/public/next.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/public/secure-input.svg b/docs/public/secure-input.svg
new file mode 100644
index 0000000..0929e87
--- /dev/null
+++ b/docs/public/secure-input.svg
@@ -0,0 +1,7 @@
+
diff --git a/docs/public/vercel.svg b/docs/public/vercel.svg
deleted file mode 100644
index 7705396..0000000
--- a/docs/public/vercel.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/public/web-app-manifest-192x192.png b/docs/public/web-app-manifest-192x192.png
new file mode 100644
index 0000000..10d3dc1
Binary files /dev/null and b/docs/public/web-app-manifest-192x192.png differ
diff --git a/docs/public/web-app-manifest-512x512.png b/docs/public/web-app-manifest-512x512.png
new file mode 100644
index 0000000..29003d7
Binary files /dev/null and b/docs/public/web-app-manifest-512x512.png differ
diff --git a/docs/src/app/apple-icon.png b/docs/src/app/apple-icon.png
new file mode 100644
index 0000000..256ed87
Binary files /dev/null and b/docs/src/app/apple-icon.png differ
diff --git a/docs/src/app/docs/how-it-works/page.tsx b/docs/src/app/docs/how-it-works/page.tsx
index a582983..d1fd43c 100644
--- a/docs/src/app/docs/how-it-works/page.tsx
+++ b/docs/src/app/docs/how-it-works/page.tsx
@@ -1,7 +1,22 @@
+import type { Metadata } from "next";
import { DocsPagination } from "@/components/DocsPagination";
import { Cpu, Shield, FileCode2 } from "lucide-react";
import { Card } from "@/components/ui/card";
+export const metadata: Metadata = {
+ title: "How It Works",
+ description: "Understand Secure Input architecture: keystroke capture, worker isolation, and WASM encryption flow.",
+ alternates: {
+ canonical: "/docs/how-it-works",
+ },
+ openGraph: {
+ title: "How Secure Input Works",
+ description: "Architecture walkthrough of worker-based isolation and WASM-powered encryption.",
+ url: "https://secure-input.vercel.app/docs/how-it-works",
+ type: "article",
+ },
+};
+
export default function HowItWorksPage() {
return (
diff --git a/docs/src/app/docs/installation/page.tsx b/docs/src/app/docs/installation/page.tsx
index ec6e4ad..f253f40 100644
--- a/docs/src/app/docs/installation/page.tsx
+++ b/docs/src/app/docs/installation/page.tsx
@@ -1,7 +1,21 @@
-import { CodeBlock } from "@/components/CodeBlock";
+import type { Metadata } from "next";
import { PackageManagerCode } from "@/components/PackageManagerCode";
import { DocsPagination } from "@/components/DocsPagination";
+export const metadata: Metadata = {
+ title: "Installation",
+ description: "Install Secure Input packages for React, Next.js, or framework-agnostic JavaScript projects.",
+ alternates: {
+ canonical: "/docs/installation",
+ },
+ openGraph: {
+ title: "Install Secure Input",
+ description: "Get started with @secure-input/react or @secure-input/core in minutes.",
+ url: "https://secure-input.vercel.app/docs/installation",
+ type: "article",
+ },
+};
+
export default function InstallationPage() {
return (
diff --git a/docs/src/app/docs/layout.tsx b/docs/src/app/docs/layout.tsx
index 38710d0..36711de 100644
--- a/docs/src/app/docs/layout.tsx
+++ b/docs/src/app/docs/layout.tsx
@@ -1,10 +1,23 @@
+import type { Metadata } from "next";
import { DocsSidebar } from "@/components/DocsSidebar";
import { ScrollArea } from "@/components/ui/scroll-area";
import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet";
-import { Menu, Lock, GitBranch, BookText } from "lucide-react";
+import { Menu, GitBranch, BookText } from "lucide-react";
+import Image from "next/image";
import Link from "next/link";
import { Button } from "@/components/ui/button";
+export const metadata: Metadata = {
+ title: {
+ default: "Documentation",
+ template: "%s | Secure Input Docs",
+ },
+ description: "Secure Input documentation for installation, architecture, React integration, Vanilla JS usage, and server-side decryption.",
+ alternates: {
+ canonical: "/docs",
+ },
+};
+
export default function DocsLayout({ children }: { children: React.ReactNode }) {
return (
@@ -21,7 +34,7 @@ export default function DocsLayout({ children }: { children: React.ReactNode })
-
+
Secure Input
@@ -30,7 +43,7 @@ export default function DocsLayout({ children }: { children: React.ReactNode })
-
+
Secure Input
@@ -41,7 +54,7 @@ export default function DocsLayout({ children }: { children: React.ReactNode })
Docs
-
+