Examples Templates Store Pricing Docs Turbo CSS Blog Introducing Turbo UI Named buckets Turbo CSS is Tailwind CSS on steroids Introducing Turbo CSS, the most advanced web-design language Calculate how much storage you use Better login system Collaboration settings Filesystem and Database are not cutting the problem space right What I'm working on 64bit File node IDs New how-to videos Creating buttons gets easier Introducing reusable components HTTPS by default Introducing the Boomla Theme CDN for faster pageloads Write your own website builder on top of Boomla On On composition Shared admin access A fresh config editor Building a multi-purpose theme A filesystem to replace your CMS New file link type: scope Mobile editing support Inline file wrapping changed Package sandboxing New PHP-like JavaScript engine [sjs-4e] Send emails to the website owner New JavaScript engine [sjs-4] A better editing experience New email service provider Glossary and other changes New panel changes Improved registration flow Boomla goes multiplayer Using local dev tools Why Boomla doesn't need Git File Panel Let's build a community Automatic updates Improved sjs-3 API New Frontend CSS modules Work offline with Boomla Faster page loads via caching Drag & drop supercharged Supporting CommonJS modulesĀ  Paranoid about loosing data IDE usability improvements Simple App install flow Meetups in Budapest Goodbye broken links Flow control from user space Customizing apps Contextmenu support for apps Deprecating the .Class file Hello Changelog Embedding 3rd party plugins Introducing Tools Installing apps just got amazing Public beta Host on our servers Simple deploy with push/pull Version Control for the Web 350M files on a 1TB disk 2 weeks in review
Control Panel

Write your own website builder on top of Boomla


Boomla is 2 products:

  • the Boomla OS, and

  • the Boomla website builder built on top of it.

The Boomla OS is an application platform and hosting infrastructure. The idea is to provide a much simpler web development experience by eliminating problem spaces which the web accidentally inherited from desktop operating systems. For example: the non-transactional filesystem, users, package management, horizontal scalability.

Every OS needs a killer app to take off. The Boomla website builder is the first and most versatile application built on top of the Boomla OS.

In the beginning, the two were tightly integrated. In fact, there was only the website builder in the beginning. It dawned on me slowly that the underlying platform could be used for way more than being a website builder. They started to drift apart long ago, one step at a time. Now we have reached a new milestone.

The frontend toolchain (the toolbar, contextmenu, file uploader, etc.) are being moved out of the Boomla OS into user space. (User space is code that was written on top of the Boomla OS, so any 3rd party developer could have written it.)

Originally, the frontend toolchain was always injected into HMTL responses. It seemed to be a good idea at the time, to provide some central functionality, like login, undo/redo, etc. That's because I envisioned that every person, company and cause will have a website and applications will be installed on top of these websites. Wrong. But mostly, it slowed down progress. We could not iterate fast enough on the editor because it was injected into every website as part of the frontend toolchain. We could not make backward incompatible changes. We couldn't start from scratch and just release a new version. What a horrible mistake.

Now my focus is on making the website builder great, yet the existing setup prevented me from making the frontend toolchain truly great for that specific purpose. Now that they are separated, I can introduce breaking changes that won't affect all the other websites.

As a side-effect, this opens up two interesting opportunities. If you are a developer, now you can write your own frontend toolchain (website editor). Or, you could write a totally different web app with whatever tooling it needs.

See Filesystem interface versions in the docs. Please find me if you need some help giving it a try.


you can follow me on Twitter