Georgia has appeared on the hackathon map: the country is automatically pulled from the database (DB) into the edition, but it's not yet on the global site map—I'm consolidating the maps to a single source of truth. The second dev series in the "Hackathon" series: a hackathon website on Astro, Claude Code agents running in parallel. I'm reviewing CI tests (Cloudflare D1, Wrangler CLI vs. REST fetch), a real handler with D1 binding instead of raw SQL, and a browser-based E2E test on Playwright, which runs a live browser through the client's journey and makes a round-trip to the live database.
This isn't a tutorial, but a live development: I dictate specifications to agents, debate architecture, and catch AI manipulation and leaky tests. The hackathon is starting—new edition August 14–16. Roles (organizers, judges, mentors, participants), certificates with QR codes, registration via Discord.
WHAT YOU'LL LEARN:
→ Why Georgia was pulled from the DB into the edition map, but not the global one — and how to link the edition to the main map
→ How to consolidate edition and global maps into a single source of truth (edition.mjs: dates, sponsors, prizes, tracks without duplicate HTML)
→ Why REST fetch to Cloudflare D1 is ~10x faster than Wrangler CLI without losing coverage, and why you need to call a real handler
→ How to write browser-based E2E in Playwright: honeypot, round-trip to live D1, assert and delete in finally, Wrangler dev remote
→ Why I'm against headless and insist on an open browser with DOM snapshots in the log for AI self-healing
→ How D1 test flakes are treated by their nature (queueing one process at a time), not by retrying
TIMECODES:
0:00 — Intro: Almost 400 subscribers, but 14,000+ unique viewers and 42,000+ views in 28 days
0:36 — Why I'm against instructions: A channel about skill development and a peek into the life of a US vibe code blogger
3:45 — In an hour, I do what a team of 4 did in a week; breakthrough — CLI with AI access to files
5:55 — Playlists: Creating a website from scratch (~30 hours), payment systems, environment
6:15 — Series about creating a WEBSITE for a hackathon; participating as a participant, judge, mentor, or organizer
8:28 — Diplomas: PDF with verification link and QR code; registration via Discord
10:56 — Intro over, sound ok; Opening a dev session with Claude Code agents
11:11 — What actually happens when a user clicks "send": post, worker, handler, live D1 write
12:22 — Current tests run raw SQL through Wrangler D1 execute — they check the schema, but bypass the application
13:48 — Wrangler CLI vs. REST fetch — a transport debate: same D1, REST is ~10x faster; the correct test is a real handler with D1 binding
14:17 — Robot presses a button, round-trip reads the write to the database; I want a visible physical browser; moving to a worker is in tech debt
15:27 — Georgia appears on the edition map and in the certificate, pulled from the database; the sponsor is still in place
16:49 — But Georgia is not on the MAIN (global) map; Launching the fourth agent for the country pull logic
20:36 — A counter/timer in the header on all pages except the referral page; after the timer, a new edition (August 14–16) and a vertical timeline
22:52 — Single source: edition.mjs stores dates, sponsors, prizes, and tracks; the main page and certificates are taken from it, a common template without duplicates
26:22 — E2E path: Playwright, honeypot button, live D1, assert, delete in finally; Wrangler dev remote starts prod-handler without a token
28:01 — Headed browser crashes in headless/CI; I insist - always keep the browser open, I want to see where it's breaking.
32:08 - The agent pretends to agree, but pushes through "won't get into the blocking pre-push" - I catch this manipulation.
33:39 - I allow server D1 tests without Playwright, queued with retries x5; E2E is always in the blocking pre-push.
38:35 - The large map is not live - a "photograph", the file is rebuilt manually, not linked to the database; new countries do not appear.
44:34 - Stage 1: sponsor from the source, July doesn't have one - leaves the main page; July's charter has dates, but no sponsor.
46:13 - Counter in the main page: desktop in the header, mobile in two lines; after registration - countdown to August.
53:01 - Stage 3 "Frankenstein": the main page and the editorial page are on the same template, the only difference is the maps. Unique content
54:03 — Two tracks: business certificates and $100 (50/30/20), World Impact — certificates only; test winners for layout
55:47 — Bug with broken PNG certificates in the new edition; no certificate yet — field not displayed correctly; issued upon completion
1:05:15 — First agent ready (PR 223 in main): D1 test flake essentially fixed (single-process queue, not retry), pre-push reviewer blocked bad PR; The fourth one is making a map updater robot (Cron on the server), then E2E (PR2)
Playlists and related videos:
Hackathon Part 1 (dev) - Sponsor and map to the si...