Inspiration

I wanted a goal app that does not reward fake progress.

Most habit apps let you tap a button and feel productive, even when nothing happened. That was the main thing I wanted to fix. LifeQuest turns a real goal into a short RPG-style campaign, but XP only comes after you submit proof.

If your goal is learning French, building a React app, cooking better meals, preparing for interviews, or getting fit, the app should give you quests that actually match that goal. Then it should ask: “show me what you did.”

What it does

LifeQuest helps a user turn a personal goal into daily quests.

The core flow is:

  1. Enter your name and goal.
  2. Generate a quest campaign from that goal.
  3. Activate the campaign.
  4. Complete today’s quest.
  5. Submit proof of the work.
  6. AI checks whether the proof is real enough.
  7. Valid proof gives XP, stats, saga updates, and loot.

I also added manual quests, because sometimes the user already knows what they need to do. So the app supports both AI-generated quests and user-created quests.

The strongest feature is the proof gate. You cannot just claim XP by clicking a button. If the proof is vague, the app rejects it. If the proof has real effort, details, numbers, tools, or progress, the app rewards it.

How I built it

I built LifeQuest with Claude Sonnet 4.6 to push how deep the model can build by prompting it through the product loop piece by piece.

The first version was too childish and too loose. It looked like a kids game, gave XP too easily, and had some hardcoded examples. So I kept tightening the prompts around the real app behavior:

  • onboarding with saved name and goal
  • goal-specific quest generation
  • Today page with only active campaign quests
  • proof submission instead of “claim XP”
  • AI proof validation
  • reward modal with XP and stat changes
  • weekly saga
  • loot screen
  • manual quest creation and activation
  • database persistence
  • mobile-friendly UI

Sonnet handled a lot of the full-stack structure, UI generation, database wiring, and app deployment. I kept testing the app end-to-end and feeding back specific bugs until the main loop worked.

Challenges

The hardest part was getting Sonnet to stop building a demo and start building the actual product loop.

At different points, the app had:

  • hardcoded names like “Hero” and “Sam”
  • generic quests that did not match the user’s goal
  • XP that could be claimed without doing the task
  • manual quests marked as “coming soon”
  • proof feedback that was too vague
  • pages that looked finished but were not connected to real data

The fix was to stop giving broad prompts and start forcing one clear behavior at a time. I tested each flow like a user would: register, enter goal, generate quests, activate, submit bad proof, submit good proof, check reward, reload, test manual quests.

What I learned

I learned that AI app builders are powerful, but they still need serious product direction.

A nice screen is not enough. The app has to remember the user, respect the current goal, reject fake progress, save state, and survive real clicks.

I also learned that the best prompts are not the longest ones. The best prompts are specific, testable, and tied to one broken loop.

LifeQuest is the result of pushing Sonnet from “cool mockup” into a working product.

Built With

  • claude
  • javascript/jsx
  • localstorage
  • radix-ui-dialogs
  • react
  • sonner-toasts
  • supabase
  • supabase-edge-functions
  • supabase/postgres-database
  • tailwind-style-css
  • vite
Share this project:

Updates