User Onboarding Is Not a Flow - It’s a Living System

Tuesday, January 6, 2026

Soma Somorjai avatar
Soma Somorjai

Most onboarding articles will tell you to build a flow, add a checklist, maybe throw in a product tour, and call it a day.

That advice is wrong.

Onboarding is not something you build once and leave untouched. People iterate endlessly on their landing pages to grab users’ attention - but once users sign up, onboarding becomes a black box. No analytics, no iteration, no real understanding of whether users are actually seeing value.

What keeps users is not your landing page.
It’s whether they experience the true value of your product quickly.

If this resonates, I go deeper into this idea in SaaS onboarding, growth and user activation.


The most common onboarding mistake: treating all users the same

I mostly write for developers, developer-led SaaS businesses, and founders. And the biggest mistake I keep seeing is this:

Teams don’t understand their users from a role perspective.

They assume “a user is a user”, build a single onboarding flow, and hope it works for everyone. It doesn’t.

Different users come to your product for different reasons. If you don’t tailor onboarding to those reasons, you’ll fail to show value fast enough - and users will churn before they ever get there.

On top of that, many teams:

  • Build onboarding completely custom from scratch
  • Ship it once
  • Add close to zero analytics

At that point onboarding becomes an unobservable system. You don’t know where users drop off, what works, or what doesn’t.

This is often why first attempts struggle - something I break down step by step in building your first onboarding flow.


The products I’ve built onboarding for

This perspective comes from building onboarding flows for:

  • B2C SaaS
  • B2B SaaS
  • A marketplace

Some concrete examples:

  • An AI service that turns still e-commerce product images into rotation videos
  • A domain marketplace
  • OnboardJS - my take on React onboarding with analytics built in

If you’re unfamiliar with what OnboardJS actually is, I’ve explained the motivation and scope in what is OnboardJS.


What “successful onboarding” actually means

Successful onboarding is not:

  • Stepping through a checklist
  • Completing a tour
  • Seeing tooltips on random features

Onboarding is about value.

And that value is different depending on who the user is.

Take Figma as a simple example:

  • A designer wants to design something visually
  • A developer wants to inspect code, tokens, or handoff

Same product. Completely different value.

If onboarding doesn’t adapt to that, time-to-value (TTV) explodes - and users leave.

This idea ties closely to creating real “aha” moments, something I expand on in creating aha moments in onboarding.


A flow that worked vs one that didn’t

What worked: RotateProduct (AI product videos)

The onboarding for RotateProduct worked because it did a few things right:

  • It clearly shows images and videos of what the AI does
  • It sets expectations early
  • It guides the user straight to uploading an image
  • It gets out of the way

The moment the user sees their own product turned into a rotation video - that’s the “aha” moment.

That moment is everything. That’s when users decide whether they stay or leave.


What didn’t work as well: Domain marketplace onboarding

The domain marketplace onboarding guided users through adding their first domain.

On paper, that sounds good.

In reality, the real value - seeing their domain live on the marketplace - required jumping through hoops:

  • Domain ownership verification
  • Waiting
  • More steps before gratification

That delayed gratification killed momentum. Many users never completed verification because they never got to experience the payoff.

This is a good example of why tours and step-by-step flows alone don’t solve onboarding, something I compare directly in tour libraries vs OnboardJS.


What not to show during onboarding

Regardless of how complex your product is, onboarding should hide most of it.

Based on the user’s persona, you need to identify one core value:

  • For a developer: code
  • For a marketplace seller: their product listed
  • For a buyer: a successful search or purchase

Everything else is noise at that stage.

Onboarding is not about explaining your product.
It’s about letting users experience why it matters to them.


Why onboarding is an engineering problem

Product and marketing should absolutely fine-tune onboarding.

But engineers need to build the system that makes iteration possible.

Onboarding is a state machine:

  • Steps change
  • Steps get removed
  • Steps get reordered
  • State needs to persist (locally or in a database)
  • Analytics must be there from day one

In custom-built onboarding flows, even small changes can be tedious and break assumptions. That friction slows down iteration - and onboarding needs iteration.

This is exactly why I built OnboardJS:

  • To handle navigation and state
  • To persist progress
  • To give analytics out of the gate

If you change one thing in your onboarding

Ask yourself one simple question:

Are all my users the same?

If the answer is no (it always is), then:

  • Ask who they are early
  • Personalize what value you show
  • Guide them toward their aha moment

When users see value that isn’t relevant to them, they won’t stick around.

When they do see relevant value, retention and activation follow naturally.

Onboarding isn’t a checklist.
It’s a living system.

And like any system, it needs to be observable, adaptable, and built with the user - not the feature list - in mind.