Show HN: Product adoption tools suck so me and my homies built Flows

flows.sh

3 points by VojtechVidra 3 hours ago

If you’ve ever tried building onboarding or product adoption with Appcues, Chameleon, Userflow, WalkMe, or Usetiful, you’ve probably hit the same two problems:

1. Everything is rendered with JavaScript overlays

2. Customization is a nightmare

A little backstory:

When I was choosing an onboarding tool for my previous project, nothing matched what I needed. So I had to build my own. With help from IntroJS I built onboarding solution that I needed: Tooltips, Modals, custom CSS, waiting for interactions, and saving the state into the database. It worked… but it took way more time than it should have, and any change required a redeploy.

This made me realize: there’s no product-adoption tool made for developers and designers.. So me and my friends started building Flows with a simple philosophy:

- Optional built-in components that get the basics right - Or use it headless - bring your own components - SDK for React and JS (supports Vue, Angular, Svelte or any other JS framework) - Support for floating and inline elements - Make changes without redeploying - Fast, lightweight, and predictable - Fair PAYG pricing with free tier

Now, back to the issues and how we’re solving them:

1. Rendering

Most tools inject UI with JavaScript and target elements using selectors. This limits them to floating UI (tooltips, popups, dialogs). The ones that offer “inline” elements do it with brittle selectors, layout shift, and generic blocks that never really match your product.

Flows fixes this with a simple “portal” component <FlowsSlot/> that renders the elements directly where you need, with an optional placeholder to avoid layout shift. And floating components are supported as well.

2. Customization

Good design language isn’t optional anymore, it’s need for people to find your product interesting. That’s why customizing brand colors doesn’t cut it and spending development time on the whole CSS rewrite isn’t smart.

With Flows you can use your own components. Import them into Flows SDK, define the props in our editor and use them in the workflows. Anyone editing the content has clear visibility into the structure of each component and what each field is used for.

I’d love any feedback since we’re just getting it out there, thanks!