The obvious way to build a site builder is to store content in a database and render it at request time. We tried that first.

The problem with the obvious way

Export becomes a lie. You can hand someone a data dump and call it portability, but they cannot open it in a browser, and moving it anywhere requires a developer. That is lock-in with extra steps.

What we do instead

Every published site is static files. Export downloads exactly what is being served, and it works when you double-click it. Hosting is cheaper, pages load faster on a patchy connection, and there is no runtime to be breached.

The cost is that some dynamic features are harder. We think that trade is the right way round.