_m^JsqD*X%U9AUb4cCiJAhJZk53@Y)LdSR)IixW#Yc*8+Ex$L8TfT;q4@ZTF9{T{EL?`^N?wGi~++eZLaG|M)Z+;Q~dx
zP2Bc}GGl}o&t#=*Q}|}9``C8F{{GZUTg?+_@a}TM(_d0#@?;izj$tnz7)1YeV|wL;
zpeait;d0f2bv9#V47Tpo=MiTZQsF9T<9{Ir5Ekk9vde7sQo@KPud8zFj|~||0%gC?
z0t5va9LAPkuOG$OYN8ajzFRWd`MEoun+%7#iSL*j`WwqePLd{E_Ax==;1Z(qNoEL~
zugk<`k5mw-M(@%kzc-8&M0>C55g1!!WY3$V-mE%CUs~GjbG-#PK(?;p)|NSA(8=LD
zPGO9Yo#Lw+G=_b~*g*B9Q$RXQ*A;McEa
i@?sJrZ|2{5GXc8bFJz1eAEy}%Ku_o1t%{otG5-ZiOD~K7
literal 0
HcmV?d00001
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
-
+