Static marketing site for synkube.com. Next.js App Router, Tailwind CSS v4, fully static pages, hosted on Vercel.
pnpm install
pnpm dev # http://localhost:3000
pnpm build # production build (all pages prerendered)
pnpm lint
pnpm typecheck| Path | Purpose |
|---|---|
src/app/ |
Routes: /, /products, /agents, /services, /contact + robots/sitemap |
src/components/ |
Header, footer, shared UI |
src/components/agents/ |
/agents page sections and SVG diagrams |
src/components/diagram/ |
Shared diagram shell (scroll + arrow markers) |
src/lib/content.ts |
Site-wide copy (home, products, services, contact) |
src/lib/content/agents-page.ts |
/agents copy and structured data |
src/app/globals.css |
Theme tokens (see below) |
The entire palette lives in one :root block in src/app/globals.css (theme: neo-cyber). Components only reference semantic tokens (bg, surface, line, ink, accent, …) via Tailwind, so changing the theme means editing that single block.
Vercel, connected to this repo, main branch → production at synkube.com. No env vars required.
Security and social: vercel.json (baseline + CSP), src/app/opengraph-image.tsx, JSON-LD in src/components/site-json-ld.tsx.
Post-deploy header smoke:
curl -sI "https://synkube.com/" | rg -i 'content-security|x-content-type|x-frame|referrer|permissions'