Broke by 30
Inspiration
Financial literacy gets taught through quizzes nobody remembers. We wanted people to learn by making money decisions and living with the consequences instead — aimed at the twelve years where mistakes compound hardest.
What it does
You're randomly assigned an 18-year-old: a name, a city, a part-time job, and whatever debt you started with. Then you live twelve years, one decision per year. Your car needs $1,800 in repairs — pay cash, put it on a card at 18%, or take the bus and lose shifts. At 30 you get a verdict, from Actually Rich to Buried in Debt.
Some scenarios aren't written by us. They're extracted from live Bureau of Labor Statistics releases, and every one links back to the exact government release it came from.
How we built it
Next.js and React, with a pixel UI rendered entirely in SVG — no image assets. Snowflake holds the game world (cities, occupations, starting backgrounds) and saves every player. Our Xtract pipeline reads live BLS data, classifies the signal, and turns it into a playable decision card carrying its source.
Challenges
The backend spoke in annual salaries and "net monthly change"; the game engine tracked income and expenses separately. Passed through raw, a rent increase would have made players richer. We fixed it with one translation layer instead of forcing either side to change.
We also lost hours to files silently corrupting mid-build. Commit often.
What we learned
Traceability is a constraint, not a feature. Requiring every news-derived event to carry its source meant we couldn't paper over weak extraction.
Log in or sign up for Devpost to join the conversation.