Inspiration
Most goal trackers ask you to check a box. That's the whole problem. A checkbox doesn't know if you actually did the thing, and after a few days of checking boxes you don't quite believe, the app stops meaning anything.
Wingman started from a simpler question: what if the app asked you to prove it instead? Set a goal, log what you actually did, and let the app check whether your actions lined up with what you said you wanted. Turn that into a receipt — something concrete enough to look back on, honest enough to be worth sharing.
What it does
Wingman is a native Android accountability app built around one core loop:
Set goals across five cadences — daily, weekly, monthly, quarterly, yearly Log what you actually did each day, tagged to the goal it supports Get a daily and weekly receipt, a clean, shareable printout of what got done and how your streak is holding up Answer a daily reflection prompt, including the one that matters most: what did you do differently today to move toward your goals Talk to an AI companion that already knows your active goals and current streak built to cut through overthinking and turn a stuck moment into one small next step, not sound like a generic chatbot Log hands-free with voice input, and set a reminder to log your goals
Wingman Pro (RevenueCat-powered) unlocks unlimited goals, full receipt history, and the AI companion beyond a free trial allowance.
How we built it
Native Android — Kotlin, Jetpack Compose, Koin for dependency injection and Room for local persistence
AI companion - Gemini by Google
How we leveraged sponsor tools
- RevenueCat — powers the entire Wingman Pro subscription: entitlement-gated feature access (unlimited goals, full receipt history, AI companion), a monthly/annual offering with a free trial, and quota-based free tries for the AI companion before the paywall triggers.
- OneSignal — powers in-app messages and push notifications for re-engagement, e.g. prompts to close out a month's goals and set new ones as the month turns over.
Challenges we ran into
The daily selfie feature needed a filter that actually looked stylised, not just recoloured, which meant evaluating on-device ML models rather than a simple algorithmic filter.
I set out to post daily YouTube videos and consistent social updates throughout the build, chasing the Build-in-Public award specifically. Keeping that pace up every single day wasn't sustainable alongside actually shipping features.
Accomplishments that I'm proud of
- Shipped within the timeframe the challenge required. Went from concept to a working, published app inside the Shipaton window — the kind of deadline that's easy to underestimate for a solo build.
- Integrated both RevenueCat and OneSignal — RevenueCat powers the Wingman Pro paywall and entitlement gating, OneSignal drives in-app and push re-engagement, and both are working together in a shipped product rather than sitting as separate demos.
- Started a YouTube channel to document the build in progress — a real, ongoing commitment to sharing the process, not just a single launch post.
What we learned
- "Works locally, breaks in production" for anything identity-related is almost always a signing-certificate mismatch, not a code bug. Now we verify both certificates are registered before every first-time feature that touches Google Sign-In.
- Auth on Android isn't one system, it's several that need to be told to reset in sync. A clean sign-out has to walk every layer, not just the one that looks like the "main" one.
- Anything that "disappears" rather than crashes in a release-only build is worth suspecting R8 first. Debug builds hide an entire class of bugs that only a real release build will surface.
- A sustainable, milestone-driven posting cadence produces more honest, substantive content than a daily quota does, but it's also a direct tradeoff against a specific award category, worth naming plainly rather than pretending the daily cadence happened.
What's next for Wingman
Selfie & weekly collage — a daily emoji-prompted selfie, cartoonified on-device (classic image processing, posterise plus edge detection, zero per-image cost), compiled into a shareable weekly collage alongside the receipt. Evaluated a generative-AI cartoonify path too, but it needs a Pro-only, cost-aware rollout rather than being rushed into the free tier.
Remote sync — a backend service so goals, logs, and receipts follow the same account across devices, using the identity already established through Google Sign-In.
Built With
- firebase-auth
- gemini
- google-cloud-run
- google-play-billing
- google-sign-in
- jetpack-compose
- koin
- kotlin
- ktor
- revenuecat
- room
Log in or sign up for Devpost to join the conversation.