Inspiration

Four years ago I decided to get myself healthy. For three or four months, almost nothing changed — not for lack of trying. I was doing the obvious things, and doing them properly. But the effort I was putting in took up an hour or two of my day. The other twenty-two hours decided the result: what I ate, when I slept, whether I recovered, whether any of it held together across a normal week. Nobody writes a plan for those twenty-two hours.

So I taught myself, through YouTube, Google, and a lot of failed experiments. It took me over a year to work out what the right person could have told me in a week. And the thing I actually wanted was never more information — there's an infinite amount of that already. I wanted someone who knew my schedule, my body, and my week well enough to tell me what made sense on a random Tuesday.

Once I'd worked it out for myself, I wanted my family to have the same thing. That turned out to be much harder. Everything I'd learned quietly assumed a life like mine — time to cook for myself, time to look after myself, an evening that belonged to me. Theirs didn't work that way. Meals get cooked for a household, not a target. The shape of the day is decided by other people. The advice wasn't wrong; it just didn't survive contact with their week.

And I realized it wasn't really a motivation problem. They wanted to be healthier. What they didn't have was a way to stay consistent when the plan and the day disagreed — which is most days. Miss a couple of days and the whole week goes with it. Yesterday's miss starts to feel like today's failure, and eventually it's easier to stop asking.

Months later I read one of the Shipaton category briefs and it described the same person almost word for word: women juggling work and family who don't need more advice, they need help deciding what to do today. I wasn't building for a category — I just found out the problem I'd been staring at had a lot more people in it than I thought.

So DayZer0 is my attempt at building the coach I wished they had. Not one that tells you what's optimal, but one that knows what your day actually looks like and still has an answer — so a bad Tuesday stays a bad Tuesday instead of becoming a reason to quit.

What it does

DayZer0 isn't really a fitness tracker. It's a plan for the other twenty-two hours.

Daizee builds one small plan around the life you're actually living: one focus and three things you can actually finish — Eat, Move and Recover. Around your local midnight, she looks at your goals, schedule, activities, recent meals, sleep, steps, the last seven days of follow-through, and the things she's currently remembering about you. The result isn't another program to manage. It's an answer to one question: what should I do today?

That answer changes with the person and with the day. Someone who slept 7h10m and has yoga planned for Tuesday might get a 20-minute yoga session after work. Sleep only 5h40m and have an active sore-knee memory, and the same person gets a different day: protect tonight's sleep, do a gentle 10-minute stretch, and go to bed earlier. The plan adapts without asking the user to rebuild it.

The harder part is deciding what not to show. Daizee is deliberately constrained to one focus and three actions, while the context router only loads information relevant to the question being asked. Memories are limited and temporary facts expire, so the coach doesn't become more overwhelming as it learns more.

The user doesn't have to manage the system around her. They can simply talk: tell Daizee what they ate, weigh themselves, mention a sore knee, ask if dessert still fits, or say they have low energy. Those facts become context for what comes next. Yesterday's meals, sleep and follow-through become tomorrow's inputs. A missed action is recorded, but never turned into a failure message; the next day simply starts with the information Daizee has.

And she doesn't always wait to be opened. A daily plan, an expiring-memory check-in, or an afternoon nudge can bring Daizee back into the conversation when there's something worth saying. Every reply lands in that same conversation, so the relationship continues instead of resetting.

You talk to Daizee. Everything else is her showing you what she heard.

Daizee is free to start. Pro lifts the daily limits so the conversation doesn't stop mid-week.

How I built it

DayZer0 is a Flutter app on GetX, with Firebase doing everything on the backend — Firestore, Cloud Functions (gen 2), Storage, App Check. Google's Gemini is the voice behind Daizee.

Every message runs through two AI calls, not one. A cheap router (Gemini Flash Lite, thinking off) figures out what you're actually asking before anything else happens. "Hey" needs almost no context. "Can I still have ice cream tonight?" needs today's meals, your remaining targets, and whatever she remembers about you. Only the second kind of question pulls in the coach model, and only with the context the router decided it actually needs. Logging a meal from a photo doesn't call the coach at all.

Memories live in their own Firestore collection with a lifespan per category, and a scheduled job checks which ones are about to expire to decide what to check in about. The daily plan itself is generated at local midnight — for your timezone, not mine, which turned out to matter more than I expected (more on that below).

The app also runs two visual themes end to end — Electric Navy and Midnight Rose — so it doesn't have to look like a default gym app for everyone who opens it.

RevenueCat runs the subscription, the seven-day trial, and the paywall, with the server as the source of truth for who's actually Pro — not the phone. OneSignal handles every push, and every one of them opens back into the same conversation instead of a dead end.

Challenges I ran into

Onboarding that doesn't feel like paperwork. A coach is supposed to know you, but a long form asking for your height, weight, sleep schedule and work hours feels like opening a bank account, not starting a relationship. I wasn't just trying to make onboarding faster. I was trying to make the first interaction feel like meeting someone. So Daizee asks one thing at a time, responds like a person would, and the next question depends on what you just said. By the time onboarding is done, the relationship has already started — the plan comes after.

Making a coach that forgets. An assistant that remembers everything forever is worse than one that remembers nothing — it'll keep coaching you around a sore knee you got over a month ago. Getting the model to attach a lifespan to a fact, and to actually ask before quietly dropping it, took more iterations than any other part of this app.

Midnight where I am is afternoon somewhere else. Early on, "start of day" and "afternoon check-in" both ran on India time, because that's where I was testing. It worked fine for me and broke for everyone else: a US user's morning plan would show up after lunch, and the afternoon nudge could land before sunrise. The app already knew each person's local date — the job that fired these events didn't. I fixed it so every person gets their own "next midnight" and "next 3pm," and a sweep only acts on the people whose time has actually arrived. A judge testing this from the US should get their morning plan in their own morning, not mine.

What I'm proud of

I'm most proud that I didn't build Daizee like a feature inside a fitness app. I built her to feel like someone.

I wanted the relationship to start from the very first screen. Instead of throwing users into a form, I made onboarding a conversation — one question at a time, with Daizee responding to what they say. The first interaction isn't setup; it's the beginning of the relationship.

I tested the app with colleagues, friends, and family, and in my own testing, around 90% of people completed onboarding easily. Even my 51-year-old mom could go through it without needing help. And if someone leaves before finishing, OneSignal can remind them that their onboarding is still waiting for them rather than assuming they've simply disappeared.

I'm also proud of giving her an actual memory. When a user tells Daizee something important, I wanted it to stay with her instead of disappearing into an old chat. And I went one step further: I built memory with a lifespan, because someone who knows you should also know when something is no longer relevant.

Even the visual experience was something I wanted to make personal. I built Electric Navy and Midnight Rose as complete visual identities rather than simply changing an accent color. The goal was to make DayZer0 feel like a personal space, not another generic fitness app.

None of these were just features I needed to check off. They were small decisions toward the same thing: making Daizee feel less like something you use, and more like someone who is getting to know you.

What I learned

I learned that personalization isn't about giving the AI more information — it's about giving it the right information at the right moment. Once I stopped feeding Daizee everything and started selecting only the context relevant to each question, she became faster, cheaper, and more useful.

I also learned that building a personal coach is less about teaching the AI what to say and more about teaching it what to remember, what to forget, and when to act. That changed how I designed everything from memory and context routing to proactive messaging.

What's next

I want to make Daizee feel even more like someone who is present in the user's life.

First, talking to Daizee instead of typing — making the relationship feel as natural as speaking to a coach.

Second, making Daizee better at knowing when to show up — evolving our OneSignal messaging from scheduled reminders into more contextual, personalized moments.

Less effort from the user. More presence from Daizee.

Share this project:

Updates

Submission history