Static wedding site for veronicaandlucas.com.
index.html: the one deployed page. Structure, copy, CSS and JS are all inline; this is the only file GitHub Pages serves as the site.worker/: Cloudflare Worker (wedding-api) that receives/rsvpand/shenanigansPOSTs and writes to Notion. Seedocs/wedding-ops-system-spec.mdfor the schema and deploy steps.tests/: static behavior checks forindex.html.images/: photo assets used by the sitestyles.css: legacy stylesheet from an earlier split file layout; not referenced byindex.html.index-v2.html,index-v1-backup.html,index copy.html,older/2index.html: older homepage snapshots (noindexed). Not canonical; they predate the RSVP fixes inindex.html.
The RSVP and shenanigans forms only reach Notion once both are done:
cd worker && npx wrangler secret put NOTION_API_KEY && npx wrangler deploy- Set
const API_BASE = 'https://<worker url>'inindex.htmland push. While it is empty the forms do not call the worker and offer an email fallback instead.
python3 -m http.server 4173Then open http://127.0.0.1:4173/.
CI (.github/workflows/ci.yml) runs both checks on every push and pull
request to main; run them locally with plain Node (no dependencies):
node tests/site-check.mjs # inline script parses, ids resolve, RSVP stays wired
node --test worker/test/index.test.js # Cloudflare Worker unit tests (Notion mocked)