Inspiration
Starting is often harder than doing.
When a task feels too large, even deciding what to do first can become another source of friction. I wanted to build something that does not ask users to create a perfect productivity system. Instead, First Move asks a smaller question: what is one concrete thing you can do next?
What it does
First Move turns an overwhelming task into one small, actionable first move.
Users can:
- create a tiny next action based on what they are stuck on;
- start a short Focus countdown and save completed sessions;
- organize tasks and habits without requiring an account;
- optionally sign in to sync supported data across devices;
- use AI-assisted planning and toothbrush verification when explicitly requested;
- earn points through completed activity;
- spend those points on food, toys, furniture, and interactions for a pixel cat.
The cat is not just decoration. It gives progress a lightweight, visible consequence without relying on punitive streaks.
Guest Mode works entirely without account creation. Pro expands the live-AI allowances while the core productivity experience remains usable without a subscription.
How I built it
The iPhone app is built with Expo, React Native, and TypeScript.
Supabase provides passwordless authentication, PostgreSQL-backed cloud data, and account infrastructure. RevenueCat manages the Pro entitlement, monthly and annual subscriptions, the paywall, restore purchases, and purchase state.
Live AI requests run through a server-side API rather than exposing provider credentials in the app. OpenAI powers the optional AI-assisted features. The web/API layer runs on Next.js and Vercel, and Resend is used for authentication email delivery.
The release pipeline uses EAS Build, TestFlight, App Store Connect, and physical-device testing.
Challenges
One of the largest challenges was making a simple-looking app behave correctly across Guest Mode, signed-in accounts, cloud synchronization, subscriptions, AI quotas, and account deletion.
Account deletion in particular required coordinating Supabase Auth, database cascades, RevenueCat identity cleanup, stale sessions, retryable background work, and local-device cleanup without accidentally deleting Guest data.
Another challenge was keeping paid AI access server-authoritative. A client-side Pro badge is not sufficient authorization, so the server independently checks entitlement and quota before each live request.
What I am proud of
First Move reached a complete iPhone release rather than remaining a prototype.
The production build includes passwordless sign-in, Guest Mode, cloud sync, real subscriptions through RevenueCat, server-enforced AI allowances, account deletion, a Focus timer, a reward economy, and an interactive pixel-cat room.
I also tried to make privacy and account control visible parts of the product rather than hidden release requirements.
What I learned
Shipping the whole product changed how I thought about mobile development.
The difficult parts were often not individual UI screens, but the boundaries between systems: StoreKit and RevenueCat, local and cloud state, authentication and stale sessions, subscription identity and application identity, and App Store release requirements.
I also learned that reducing product scope can make the experience stronger. First Move deliberately focuses on getting started rather than becoming another large productivity suite.
What's next
After the initial release, I want to deepen the relationship between real-world progress and the pixel cat, improve the cat's room and interactions, and make the reward system feel more personal over time.
I also want to keep refining the smallest possible path from “I am stuck” to “I started.”
Built With
- api
- build
- eas
- expo.io
- native
- next.js
- openai
- postgresql
- react
- resend
- revenuecat
- storekit
- supabase
- testflight
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.