Inspiration
Most habit trackers rely on guilt — a broken streak feels like failure, so people give up entirely. We wanted something that rewards consistency without punishing a missed day. Vylo turns habit-building into growing a small isometric farm: complete your 3 daily habits and your farm visibly grows; miss a day and it just fades a little — reversible, never destroyed.
What it does
Users pick 3 daily habits. Completing them grows a personal isometric farm through visual stages (Day 1 foundation → Day 100 signature landmark). Missing days causes gentle, reversible decay instead of streak-breaking guilt. Hitting a growth stage triggers a celebration with a shareable "Farm Card" — an auto-generated image users can post to social media.
How we built it
- Frontend: Expo (React Native) + TypeScript, Expo Router
- Backend: Supabase for auth, Postgres, and cross-device sync
- Monetization: RevenueCat, with a native store-based 30-day free trial that reverts to a permanent free tier (1 farm plot) rather than locking users out
- Animation: Lottie for celebration moments
- Art: A licensed, hand-drawn isometric asset pack (Penzilla Design's "Isometric RPG Village"), after early AI-illustration attempts produced inconsistent, broken isometric geometry
- Ship Kit tools: Argent (Claude Code simulator control for iOS), Limrun (cloud iOS/Android simulators), Mobbin (UI design reference)
Challenges we ran into
- Scope: the original 4-zone concept (Health/Mind/Focus/Sleep) was too much art to produce consistently in the timeline, so we scoped down to one zone (Farmlands) and re-architected monetization around unlockable farm plots instead of unlockable zones.
- Real user feedback stopped us cold: a Reddit tester liked the app but abandoned it at a mandatory signup wall (name/email/phone/password). We removed the phone field entirely and added guest sign-in via Supabase's anonymous auth — gated by a server-side flag rather than a build-time one, since Google Play's "promote build" feature can carry a build-time flag straight into production.
- Google Play's tester gate: new Personal developer accounts require 12 testers using the app for 14 consecutive days before Production access unlocks — this became the single biggest timeline risk in the whole project, more than any code work.
- Native modules meant real builds, not hot reload: RevenueCat and Lottie both require native code Expo Go can't run, so every new native dependency meant a fresh EAS build.
Accomplishments that we're proud of
- A full, working habit → farm-growth → decay/recovery → celebration → share loop
- Turning real (sometimes uncomfortable) tester feedback into a same-week product fix
- A monetization model, verified end-to-end with RevenueCat's Test Store, that never fully locks a user out of the app
- Catching and correctly excluding a broken tablet layout rather than shipping bad screenshots
What we learned
Real testers surface problems no amount of internal QA will — and app-store trial mechanics work very differently from what we originally assumed (they're store-native and payment-attached-upfront, not just a countdown you control in-app).
What's next for Vylo
- Finish Google Play's merchant account (banking/tax) verification to unlock real in-app purchases
- Deploy the marketing website and complete the license obligation back to the asset creator
- Build out the original 4-zone vision (Mind, Focus, Sleep) as post-hackathon roadmap
- iOS / App Store Connect setup
Built With
- claude
- eas-build
- expo-router
- expo.io
- lottie
- postgresql
- react-native
- revenuecat
- supabase
- typescript