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
Build me a giveaway winner picker: a form collecting entries (name and email), a 'pick a winner' button that randomly selects one entry using a standard random-number function, and a page displaying the winner. SQLite behind a small API, simple admin login to run the draw.