chore: bootstrap repo with PRD, tasks, design samples, and Mosaic scaffolding
Personal professional website for jasonwoltje.com, built on Payload CMS 3 + Next.js 16 and deployed to w-docker0 (Docker Swarm) behind the existing MosaicStack edge Traefik. Establishes the delivery contract before any scaffold work begins: - docs/PRD.md — stack, content model, routing, design system, CI, infra, acceptance criteria, assumptions, and escalation log - docs/TASKS.md — milestone breakdown 0.0.1 → 0.1.0 MVP - README.md, LICENSE (All Rights Reserved), .gitignore - design-samples/ — stitch "Technical Editorial" mockups + DESIGN.md tokens - images/ — source headshots (to be imported into Payload media on seed) - .mosaic/ — orchestrator scaffolding (quality rails, repo hooks) Scaffold (Next.js + Payload init) ships on feat/scaffold in a follow-up PR. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
60
README.md
Normal file
60
README.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# jasonwoltje.com — Professional Website
|
||||
|
||||
Personal brand + portfolio site for Jason Woltje. Payload CMS 3 on Next.js 16, Postgres 17, deployed to Docker Swarm (`w-docker0`) behind Traefik.
|
||||
|
||||
## Stack
|
||||
|
||||
| Layer | Choice |
|
||||
|---|---|
|
||||
| Framework | Next.js 16 (App Router) |
|
||||
| CMS | Payload 3 (Next-integrated, admin at `/admin`) |
|
||||
| DB | PostgreSQL 17 |
|
||||
| Styling | Tailwind v3 (ported from stitch design tokens) |
|
||||
| Fonts | Space Grotesk (display/labels) + Inter (body), self-hosted via `next/font` |
|
||||
| Media | Local volume (migratable to S3/MinIO via Payload adapter) |
|
||||
| Analytics | Umami (self-hosted) |
|
||||
| CAPTCHA | Cloudflare Turnstile |
|
||||
| Registry | `git.mosaicstack.dev` container packages (immutable `sha-*` tags) |
|
||||
| CI | Woodpecker CI + Kaniko |
|
||||
| Deploy | Portainer stack on `w-docker0` (Swarm) |
|
||||
| Ingress | Edge Traefik (TLS) → per-swarm Traefik (`entrypoints=web`) |
|
||||
|
||||
## Repository layout
|
||||
|
||||
```
|
||||
professional-website/
|
||||
├── src/ # Next.js app + Payload config
|
||||
├── public/ # static assets
|
||||
├── design-samples/ # stitch design reference (HTML + DESIGN.md)
|
||||
├── images/ # source headshots (pre-upload originals)
|
||||
├── docs/
|
||||
│ ├── PRD.md # product requirements
|
||||
│ ├── TASKS.md # execution tracking
|
||||
│ └── scratchpads/ # per-task working notes
|
||||
├── Dockerfile # multi-stage build
|
||||
├── docker-compose.swarm.yml # Portainer stack (prod)
|
||||
├── .woodpecker/web.yml # CI pipeline
|
||||
└── .env.example
|
||||
```
|
||||
|
||||
## Local dev
|
||||
|
||||
```bash
|
||||
pnpm install
|
||||
cp .env.example .env # fill in local values
|
||||
pnpm dev # Next + Payload on http://localhost:3000
|
||||
```
|
||||
|
||||
Payload admin: http://localhost:3000/admin
|
||||
|
||||
## Documentation
|
||||
|
||||
- [`docs/PRD.md`](docs/PRD.md) — product requirements, scope, architecture decisions
|
||||
- [`docs/TASKS.md`](docs/TASKS.md) — milestone + task tracking
|
||||
- [`design-samples/stitch_jasonwoltje.com/silicon_ethos/DESIGN.md`](design-samples/stitch_jasonwoltje.com/silicon_ethos/DESIGN.md) — design system reference
|
||||
|
||||
## Deployment
|
||||
|
||||
Container images are built by Woodpecker and pushed to `git.mosaicstack.dev/jason.woltje/professional-website:sha-<short>`. The Portainer stack references immutable tags — `latest` is never used as a deploy reference.
|
||||
|
||||
See `docs/PRD.md` §Infrastructure for the full deploy runbook.
|
||||
Reference in New Issue
Block a user