Ports the "Technical Editorial" design sample into real TSX wired to Payload globals/collections. Home/About/Projects (list+detail)/Contact pages render against Payload data. Expands schemas (Home principles, About timeline/skills/gear, Contact channels) to cover the full design surface. Adds seed script that populates realistic AI-drafted content for first boot. Defers writing/resume routes per scope cut. - Design tokens: Material-3 palette + Space Grotesk/Inter typography scale + dot-grid + glassmorphism utilities - Shared layout: Nav, Footer, StatusTerminal, GridOverlay, Button, TechChip in src/components/site - Schemas: expand 5 globals + 6 collections; add auto-slug hook - Seed: scripts/seed.ts — idempotent upsert for media, categories, 6 projects, 8 gear, 3 posts, 5 globals; generates placeholder admin - Contact: form + /api/contact route with optional Turnstile verify - Rename TURNSTILE_SITE_KEY -> NEXT_PUBLIC_TURNSTILE_SITE_KEY (client) - Remove dead src/components/SiteHeader|SiteFooter|StatusTerminal
61 lines
1.6 KiB
JSON
61 lines
1.6 KiB
JSON
{
|
|
"name": "professional-website",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"description": "Jason Woltje professional website — Payload CMS 3 + Next.js 16",
|
|
"license": "UNLICENSED",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "eslint .",
|
|
"typecheck": "tsc --noEmit",
|
|
"payload": "payload",
|
|
"generate:types": "payload generate:types",
|
|
"generate:importmap": "payload generate:importmap",
|
|
"test": "echo \"no tests yet\" && exit 0",
|
|
"seed": "tsx scripts/seed.ts"
|
|
},
|
|
"dependencies": {
|
|
"@marsidev/react-turnstile": "^1.5.0",
|
|
"@payloadcms/db-postgres": "^3.50.0",
|
|
"@payloadcms/next": "^3.50.0",
|
|
"@payloadcms/richtext-lexical": "^3.50.0",
|
|
"@payloadcms/ui": "^3.50.0",
|
|
"graphql": "^16.11.0",
|
|
"lucide-react": "^0.468.0",
|
|
"next": "16.2.3",
|
|
"payload": "^3.50.0",
|
|
"react": "19.2.0",
|
|
"react-dom": "19.2.0",
|
|
"sharp": "^0.34.0"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3.3.5",
|
|
"@tailwindcss/container-queries": "^0.1.1",
|
|
"@tailwindcss/forms": "^0.5.10",
|
|
"@types/node": "^22.10.0",
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"autoprefixer": "^10.4.20",
|
|
"eslint": "^9.18.0",
|
|
"eslint-config-next": "16.1.6",
|
|
"postcss": "^8.5.0",
|
|
"tailwindcss": "^3.4.17",
|
|
"tsx": "^4.19.4",
|
|
"typescript": "^5.7.3"
|
|
},
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"packageManager": "pnpm@10.31.0",
|
|
"pnpm": {
|
|
"overrides": {
|
|
"minimatch@<10.2.3": ">=10.2.3",
|
|
"picomatch@<4.0.4": ">=4.0.4",
|
|
"tar@<7.5.11": ">=7.5.11"
|
|
}
|
|
}
|
|
}
|