We’ve been experimenting with running the Frappe framework fully client side in the browser using WASM + SQLite, inspired heavily by what WordPress Playground did for the WordPress ecosystem.
The idea was simple:
“What if trying Frappe could be as easy as opening a link?”
After a lot of hacks and broken experiments, we now have a working prototype running entirely in the browser.
Current setup is highly experimental:
SQLite instead of MariaDB
In-memory/cache workarounds instead of Redis
WASM runtime
Browser persistence experiments
Lots of rough edges!
But even in this state, it already feels like a gateway to interesting possibilities!
This is a really interesting experiment. Lowering the barrier to trying Frappe directly in the browser could help more developers explore the framework without going through a full installation process. I’m especially curious to see how performance and persistence evolve as the project matures. Thanks for sharing the progress and the technical details.
At the loadup can you put a progress bar as it is stuck on the “Installing python dependencies”
So i dont know if it is making any progress or just stuck (maybe bad internet)
Thanks! That’s exactly the goal of the project: making it easy to explore and experiment with Frappe without the overhead of a full setup.
Performance and persistence are our immediate priorities. We’re working on faster startup times and adding persistence so users can pick up where they left off instead of losing state on refresh or when closing a tab.
Appreciate the feedback and interest. It’ll be exciting to see how far we can push the browser-based experience while keeping it lightweight and accessible.
We have a UI indicator with text indicating whats happening. I haven’t been able to reproduce the issue on my end, but given the experimental nature of the project and its current POC status, I’m sure there are cases where things can get stuck or fail unexpectedly.
Would you be open to sharing a few more details? Things like:
Browser and version
Device/OS
A screenshot of where it gets stuck
Any errors from the browser console, if available
If you could open an issue with those details, it would help a lot in tracking down the problem and improving the loading experience: