Inspiration

Games keep me coming back with daily and weekly missions. I wanted that same loop in real life: clear missions I set for myself, save up, and trade the points for real rewards.

I had tried this on my own before, and it always fell apart for the same reason. When you set your own prices, you end up too easy or too hard on yourself, and the "economy" breaks. So in Acorn I don't price anything myself.

The name comes from squirrels: they gather acorns, store them, and eat them later. That's exactly how the app works.

What it does

  • Set up your week: up to 3 daily missions and 1 weekly mission, each tracked by count, minutes, or progress %.
  • Missions get a value: when you register, an AI judges how hard each mission is, and that sets how many acorns it earns, based on your monthly budget.
  • Clear missions every day: completion is self-reported. Acorn is about being honest with yourself, not about catching cheaters.
  • Spend acorns on your wishlist: add a reward like "wireless earbuds" or "a day off," and it gets a price in acorns. When you have enough, you redeem it, guilt-free.

How I built it

I followed the Devpost Learn Skill Pack: scope → PRD → spec → build, with the coding agent interviewing me at each step instead of just writing code.

  • App: Expo (React Native) with TypeScript, shown on the web in a phone layout. All the game rules are pure functions, and every change to saved data goes through one reducer, so it is easy to unit test.
  • API server: Python + FastAPI in Docker. It is the only place that holds the TypeSafe API key, and it stores no data.
  • AI: Jev (TypeSafe's decision model). Jev only picks a category, like a difficulty level from 0–4 or a price band such as "about $100." All the numbers are calculated in code.
  • Quality: Jest, pytest, ruff, mypy, ESLint, and Prettier, all run in GitHub Actions.

Challenges I ran into

  • Jev is not a calculator. My first plan was to have it estimate prices directly. Jev's documentation warns against using it for numbers, so I switched to category choices and converted them in code.
  • Making the economy fair. If rewards were priced only from my monthly budget, I could "earn" a car in a month. Reward prices now come from what the reward actually costs, and harder or more numerous missions are the only way to earn more.
  • Bugs that tests didn't catch. The tests passed, but while using the app I noticed the acorn counter showed my total earned, not my balance, so it never went down after redeeming. I only found it by playing the app myself.

What I learned

Planning before building with AI. Being interviewed made me decide things I would normally skip, like what happens when you undo a clear after already spending the acorns. I also learned how to use a decision model: let the AI make judgments, and keep the math in code.

What's next

A native mobile app (the same Expo code), and possibly letting users adjust a price by one step when they disagree.

Built With

Share this project:

Updates

Submission history