
Do the damn thing.
A gamified quest app: complete real-world challenges, submit photo or video proof, earn XP, level up through classes and compete with friends on a global leaderboard. Live on the App Store at bsheel.app.
- v1.4Live on the App Store
- 5Quest categories
- 5Classes, Scout to Legend
- Mar → Aug 2026Built in
The site
bsheel.app: the quest of the day, highlights, the live leaderboard, how it works and the manifesto.
bsheel.app, live. Click to open.Founder and product developer
My own product, built from the first sketch: the concept, the UX plan, the design system, the iOS app, the admin dashboard, the backend and the release pipeline.
- Concept, UX flows and screen outline
- Design system in the Arcade style: tokens, type, pixel UI
- iOS app in Flutter with Riverpod and GoRouter
- Admin dashboard in Flutter Web
- Supabase backend: schema, auth, storage, RPC, edge functions
- App Store release pipeline and the bsheel.app site
Three people in the loop
- The player
Opens the app, picks one of three AI-generated quests, does it in the real world, submits proof, earns XP, levels up, posts to the feed.
- The crowd
Reacts and comments on completed quests, follows friends, chases them on the leaderboard.
- The admin
Reviews submissions, approves or rejects with a reason, handles appeals and reports, injects quests, sets the quest of the day, sends announcements.
UX plan: the loop, the outline, the screens
The whole product is one loop: get a quest, do it, prove it, get rewarded, show it off. Every screen exists to serve one step of that loop.
The core loop
- 1Pick a quest
- 2Do it in the real world
- 3Submit photo or video proof
- 4Moderation
- 5Earn XP, level up
- 6Post to the feed
- 7Friends react
Screen outline
- Splash
- Onboarding, four pages
- Sign up and sign in
- Legal
- Quests, three options across five categories
- Active quest with countdown timer
- Submit proof with preview, zoom and video thumbnails
- Submissions and their status
- Feed of completed quests
- Reactions, upvote and downvote
- Comments
- Follows
- Search
- Collab quests
- Leaderboard, global XP
- Profile: class, badges, stats, streak
- Level-up celebration
- Notifications
- Dashboard
- Moderation
- Appeals and reports
- Quest management, injection and quest of the day
- Users and XP
- Feed management
- Announcements and auto-notifications
- Web sign-ups and suggestions
Design system: the Arcade look
- Paper#FFF9EE
- Surface#FFF1D6
- Ink#1A1330
- Primary violet#6B3BFF
- Accent yellow#FFC224
- Red#FF5A6E
- Success#17C27B
- Cool#4CC9F0
- Display
- Syne, wide and heavy, for titles and the big numbers
- Body
- DM Sans for everything readable
- Labels
- JetBrains Mono, uppercase and tracked, for stats, timers and tags
- Scale
- 12, 13, 14, 16, 20, 24, 30 and 38
- Spacing
- 4, 8, 16, 24, 32 and 48
- Shapes
- Hard offset shadows, thick ink borders, pixel avatars and pixel confetti. An arcade cabinet, not a glass app.
The screens
The v1.1.6 release slides, straight from the app.

Cover, Bsheel v1.1.6 
App icon and branding 
Social feed, completed quests with pixel reactions 
Quests, pick from three AI-generated options across five categories 
Leaderboard, global XP ranking 
Profile, class progression, badges and stats 
v1.1.6 release, fixes and refinements 
Built with Flutter, Supabase and a lot of late nights
What it does
- 01
Quest system
AI generates quests across fitness, creativity, social, learning and adventure. Players pick one of three, complete it within a per-quest timer set by the admin, and submit photo or video proof.
- 02
XP and leveling
XP per quest tuned to real difficulty, levels with class progression from Scout through Warrior, Mage and Champion to Legend, seven badges with real unlock logic, and a pixel-confetti celebration on level up.
- 03
Social feed
An Instagram-style feed of completed quests with upvote and downvote reactions, comments, follows and search.
- 04
Leaderboard and streaks
A global ranking by XP, a friends view, and daily streaks with your longest run.
- 05
Submit flow
Preview before sending: full-screen photos, videos that play and pause, pinch to zoom, a clean remove, and real first-frame video thumbnails.
- 06
Push notifications
Real-time push through Firebase Cloud Messaging, sent by a Supabase edge function on every status change.
- 07
Admin dashboard
A Flutter Web panel at admin.bsheel.app: moderation queue, appeals, reports, quest management and injection, quest of the day, users and XP, feed management, announcements, auto-notifications, web sign-ups and quest suggestions.
- 08
Localization
English and Lebanese Arabizi, the way people in Beirut actually type.
Stack
- Mobile
- Flutter for iOS, Riverpod for state, GoRouter with deep links.
- Admin
- Flutter Web, served at admin.bsheel.app.
- Backend
- Supabase: Postgres, Auth, Storage, Edge Functions, self-hosted on a Contabo box at api.bsheel.app.
- Push
- Firebase Cloud Messaging, v1 API.
- Media
- Cloudflare R2 through Workers.
- Site
- bsheel.app, the marketing site with the quest of the day, highlights, leaderboard, how it works and a manifesto.