Replace the placeholder homepage with the PCBJam waitlist conversion page (13 sections from the copy spec), shared chrome, and a real email-capture backend, keeping the site zero-runtime-JS / zero-web-font. - Tailwind v4 via @tailwindcss/postcss (the Vite plugin breaks on Astro 6 rolldown-vite); Preflight skipped; brand tokens in :root + @theme inline. - Waitlist: /api/waitlist serverless route (prerender=false) + Resend, with dual JSON/303 responses; WaitlistForm progressive enhancement bound on astro:page-load (survives ClientRouter swaps); honeypot + validation. - New components (Icon, Placeholder, DemoVideo, SectionBand, Chip, EECredit, StatBar, Pillar, Step, CheckItem, WaitlistForm) + 13 section components. - Redesigned Header (sticky, mobile menu, CTA) + 4-col Footer (KiCad attribution); BaseLayout gains full-bleed mode + OG/canonical meta. - Assets scaffolded with marked placeholders; EE/generic/client SVGs copied. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
14 lines
614 B
Shell
14 lines
614 B
Shell
# PCBJam marketing site — server-side secrets for the waitlist endpoint.
|
|
# Copy to `.env` for local dev, and set these in the Vercel project settings.
|
|
# Without RESEND_API_KEY the endpoint still accepts submits (logs + no email),
|
|
# so the form UX is testable locally without keys.
|
|
|
|
# Resend API key (https://resend.com/api-keys). Server-only — never PUBLIC_.
|
|
RESEND_API_KEY=
|
|
|
|
# Resend Audience to add waitlist contacts to (https://resend.com/audiences).
|
|
RESEND_AUDIENCE_ID=
|
|
|
|
# Optional: confirmation sender. Domain must be verified in Resend.
|
|
# Defaults to "PCBJam <waitlist@pcbjam.com>".
|
|
WAITLIST_FROM_EMAIL=
|