Files
professional-website/.env.example
Jason Woltje 486bbc8cf8
Some checks failed
ci/woodpecker/push/web Pipeline failed
ci/woodpecker/pr/web Pipeline failed
feat(site): port stitch design system + seed-ready content model
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
2026-04-14 18:57:53 -05:00

49 lines
1.6 KiB
Plaintext

# =============================================================================
# jasonwoltje.com — environment variables
# =============================================================================
# Actual values live in Portainer stack env vars (prod) or .env (local dev).
# Never commit .env — see .gitignore.
# ---- Payload / Database ----
# Local dev convenience: pnpm dev reads these directly.
# In prod, DATABASE_URI is composed in docker-compose.swarm.yml from PAYLOAD_POSTGRES_*.
DATABASE_URI=postgres://payload:payload@localhost:5432/payload
PAYLOAD_POSTGRES_USER=payload
PAYLOAD_POSTGRES_PASSWORD=replace-me-local-only
PAYLOAD_POSTGRES_DB=payload
PAYLOAD_SECRET=replace-with-32-plus-char-random-string
# ---- Public URLs ----
PAYLOAD_PUBLIC_SERVER_URL=http://localhost:3000
NEXT_PUBLIC_SITE_URL=http://localhost:3000
# ---- Build-time metadata (Status Terminal) ----
# CI overrides these during docker-build; local dev falls back to "dev" / "local".
NEXT_PUBLIC_BUILD_SHA=dev
NEXT_PUBLIC_BUILD_REV=local
# ---- Cloudflare Turnstile (contact form CAPTCHA) ----
NEXT_PUBLIC_TURNSTILE_SITE_KEY=
TURNSTILE_SECRET_KEY=
# ---- Umami analytics (self-hosted; empty disables tracker) ----
NEXT_PUBLIC_UMAMI_SRC=
NEXT_PUBLIC_UMAMI_WEBSITE_ID=
# ---- Contact form email (choose one path) ----
# Option A: Resend
RESEND_API_KEY=
RESEND_FROM=no-reply@jasonwoltje.com
RESEND_TO=jason@diversecanvas.com
# Option B: SMTP relay
# SMTP_HOST=
# SMTP_PORT=587
# SMTP_USER=
# SMTP_PASSWORD=
# SMTP_FROM=no-reply@jasonwoltje.com
# SMTP_TO=jason@diversecanvas.com
# ---- Mautic newsletter (not deployed yet; leave empty) ----
MAUTIC_FORM_URL=