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.