Changelog
A running record of everything built and launched. Newest first.
OG meta, favicon set, and pageview analytics
Added Open Graph and Twitter card meta tags so shared links render properly. Shipped a full favicon set (SVG + webmanifest). Added a lightweight pageview beacon and `POST /api/pageview` endpoint backed by a new `pageviews` table — the admin now shows a 7-day visitor count.
Why now and FAQ sections
Added a three-card 'Why join now' value props grid and a five-item FAQ accordion to the landing page. Both sections sit between the signup form and footer. No JavaScript — the FAQ uses native `<details>` elements. Mobile-responsive down to 375px.
Token-protected admin view
Launched `/admin` — a token-gated page showing total signup count and a table of waitlist emails newest-first (capped at 500). Access requires the `ADMIN_TOKEN` env var via Bearer header or `?key=` query param.
Welcome email on signup
Every new waitlist signup now triggers a confirmation email via the Polsia email proxy. Duplicate submissions are handled gracefully — the user is told they're already on the list without triggering a second email.
Landing page live with waitlist capture
Shipped the first version of the site: dark theme, Instrument Serif + Satoshi typography, amber/gold palette. Three-step how-it-works, email signup form, and the full `waitlist` database table wired up end-to-end.