LifeQuestLifeQuest
← All posts

Dev Log: Building the Verification Engine (and the Challenges)

Open laptop displaying code next to a plush toy, set in a bright room with plants.

Photo by Daniil Komov on Pexels

Most habit apps let you lie to yourself. They don't mean to, but they do: you click a button, the app clicks back with XP, nothing verifies that you actually did the thing. We built the verification engine to fix that by requiring actual proof before any XP hits your account, and the process of deciding what counts as proof turned out to be harder than we expected.

Why Checkbox Lies Feel Good

Josh is a sophomore. He's been on a fitness kick since September, and he downloaded one of those habit apps because his roommate swore by it. Every morning he's supposed to run three miles. Some mornings he actually does. Some mornings it's 6am, it's cold, and he's tired. So he clicks the checkbox anyway.

The app congratulates him with a sound effect and grants him 50 XP. His level climbs. His streak gets longer. By November he's level 43. He's never run more than twice a week. The numbers are real. The progress is fake.

One night he opens the app to check his stats and something lands wrong. Level 43 feels like a costume. He's looking at a leaderboard of supposed achievements, and he knows he didn't earn half of them. All the checkbox apps do this: they ask you to promise you did the work, then trust you. That's the entire premise. It works perfectly until you're the person you're lying to.

This is the gap we set out to close. Promise-based systems fall apart when you're accountable only to yourself. Our verification engine flips that: every XP you earn has to come from somewhere checkable. A photo of code you pushed. A timestamp from your focus timer. A screenshot of your workout app. Whatever shape the goal takes. The app doesn't trust your memory. You can't fake it into thinking you did the work.

Building the Verification Engine: The Technical Knot

Sounds simple until you start building it. A photo of a GitHub push is straightforward: you connect your GitHub account, we see the commit, we verify it happened. Done. A Strava workout is clean: the run happened or it didn't. But then someone wants to track "practice violin for 30 minutes." How do you verify that? You can't. A photo proves you held a violin, not that you understood what you were playing.

This is where the problem gets layered. We built integrations for the things that are obviously verifiable: GitHub commits, Strava runs, focus timer sessions, calendar blocks. Those are clean. You did the work or you didn't. But most of life sits in the gray area. We found ourselves rebuilding the same question over and over: what level of proof is honest without being paranoid?

Take photo verification. You upload a photo as proof. We could require full metadata (date, GPS location) to confirm you didn't use an old photo. But that's also a place where real life gets messy. Someone might lose photo metadata in transfer. Is that cheating or just technology? We went with metadata as a filter, not a wall, meaning our review system (actual humans on the team) can see flags and make judgment calls on edge cases. It's slower than fully automated verification. It matters more.

The deeper challenge: when you can verify something, you notice quickly what you can't. Want XP for a better sleep schedule? How do you prove you got eight hours and actually rested well? Want to verify "learned something new today"? You need evidence of learning, but a screenshot of an article doesn't prove comprehension. We chose to let users define their own verification method for those tasks. If we define it, we're either demanding invasive privacy or building assumptions about what learning looks like. Neither works. We're betting that people setting their own verification rules will make better choices than we can make for them.

What Verified Progress Actually Feels Like

Josh opened LifeQuest in January. He set up his running goal and connected Strava. First week, the XP he earned matched the runs he actually did. It wasn't an inflated number. It was three runs. Week two was also three, because that's what he actually ran. There's a clarity to that. His level climbs slowly. It climbs honestly.

When he looks at his stats now, the number means something because he knows no one, including himself, cheated it into existence. That matters in a way that a huge fake number never will. The verification engine isn't there to call him a liar. It's there to make sure his progress tells the truth.

LifeQuest

LifeQuest is the proof-of-work life RPG: turn real goals into quests, build skill trees and ranks, and earn more XP when progress is backed by a reviewed photo, server-timed focus session or qualifying GitHub push.

Try LifeQuest

Comments

No comments yet.