Collecting entries and picking a random winner is about as small a build as this library has — a form, a list, and one call to a random number generator.
Build it
Effort: an eveningRunning cost: $0/mo to start
Why CanICodeThis says Build it
A form collecting entries (name and email, or a social handle) is basic CRUD
Picking a random winner from the entry list uses a standard, well-understood random-selection function
Displaying and announcing the winner is simple front-end work
The parts that'll cause problems
Verifiable fairness (proving the draw wasn't rigged, for a public audience) needs a documented, auditable randomness source, not just any random function
Preventing duplicate or fraudulent entries needs basic validation beyond the happy path
Weighted odds (some entries counting more, like referral bonuses) is a real, separate feature
How I'd build this
frontend
Astro or Next.js
database
Turso (SQLite)
hosting
Cloudflare Pages
MVP scope
A form collecting entries
A 'pick a winner' button using a standard random-selection function
Display the winner
Postpone to v2
Verifiable, auditable randomness for public trust
Duplicate-entry prevention
Weighted odds for bonus entries
What it actually costs to build
AI agent — with a subscription (Claude Pro/Max, Cursor, etc.)
$0 marginal
AI agent — pay-per-use API, no subscription
$16–$27 one-time
Hosting, once it's running
$0/mo (free tier)
Domain name, if you want your own
~$12/yr
The build prompt
Genuinely one of the simplest builds on the whole register:
1. A form collecting entries (name and email).
2. A 'pick a winner' button that randomly selects one entry using a standard random-number function — no need for anything more sophisticated at this scale.
3. A page displaying the winner.
Simple admin login to run the draw. That's a real, complete giveaway tool. Out of scope: verifiable, auditable randomness for public trust (provably-fair selection someone could independently verify), a real, separate cryptographic feature, and weighted odds for bonus entries, which need a different, weighted selection algorithm.