What I learned
The hardest part of a public ticketing flow isn’t the happy path — it’s refusing to trust the browser. The client only ever sends a clamped quantity and a Turnstile token; the actual charge amount is set server-side from a Stripe price ID, and success is never shown until a serverless function re-verifies the session’s payment_status with Stripe. Treating Stripe as the system of record — rather than anything the front end reports — kept the money logic honest and the attack surface small.
Astro rewarded a content-first discipline too. Centralizing every piece of copy, lineup detail, and legal clause in a single site.ts meant the homepage, per-band pages, tickets, and legal pages all rendered from one source of truth — and shipping near-zero JavaScript, with the checkout widget as the only React island, kept the outdoor-festival landing page fast on a phone in the sun.
What I did
- Built the marketing homepage with an animated aurora/sunset hero, grain overlay, sponsor marquee, and a content-driven lineup (index + per-band pages) — all generated statically from a single
site.ts. - Built a custom Stripe integration — not a drop-in button, but three purpose-built Netlify serverless functions (
create-checkout-session,verify-session,stripe-webhook) with server-side price integrity so the amount can’t be tampered with client-side. - Added Cloudflare Turnstile bot protection on the checkout endpoint and a signature-verified Stripe webhook that records paid orders to Netlify Blobs for a will-call list, with CSV export.
- Hardened the security posture with a hashed-inline-script CSP generated by Astro, plus HSTS,
X-Frame-Options: DENY, nosniff, Referrer-Policy, Permissions-Policy, and COOP headers. - Handled SEO and static-gen niceties — dynamic
sitemap.xml,robots.txt, anSeocomponent, and a non-indexed, password-protected staging deploy gated onPUBLIC_STAGING. - Tested end-to-end with Playwright, including accessibility assertions via axe-core.
What I shipped
A live homepage and ticketing site for The Concert On Lake Grapevine — a family-friendly outdoor benefit concert at Mariner Point Park on Sunday, October 11, 2026, presented by The Charity Grapevine and Tolbert’s Restaurant & Chili Parlor, with net proceeds benefiting local Grapevine charities. Attendees buy $27.50 general-admission tickets through a hardened, custom-built Stripe checkout flow, and organizers get a verified will-call list on the back end.