feat(site): 🛬 PCBJam landing page — waitlist, sections, Tailwind
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>
2026-06-07 14:59:13 +02:00
|
|
|
# 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=
|
|
|
|
|
|
2026-06-08 14:26:54 +02:00
|
|
|
# Resend Segment to add waitlist contacts to (https://resend.com/segments).
|
|
|
|
|
# (Resend renamed "Audiences" → "Segments"; this is the Segment ID.)
|
|
|
|
|
RESEND_SEGMENT_ID=
|
feat(site): 🛬 PCBJam landing page — waitlist, sections, Tailwind
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>
2026-06-07 14:59:13 +02:00
|
|
|
|
|
|
|
|
# Optional: confirmation sender. Domain must be verified in Resend.
|
2026-06-07 18:29:59 +02:00
|
|
|
# Defaults to "PCBJam <hello@pcbjam.com>".
|
feat(site): 🛬 PCBJam landing page — waitlist, sections, Tailwind
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>
2026-06-07 14:59:13 +02:00
|
|
|
WAITLIST_FROM_EMAIL=
|