Decision Log
Decision Log
Section titled “Decision Log”Auto-generated from §2 of the master design. Source of truth lives at docs/superpowers/specs/2026-05-23-nowyourlink-master-design.md.
| # | Area | Decision | Why |
|---|---|---|---|
| D1 | Brand | nowyourlink.com (CF DNS, already registered) | Final name, domain registered |
| D2 | Slot terminology | ”The Spotlight” | Premium, evocative, supports cinematic reveal |
| D3 | Auction horizon | 30 concurrent daily auctions, one per future date | Bidders can plan campaigns; admin can manage backlog |
| D4 | Buffer | Fixed 24h between close and ad live | Predictable, matches “controlling + payment” window |
| D5 | Auction model | Sealed-bid, 1€ min, 1€ flat increment | Matches PDF; clean UX |
| D6 | Anti-snipe | Admin-configurable per auction (default off) | Operational flexibility without forcing the mechanic |
| D7 | Bidder qualification | Lazy KYC — VIES at registration, Stripe SetupIntent at first bid, Stripe Identity for flagged escalations only | ”All-Stripe” UX without per-bidder Identity fee |
| D8 | Non-paying winner | Cascade to runner-up + 3-strike ban system | Revenue protection + fraud deterrence |
| D9 | Creatives | Library per bidder; pick creative per bid | A/B testing across days |
| D10 | Payments | Stripe Card only at MVP; Stripe Invoicing for §14 UStG; SEPA in Phase 2 | Ship fast; broadest B2B reach phased in |
| D11 | Saga orchestration | Cloudflare Workflows | Durable, designed for long-running multi-step sagas |
| D12 | Auction state | One Durable Object per auction date (auction_id = "YYYY-MM-DD") | Isolation, scales horizontally, regionalisable |
| D13 | Live updates | Hibernatable WS Durable Object hub from day 1 | Matches cinematic urgency PDF describes |
| D14 | Resend primary; CF Email Workers (MailChannels) as documented fallback | Resend’s DX + analytics | |
| D15 | Auth | Cloudflare Access for admin; magic-link (Stripe Customer email canonical) for advertisers | Zero-trust admin, lowest-friction B2B login |
| D16 | Repo | Single pnpm/Turbo monorepo, world-forest pattern | Shared types across Workers + Astro |
| D17 | Frontend | Astro + islands (@astrojs/cloudflare) | Static archive + interactive dashboard islands |
| D18 | Docs site | Starlight under docs-site/, separate CF Pages deploy | Standard Astro family |
| D19 | i18n | Paraglide; EN + DE; default EN | Global PR + DACH revenue |
| D20 | Subdomains | apex + app., admin., ws., api., docs., cdn. | Clean separation per concern |
| D21 | Observability | Sentry on all workers (via ghardenlab add sentry); CF Web Analytics cookieless | World-forest parity |
| D22 | MVP scope additions | Pull WS DO + Conversion Pixel + Push + Disqus + Like into MVP (Disqus later removed — see D43) | User priority |
| D23 | Phase 3 (later) | Predict-the-Price, Bid-equity credits, Runner-up slot | Roadmap retention bundle |
| D24 | DNS + CF Access | Terraform-managed (infra/terraform) | Reproducible, version-controlled |
| D25 | GitHub | github.com/ghardenlab/nowyourlink, private | Standard infra-repo posture |
| D26 | Launch target | Ship when ready (no fixed date) | Quality over deadline |