The day a brand wants to leave, it discovers what it truly owned. Before that day, the difference between owning and renting does not show: the site loads, the back office responds, all is well. It gets paid in one go, at the exact moment when nobody has the time any more.

The rent that appears on no invoice

A site built on a closed platform is not yours. You occupy a spot. The day the price goes up, the platform changes its rules, removes a feature or shuts down, you take nothing usable with you. Your pages live in a format nobody else knows how to read, and the export, when there is one, returns a tag soup that has to be retyped.

Migrating means rebuilding everything. The quote for the migration looks like the quote for the original site, except that you pay it a second time, without the budget that went with it.

A closed platform gets more expensive to leave the better you use it: every article published, every setting patiently worked out raises the exit cost.

The domain first, and nothing before it

The domain name is the only asset you truly own. Everything should hang off it: the site, the email, the identity. A domain of your own, at a neutral registrar, and the rest can move without breaking anything.

The domain and what hangs off it, against the same setup on a rented spot Two diagrams side by side, built the same way. In each one, three small boxes in a row read « the site », « the email » and « the identity » ; a line leaves the bottom of each, joins them and drops as an arrow into a wider box below. On the left, that wider box is drawn in the accent colour and reads « the domain name » ; a solid arrow leaves it downwards, with « the rest can move » written under it. On the right, the wider box reads « a spot » ; the line leaving it is dashed and cut clean by two oblique strokes, with « you take nothing with you » written under it. A DOMAIN OF YOUR OWN A CLOSED PLATFORM the site the email the identity the domain name the rest can move the site the email the identity a spot you take nothing with you
The same three attachments on both sides: what changes is what they hang off.

It is the first decision in a project, and the one that gets rushed through the fastest, probably because it costs a few euros a year and looks like nothing at all.

Files, not a captive database

The content of this site lives in text files. Each note in the journal is a Markdown file in src/content/journal/, whose file name makes the URL, with no intermediate field and no identifier to track down. Astro compiles everything to static HTML.

There is no database, so there is nothing to export: the git repository is the content. With, as a bonus, the history of every sentence. I can say which day a phrase changed and what it said before.

Changing host comes down to pointing a domain elsewhere and running a build again. The backup is the normal way of working: any copy of the repository is a complete site.

Nothing is held prisoner, not even by me: this site runs to 242 pages, in 2 languages, from files that all fit in one folder you can read with a text editor.

The same site taken away as text files, then in a closed format Two page rectangles of identical size, side by side. Each holds three horizontal bands at the same heights. On the left, the three bands are drawn in the accent colour and named: « Markdown », « static HTML », « git repository » ; under the rectangle, two caption lines, « text files » and « hostable anywhere ». On the right, the three bands have the same shape but a dashed outline, and instead of a name they carry only a line of short dashes ; under the rectangle, the caption « a format nobody else knows how to read ». NOTHING IS HELD PRISONER MIGRATING MEANS REBUILDING EVERYTHING Markdown static HTML git repository text files hostable anywhere a format nobody else knows how to read
Same content, same scale: the format alone decides what you can take away.

Picking the site up without phoning me

A client who depends on their developer is no better off than a client who depends on a platform. They have changed landlord, that is all.

A site in Astro, Markdown and git can be picked up by any front-end developer, with nothing to guess: the decisions can be read in the commits, the project rules are written in a file at the root. So the question to ask about a contractor is « what happens if they are no longer there ».

It is also why editing goes through Sveltia, an existing CMS, and not through a home-grown tool. A home-grown tool would have made me indispensable. Very pleasant for me, very bad for the client, and perfectly invisible as long as all is well.

What leaving really costs

Renting stays more comfortable at the start: you are up and running in an afternoon, with no technical decision. For testing an idea, it is often the right choice.

The cost does not appear at the outset. It appears on the way out, and it lands at the worst possible moment, since you only look to leave when something is no longer working. Owning, by contrast, takes one technical choice made at the right moment, and that choice costs almost nothing on the first day.

If this site left Netlify tomorrow, everything would leave with the repository except three things, to be rebuilt: the contact form, the admin’s authentication relay (netlify/functions/oauth.mjs, 169 lines) and the HTTP headers in netlify.toml.