Making the portfolio editable
Why the copy on this site lives in a database instead of in the source.
The first version of this site had all the copy in the components. Changing a project description meant opening an editor and pushing a deploy, which is enough friction that I just did not do it.
What changed
Projects, case studies, the stack, services, notes and every heading are rows now. The components read from one query layer and do not know where the values came from.
What it cost
Two things got harder. Content can be wrong at runtime instead of at build time, so every read has a fallback. And a case study is structured data rather than free text, which means I cannot paste HTML into it. That is annoying about once a month and worth it the rest of the time.
The part I would keep
It still renders with no database at all. If DATABASE_URL is empty it falls back to the seed content and turns editing off, which meant I could deploy it before I had a database provisioned.
