I'm Jess, dev based in France. Been building software for ~15 years, and for almost a year now I've been working on Puppetflow, a source-available browser automation platform built around Puppeteer, with a big focus on observability and debugging.
Source is here: https://github.com/puppetflow/puppetflow
If you want the long story, I wrote some blog posts along the development process: https://b.puppetflow.com
It all started when I was using Puppeteer more and more on real projects and kept hitting the same wall: writing the automation was the easy part but running it and figuring out why it broke was the real pain. When a script fails in production, I want answers: what happened, which step failed, what was on the page at that moment, what happened before, and what was in the console.
I was writing just a bunch of scripts I was constantly debugging with screenshots, logs, endless retries, and little diagnostic tools. Last year, I finally tried to build a proper workflow/framework and even a complete platform afterwards.
With Puppetflow you can build browser workflows, watch them run live, interact with them (mouse/keyboard emulation), replay old runs, watch logs, and keep a proper execution history.
I've also added a Blueprint feature, these are reusable automations (you can contribute with a PR on https://github.com/puppetflow/library. I'd love to make it easy for people to share useful browser workflows instead of everyone reinventing the same stuff and building a true community with these blueprints.
Another early decision is that I didn't want to make it AI-first. There are places where AI is genuinely useful but it's not always what you need, it's expensive, slow and unpredictable. I usually prefer a deterministic approach because it's way easier to debug when it goes wrong, and it will. But I like to move with the times, so I added the ability to connect a model and either talk to it directly or just hand it control of the browser.
All these are the shiny parts, but oh boy! That journey was quite something. A few parts turned out to be much more painful than I expected, like the real-time live view, keeping the UI in sync while a run is happening was challenging a lot and I really want to know how competitors are handling this, I'm listening folks.
The second pain is obviously preventing the flow to be stopped by anti-bot measures. For that I'm going to be experimenting with things like fingerprint-chromium (https://github.com/adryfish/fingerprint-chromium), making browser automation reliable against increasingly aggressive bot detection is a whole problem of its own I can't handle all by myself.
Under the hood the browser part is Puppeteer, backend is Laravel, frontend is vanilla React and InertiaJS. I like boring technologies and I think it's fine enough.
I'm sharing it now because I've reached the point where my use cases aren't enough. After working on the same product for so long, it's very easy to become blind. If you use Puppeteer, Playwright or browser automation in production, I'd really like to know how you make it work today. What's failing? How do you troubleshoot it? And if you try Puppetflow, what feels unnecessary or wrong?
I have so much more to say, but let's keep it short for now.
Documentation is available here: https://docs.puppetflow.com and a 100 seconds showcase video there: https://showcase.puppetflow.com
Thanks a lot!