A checklist has no memory of yesterday.
Plain to-do apps reset to zero every morning. Tick a box, it disappears, and nothing accumulates — there's no sense of momentum, no cost to skipping, nothing that makes today's effort feel connected to last week's. Gamified habit apps exist, but most bolt points onto a list without a real system underneath.
Statveil asks: what if completing tasks fed a character you actually cared about — one that levels up when you show up and slips when you don't?
Rewards build habits. Consequences protect them.
What makes the loop work.
Effort must map to reward.
Quest difficulty sets the payoff — Easy 10 EXP, Medium 25, Hard 50, Boss 100 — so a hard task feels worth more than three trivial ones.
Missing has to cost something.
The daily reset applies penalties for missed quests. Without a downside, a streak is just a number; with one, it's a thing you protect.
Run everywhere from one codebase.
Flutter targets iOS, Android, web, and desktop, so the same character follows the user across whatever device they're on.
Features, models, services.
The app is organised by feature — dashboard, quests — over a core of
models and services. A Hunter model holds the character; quest
services handle completion and EXP; a reset service enforces the daily
rollover.
Keeping the loop's rules in dedicated services rather than scattered through the UI means the EXP curve, level thresholds, and reset penalties are all tunable in one place — which matters a lot when the whole feel of the app is a balancing act.
Balancing encouragement against punishment.
The design tension is real: too generous and levelling is meaningless; too punishing and one bad day wipes out a week, which just makes people quit. The daily reset is the riskiest mechanic — it has to sting enough to matter without being so harsh that a missed day feels like a reason to abandon the app entirely.
Tiered EXP is the counterweight: because a Boss quest is worth ten Easy ones, a user recovering from a slip can claw back progress with one meaningful effort rather than grinding trivia.
Material 3, but make it a character sheet.
The dashboard leads with the character and its stats, not a list — the quests are how you level, but the screen is about who you're becoming. The Solo-Leveling framing gives the progression a narrative spine, which is what turns "I did my tasks" into "I levelled up." Material 3 keeps it clean enough to live on a home screen.
Three things, next time.
Sync progress to the cloud.
State lives on-device; a backend would let a character survive a reinstall and follow the user across platforms for real.
Soften the penalty curve.
An early build punished misses too hard; a grace mechanic or streak freeze keeps a bad day from becoming a quit.
Let users author their own quests.
Fixed quests limit the fit; custom quests with self-set difficulty would make the loop match anyone's real life.