Onboarding Before Onboarding
The motivated moment happens before someone installs your app. Ascend doesn't save the plan until the user decides to stay.
When I started building Ascend, I assumed onboarding would look like every other productivity app I’d used. You download the app, create an account, answer a few questions about your goals, and eventually land on a dashboard full of empty states.
The problem is that the most motivated moment in a user’s journey happens before any of that. It happens when they’re lying in bed at midnight thinking: I need to get fitter. I want to write more. I feel like I’m drifting a bit. By the time they’ve installed an app and clicked through six onboarding screens, that spark has often faded.
As I worked on Ascend, I kept coming back to one question: what if onboarding started before the user even opened the app?
Starting with a conversation
Ascend is built around identity rather than tasks. The goal isn’t to help people finish to-do lists. It’s to help them become the sort of person they want to be.
That creates a nasty onboarding problem. Who do you want to become? What matters to you? Which habits do you want to build? Try answering any of that on a blank form when you’re already tired. Most people can’t.
A conversational setup helps, at least in theory. Someone might type:
“I want to stop doomscrolling, get back into running, and finally finish the novel I’ve been talking about for years.”
Before they’ve created an account, Ascend can start turning that into identities, long-term goals, milestones, habits, routines, a rough roadmap for the next few months. The account becomes almost secondary. The plan comes first.
The first versions of this felt generic. The model would spit out goals and habits that sounded fine but could’ve been for anyone. It took a few iterations before the output started feeling like something the user had actually said, not a productivity template with their name swapped in.
Architecting the experience
Most onboarding systems are designed around persistence. Create the user, store their preferences, write everything to the database, gradually build up their profile.
This flow doesn’t fit.
The AI needs enough context to generate something worth keeping, but asking people to sign up before they’ve seen any value adds friction. Creating database records for every anonymous visitor gets expensive and messy fast.
The architecture I’ve been exploring doesn’t save the AI-generated plan straight away. The website captures intent in plain English and sends it to a planning service that translates abstract goals into structured concepts Ascend understands: identities, milestones, habits, actions.
Roughly:
- Capture the user’s free-form description.
- Use AI to extract themes and aspirations.
- Generate a structured plan.
- Present a visual preview.
- Persist everything only once the user decides to continue.
The AI layer focuses on transformation: turning I want my life to look different into something concrete. The application layer handles persistence, reminders, progress tracking. Keeping those separate means the planning engine can improve without touching the rest of the app.
The trade-off is real. Those plans still need somewhere to live in the meantime. We’ve been using short-lived storage with a TTL rather than pretending anonymous sessions don’t exist. It’s not elegant. It works well enough that I’m not ripping it out yet.
The hard part is confidence
Generating a plan is not the bottleneck. Modern models are good at producing goals and habits. Too good, sometimes. The hard part is making people feel like the system understood them.
They don’t want an app that tells them to exercise three times a week. They want to recognise themselves in the identities the system proposes. The moment you’re aiming for is: Yes. That’s the person I’m trying to become.
Most of the interesting work on this project hasn’t been prompt engineering or model selection. It’s been the back-and-forth after the first draft: letting users tweak an identity, reject a habit that sounds like something a wellness blog would suggest, add context the model missed. The preview isn’t a sales page. It’s the part of onboarding where they decide whether you listened.
When that lands, signing up feels like continuing a conversation, not joining another productivity app.
When it doesn’t land, no amount of polished onboarding screens will save you. I’ve watched people bounce at the preview because one proposed identity felt off, even when the rest of the plan was reasonable. One wrong note and they assume the whole thing was generated from a template.
That’s the bet: get the plan right before you ask for an account, because the motivated moment is already gone by the time they reach your empty dashboard.