Show HN: A tool to design and run user state machines

Show HN: A tool to design and run user state machines

Hi everyone,

I’m Joe, CTO at Dopt. We’re building a tool that lets you design user state machines with an SDK so that you can run them in your product.

We offer a React SDK that lets you create instances of those machines for any user of your product and exposes methods for transitioning the state of the user—effectively moving them through the machine. Dopt then acts as a persistence layer for the users’ machine state. We call our machines “flows”. Dopt lets you send in data about your users (identify calls/properties) and lets non-devs define rules based on that data for which users should enter the flows. Non-devs can also update content and other custom properties that can be referenced via the SDK.

For example, with Dopt’s SDK you can build:

- a multi-step, interactive product walkthrough that helps users learn how to use a product by using it ( )

-a getting started checklist that helps a team get setup and activated (

You can see a short 4 minute demo of how Dopt at

We make iteration on your state modeling easy with flow versioning, and we even handle migrating your users between versions on the fly. Dopt’s UI lets everyone easily track how users move through your flows and provides controls for enabling/disabling or resetting them. We’ll work right alongside your analytics and experimentation tools.

We started Dopt because we’ve seen the teams building onboarding/education flows struggle with a similar set of issues that Dopt sets out to solve:

- Homegrown onboarding is time-consuming to maintain (and it changes a lot!). The logic of the flows is complex and opaque to non-developers and devs are forced to be in the loop for every small copy, targeting, and logic change.

- The customer and user data needed to show people relevant experiences lives in multiple places and is hard to build interactive experiences with (e.g. what’s their use case, what plan they’re on, what they’ve done in the product, what other teammates have done in the product, etc…).

- Persisting and migrating user flow state is hard.

The existing tools aimed at helping people put onboarding into their products frankly suck. They’re not built for developers, only offer boilerplate components, and have brittle integration points that are hard to troubleshoot. They end up producing mostly low-quality tooltip tours.

We’re in a closed beta period right now but are looking to find more people building product onboarding that are willing to give Dopt a spin.

We’re not charging for Dopt during our beta period and are just asking for feedback to help us learn how to make Dopt better. We’ll eventually start charging later this year (by monthly tracked users) when we go fully self-service but are planning on having a “free in-perpetuity” tier for small use cases to make it easy to evaluate whether Dopt’s valuable. We won’t pull the rug out from anyone who’s built with us during the closed beta.

You can signup for our waitlist on or drop us a note at If you mention HN we’ll skip you to the head of the line and get you product access. We’d love any feedback on the site, docs, and examples too!