Hi there. I wanted to announce a project I've been working on — StepFlow (https://stepflow.dev).
StepFlow is a library that builds and drives a user flow/funnel. The flow is defined by declaring the data needed, broken down into user-friendly steps.
Over the years I've worked on plenty of "funnels" — linked forms + screens that get the user to some goal such as user registration, cart checkouts and choosing options for a feature. Most are relatively straightforward to build but can be tedious once you start the usual UI iteration, data validation, step coordination, integrating analytics, building experimentation, etc. Worse, they become error prone when you tweak for experimentation or duplicate work for other platforms.
StepFlow takes a data-centric approach to the problem by focusing on the coordination of data dependencies in the funnel. When combined with Actions that can be performed on the dependencies, it can generate the UI for you as well. Features such as experimentation can be implemented in the core engine to be used in all flows.
My goal is to make it easy to prototype, launch to production and experiment with funnels. You define the data you need, break it up into steps and it'll do the rest. You can define the flow as a JSON object (easiest), use the Rust API directly or a combination of the two. It runs on clients (currently just the browser via WASM) or server-side.
It still needs a lot of love wrt documentation, getting the WASM size down and some valuable features like branching but I thought it'd be interesting to get it out there for feedback.
Please let me know if you have any thoughts!