A bulletproof guide to improve your onboarding

Main illustration: Jack Sjogren

People arrive at a product with all kinds of different intentions, perspectives, and levels of familiarity at their disposal.

We can either address that uncertainty with something hyper-specific, prescribing a single “right” way to use our products, or we can welcome it with a flexible and resilient onboarding experience that serves users of all stripes, ambitions, and timelines.

It’s all a matter of thoughtfully considering and applying the most “bulletproof” (a reference to the excellent Bulletproof Web Design by Dan Cederholm) options available for our own onboarding experiences.

By way of example, consider…

A (very) fragile onboarding pattern

Let’s talk about tooltip tours! You know… these little guys:

They seem pretty helpful on the surface, right?

Perhaps your product has a few key activities that the interface doesn’t make super apparent on its own, so you tack a handful of callouts on top of it, ensuring that the important parts get noticed. Isn’t that a good thing?

It might seem so at first blush, but think about the times you’ve experienced these in the wild as a user: how “helpful” did you find them?

Chances are you found them:

  • Distracting, like when a tour pops up when you’ve just gotten ready to dive into something, or worse, when you’re already in the middle of it.
  • Controlling, like when it takes over the entire screen and makes you click next-next-next-next until it finally puts you back in the driver’s seat.
  • Flaky, like when you accidentally get kicked out of a tour before it’s over and can’t start it again to see what you missed.

“Distracting, controlling, and flaky” is a description befitting the reviled Clippy, not a quality onboarding experience.

This is the opposite of bulletproof.

In the ultra-important first few moments within a product, we want to set the bar much higher. In fact, we should shoot for the exact opposite of each:

  • Instead of distracting, let’s aim for “integrated”.
  • Instead of controlling, let’s aim for “empowering”.
  • And instead of flaky, let’s aim for “steadfast”.

Together, they form like Voltron into…

The holy trinity of bulletproof onboarding

1. Integrated (as opposed to distracting)

When it comes to your onboarding experience (or any product experience, really), one of your very best friends is your user’s sense of immersion, momentum, and flow. You want your users to form a bond with your product, and getting them into an immediate groove is an excellent way to do just that.

As a user, things are much more meaningful when you’re the one calling the shots.

Techniques like tooltip tours, intro videos, and even those little pulsing hotspots hijack your user’s attention and pull it away from their natural sense of self-direction. This not only throws cold water on their overall momentum, it also disengages them from the meaningful activity they would otherwise be immersed in.

Whenever possible, the absolute ideal is to instead make your product’s onboarding experience completely indistinguishable from the “natural” product itself. Instead of slapping an “interface on top of your interface”, find ways to integrate timely, relevant guidance within it.

As a user, things are simply much more meaningful when it feels like you’re the one calling the shots.

Empowering (as opposed to controlling)

Speaking of “meaningful”, is your onboarding experience guiding users into actions that genuinely lead to progress in their lives, or just a better understanding of your UI? People act when they believe that doing so is aligned with their ambitions, and very few people wake up in the morning aspiring to become better “interface operators”.

Pay particularly close attention to times when tooltips and coachmarks call out individual buttons, especially when it’s redundantly framed along the lines of something like “Clicking ‘Create Project’ creates a project!”. If your onboarding is simply reiterating what the interface should already make clear, that’s an excellent sign that you instead need to rework things on a fundamental level. Callouts like those often literally point to “bad design”.

People are signing up for your product because they hope their lives will be better in some way because of it. Guide them to that promised land (more on that in a bit), rather than taking them on a tour of “UI whack-a-mole”.

There are meaningful accomplishments to be taken within your app; highlight those, not your interface’s shortcomings.

3. Steadfast (as opposed to flaky)

If your onboarding only extends as far as the first minute or two within your app, it’s not only colliding with a ton of other competing information that users have to wrap their head around, it’s also abandoning those users long before they’re actually fully up and running (which can easily take days, if not weeks).

And even when a user is fully up and running, it still doesn’t mean your onboarding’s job is done. What a user finds irrelevant now could easily wind up being relevant to them down the road, especially when you conside that your product will also be evolving during that time. “New feature onboarding” is also very much a part of onboarding!

Just like how you don’t stop “being a parent” once your kids are grown, providing timely guidance at every stage of the relationship easily beats stuffing everything into a fleeting “you better hope you remember all of this when you actually care about it down the road” onboarding memory test.

Invest in the long haul, and you will find your efforts more than rewarded.

With these “onboarding bulletproof-ness” concepts in place, let’s investigate how they can be applied.

Some far-less-fragile onboarding patterns

Empty states

Your product is a place of activity, and if no activity has yet taken place, it’s going to have some empty containers reflecting that.

Many products miss a giant opportunity by simply reporting “there’s nothing to see here.” Or worse, some even provide an admonishing “You haven’t done anything yet”” condemnation.

You can do much better by providing some context around why it’s worthwhile to do the things that “fill the container” to begin with, and teeing people up with a call-to-action that gets them on their way.

Are they “integrated”?
Empty states are the very definition of “integrated”. They’re literally part of your product whether you design for them or not, so you might as well make them effective.

Are they “empowering”?
They definitely can be! It’s entirely up to you how thoughtfully you reframe the “you don’t have anything” message into a call-to-action that guides people toward doing something of consequence.

Are they “steadfast”?
You better believe it, baby! Unlike an intro tour, empty states stick around until the user has actually done something to address them, which means they provide help on the user’s schedule.

Progression systems

Taking your users from “completely new” to “fully capable” is a journey, one that can be rather lengthy at times. Progression systems are super helpful for helping users make their way along each stage of that journey.

They often take the form of to-do lists (with items that get crossed off as the user completes them), or completion meters (like LinkedIn’s infamous “thermometer of agony”), or some combination thereof.

Regardless of how they’re displayed, the important part is to highlight the most important activities inside the app, and to demonstrate the progress users are making as they complete those activities!

Are they “integrated”?
While they may not be a completely “natural” part of the app, they’re also far from distracting or interruptive of the organic flow within a product. Think of them as providing a great “fallback option” for the user, rather than an element that’s competing for their immediate attention.

Are they “empowering”?
As with the empty states above, any onboarding experience is only as empowering as you choose to make it. That said, progression systems are among the patterns most closely aligned with spurring users to do things of actual consequence, which the “empowerment” concept is all about.

Are they “steadfast”?
They’re specifically designed to work over the long haul (think in terms of multiple visits, not just the first). Pro tip: if someone reaches “100%” progress, you can also always just graduate them to “Level 2” and start them off on a new series of quests!

Lifecycle emails

This is the catch-all term for all the messages you send someone after they sign up. Ideally, the emails are dynamically based on a user’s activity within the product (or lack thereof), rather than a cookie-cutter series of “info blasts” that go out to everyone, regardless of their level of progress.

When someone signs up for a product, they’re doing so because they’re motivated to find a better way of doing things. That’s unlikely to fully happen in the very first visit, so I like to think of lifecycle emails as “guardrails” for that motivation.

Lifecycle emails (and their sister pattern, push notifications) are unique in the onboarding world, as they’re the only patterns that actively go out and bring people back into your app, hopefully in a way that’s motivated to take meaningful action.

Are they “integrated”?
They aren’t part of the product at all, so it’s hard to say that they’re “integrated” per se. Then again, since they are outside the product, they do absolutely nothing to distract from the task at hand once a user arrives there.

Are they “empowering”?
Ideally, yes! Nagging emails like “You haven’t logged in for two weeks, we miss you!!” aren’t particularly empowering, but ones that outline a key action for a user to take (and sell them on why it’s to their benefit to take it) definitely are. As with anything, it’s all about proper framing.

Are they “steadfast”?
When done well, they absolutely are! Too many software companies underinvest in lifecycle emails, meekly sending a couple when someone signs up, and then calling it a day. If what you’re sending your user base is genuinely helpful and relevant, you should have no hesitation in loading up – think dozens, not a couple, and months-worth, not days.


Onboarding will always be as unique to a particular product as that product is to the world, and there are tons of other patterns to explore for your own.

Hopefully this framework provides you with the principles by which to evaluate them.
I’m asked all the time to suggest one or two onboarding design patterns “that I like”, but nothing in design (or life, for that matter) is ever that universal.

The honest answer is that, with onboarding, there simply is no silver bullet. Fortunately, though, you can always strive for bullet-proof.

This post was first published on Medium.