Documentation
Everything you need to build a site from this template
Stack
The locked stack: every library used in the template, why it was chosen, and where to read its docs.
Next.js 16 (App Router)
React framework. Uses Promise-shaped params, Turbopack by default, and supports standalone output for Docker. Bundled docs at web/node_modules/next/dist/docs/.
(opens in a new tab)React 19
Bundled with the App Router (canary builds with stable React 19 changes). You usually never need to install React directly.
(opens in a new tab)TypeScript (strict)
Strict mode is on. Public APIs always typed. Use Zod (z.infer) at server boundaries to derive types from schemas.
(opens in a new tab)Tailwind CSS v4
CSS-first @theme config in app/globals.css. No tailwind.config.js. Tokens in oklch; utilities auto-generate from --color-brand-* etc.
(opens in a new tab)Radix UI
Single namespaced package: import { Dialog, NavigationMenu, ... } from "radix-ui". All consumers must be Client Components ("use client").
(opens in a new tab)react-icons
Single icon package, all major sets. Per-pack imports: react-icons/lu, react-icons/fa6, react-icons/si. Use aria-hidden on decorative icons.
(opens in a new tab)React Bits
Animated components. Copy-into-project model: npx shadcn@latest add https://reactbits.dev/r/<Name>-TS-TW. Heavy 3D backgrounds need next/dynamic + ssr:false.
(opens in a new tab)TipTap
Visual editor wherever a WYSIWYG is required. Always pass immediatelyRender: false to useEditor() in App Router to avoid hydration mismatch.
(opens in a new tab)Dokploy
Self-hosted PaaS. Build with Dockerfile, expose port 3000, healthcheck at /api/health, set HOSTNAME=0.0.0.0 in env. Traefik fronts it with Let’s Encrypt.
(opens in a new tab)
Patterns
Reusable code and design patterns. Each one is also a note in the Obsidian vault under 02 - Patterns/.
SEO + AEO + GEO
Three-layer search strategy: Metadata API for Google/Bing, answer-first content + FAQPage schema for ChatGPT/Perplexity, full Schema.org JSON-LD for generative engines.
Security
Nonce-based CSP via proxy.ts (strict-dynamic), Zod-validated env, escaped JSON-LD, security headers (HSTS, COOP, X-Frame-Options, Permissions-Policy).
Accessibility (WCAG 2.2 AA)
Skip-to-content link, semantic landmarks, single h1 per page, focus rings on every interactive element, aria-label on icon-only buttons, contrast verified at ≥4.5:1.
Component composition
Server Components by default. Client wrappers ("use client") only at interaction leaves. Pass Server Components into Client wrappers via children props.
Dokploy deployment
output: "standalone" + multi-stage Dockerfile + .dockerignore + /api/health route. Pin base image by SHA digest. Build in CI for low-RAM VPS.
Agent-driven workflow
Every page passes through Research → Design → Implement → Audit → Log. Audits are mandatory: Security, SEO, Accessibility, AI Citation, Code Reviewer.
Not sure where to start?
The fastest path is the Get started guide. It walks you from clone to first deploy in under twenty minutes.
