Inspiration
I built First Move from a personal problem.
On low-energy days, sometimes I know exactly what I need to do and still remain in bed scrolling on my phone. The longer this continues, the harder it becomes to switch into any deliberate activity, even something as small as brushing my teeth, going for a walk, or opening a document.
Most productivity tools begin after the user is already ready to plan or work. First Move focuses on the step before that: moving from being stuck into one small, intentional action.
It is designed for difficult-start days without treating rest, entertainment, or an incomplete session as failure.
What it does
First Move is a responsive web app built around a simple loop:
notice that I am stuck → choose an intentional direction → take one small action → receive immediate positive feedback
Morning Start
The day can begin with a concrete physical action: taking a current photo containing a toothbrush.
GPT-5.6 analyzes the image and returns a structured verification result. If the toothbrush is clearly visible, the Morning Start is completed and the virtual kitten receives breakfast.
The image is resized in the browser and is not retained by the app.
Plan My Day
Users can type or dictate an unstructured brain dump, such as:
I woke up late, have not started working, need to finish a video, do the laundry, update my resume, and apply for jobs.
GPT-5.6 turns this into:
- one concrete First Move;
- up to three priority tasks;
- up to three optional tasks;
- suggested categories and durations.
The result remains fully editable and is not saved until the user confirms it.
“I’m Stuck”
The “I’m Stuck” flow is available at any time.
Users can identify their current barrier, such as:
- scrolling and unable to stop;
- unable to get out of bed;
- knowing what to do but being unable to begin;
- feeling overwhelmed;
- needing intentional rest;
- being unsure what they need.
They then choose an intentional direction:
- Work & Study;
- Daily Life;
- Exercise & Movement;
- Intentional Entertainment;
- Rest.
First Move suggests one very small local action. This flow works without AI, so the core product remains usable offline.
Focus and time tracking
Users can start a 2, 5, 10, 25, or 50-minute countdown, choose a custom duration, or use an open-ended stopwatch.
Tasks, intentions, and tracked sessions remain separate:
- a task represents something the user may want to accomplish;
- an intention represents what they choose to do next;
- a session represents the time they actually spent.
Running timers survive page refreshes. Sessions may be completed or stopped intentionally. Stopping early is recorded neutrally rather than treated as failure.
Immediate kitten feedback
Completing a Morning Start, task, habit, First Move, or focus session earns points and triggers a short positive reaction from the virtual kitten.
The kitten also creates a longer-term progression:
- it begins with milk;
- cat food unlocks at 21 total active days;
- treats unlock at 50 active days;
- at 100 active days, it becomes adventure-ready and unlocks an outdoor flower-and-butterfly scene.
Progress is based on total active days rather than a perfect streak. Missing days never erase earlier progress or harm the kitten.
Today, Trends, Calendar, and Mini Journal
The Today view helps users see that a difficult day was not necessarily an empty day.
It includes:
- total intentional time;
- time grouped by activity category;
- completed tasks and habit check-ins;
- completed and intentionally stopped sessions;
- seven-day and thirty-day trends;
- calendar history;
- a lightweight Mini Journal.
Rest and intentional entertainment are displayed as valid categories rather than negative outcomes.
How I built it
First Move is built with:
- Next.js App Router;
- React and TypeScript;
- Tailwind CSS;
- browser localStorage;
- responsive SVG and CSS animations;
- browser camera and image-processing APIs;
- the OpenAI Responses API;
- GPT-5.6 Luna.
The application uses a versioned local data repository with defensive validation and migration. User activity, tasks, journal entries, rewards, inventory, and session history remain in the browser.
OpenAI API keys are kept server-side. AI calls occur only after an explicit user action, use structured outputs, and have manual or mock fallbacks.
How GPT-5.6 is used
GPT-5.6 powers the two points with the highest friction:
Multimodal Morning Check
GPT-5.6 analyzes a newly captured image and determines whether a real toothbrush is clearly visible.Structured daily planning
GPT-5.6 converts an overwhelming brain dump into one editable First Move and a small set of prioritized tasks.
The model is not used for generic encouragement, medical diagnosis, reward calculations, or background calls.
How Codex was used
Codex was my primary engineering collaborator throughout the project.
It helped me:
- scaffold and structure the Next.js application;
- design the TypeScript data models;
- implement versioned localStorage persistence and migration;
- build timestamp-safe countdown and stopwatch logic;
- add duplicate-safe rewards;
- develop responsive interfaces, charts, and calendar views;
- integrate camera capture and OpenAI API routes;
- write tests and diagnose build, state, and layout problems.
I retained control of the product framing, feature priorities, reward system, privacy boundaries, manual fallbacks, and non-punitive user experience.
Challenges
One major challenge was avoiding a collection of disconnected productivity features.
I had to define a coherent relationship between:
- being stuck;
- choosing an intention;
- taking a small action;
- tracking actual time;
- receiving immediate feedback;
- reflecting on progress later.
Another challenge was separating tasks, habits, intentions, and sessions without exposing that complexity to the user.
I also had to make timers survive refreshes, prevent duplicate rewards, protect API keys, limit paid calls, validate persisted browser data, and make the interface responsive across desktop and mobile layouts.
The virtual kitten introduced a different challenge: it needed to feel rewarding without creating guilt, punishment, hunger, illness, or pressure after missed days.
What I learned
The project taught me that an AI feature does not need to appear everywhere to be meaningful.
GPT-5.6 is most useful where the user faces ambiguity or high friction. Deterministic local logic is more appropriate for timers, rewards, history, and progress calculations.
I also learned how a real AI product connects:
browser interaction → server API route → OpenAI request → validated structured response → editable user confirmation
Codex allowed me to build a complete working system while learning how the architecture, state transitions, tests, API boundaries, and deployment process fit together.
What's next
The hackathon version is a responsive web app.
A future native mobile version could add:
- a system-level alarm;
- operating-system-level app blocking;
- notifications and background behavior;
- on-device toothbrush or bathroom-scene recognition;
- private cross-device synchronization;
- optional accountability partners;
- additional kitten environments, tricks, and customization.
First Move is a productivity and wellbeing tool, not a medical service. It does not diagnose or treat depression.
Built With
- api
- codex
- gpt-5.6
- next.js
- openai
- vercel
Log in or sign up for Devpost to join the conversation.