Static marketing-site scaffold for kevly.app, built for Vercel with Next.js App Router, Tailwind CSS v4, and shadcn/ui.
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS v4
shadcn/ui-compatible component structure
This repo is set up for a landing page plus a few static pages, not a bloated marketing platform.
- Route files stay thin.
- Reusable page sections live in
src/components/marketing. - Site-wide config stays small in
src/config/site.ts. - Reusable UI primitives live in
src/components/ui. - Static pages live as direct routes in
src/app.
That gives you a clean path to add about, privacy, legal, waitlist, and future product pages without turning the homepage into a monolith or inventing a CMS you do not need.
.
├── components.json
├── src
│ ├── app
│ │ ├── about
│ │ │ └── page.tsx
│ │ ├── globals.css
│ │ ├── home-content.ts
│ │ ├── layout.tsx
│ │ ├── page.tsx
│ │ └── privacy
│ │ └── page.tsx
│ ├── components
│ │ ├── marketing
│ │ ├── site
│ │ └── ui
│ ├── config
│ │ └── site.ts
│ └── lib
│ └── utils.ts
└── package.json
Install dependencies:
npm installStart the dev server:
npm run devRun lint:
npm run lintRun typecheck:
npm run typecheckRun production build validation:
npm run buildRun the canonical local gate:
npm run verifyRun browser smoke checks:
npm run test:e2e:smokeCollect browser evidence artifacts:
npm run evidence:webCI automation:
.github/workflows/verify.yml.github/workflows/playwright-smoke.yml
Harness and engineering guidance now lives in-repo: