Notes

Rebuilding a personal site around working software

A static portfolio can stay simple while giving interactive demos and terminal projects the space they need.

A personal site does not need to become another application backend. Most of what I want to publish is already static: writing, screenshots, short recordings, and links to source code. The interactive projects can keep their own release cycles.

That leads to a small publishing model:

Why the projects stay separate

Copying every project build into the personal-site repository would couple unrelated releases. A change to a note should not rebuild a browser experiment, and a new Freeform release should not require touching the portfolio.

The home page is therefore a curated index. It owns the description and visual presentation, while each project remains the source of truth for its code, documentation, releases, and verification evidence.

Local-first demos

Freeform is a useful example of what static hosting can still do. The published board is a template. On first load, the browser creates a local workspace from that template. Later edits are stored in IndexedDB and remain isolated to that browser profile.

There is no account system and no shared database. Visitors can experiment freely without changing the public template or another visitor’s canvas. Export and import provide the explicit portability boundary.

What belongs on the site

Not every repository needs a live web interface. A terminal product is better represented by its actual terminal UI, a concise explanation, and a direct installation path. The goal is evidence of the software, not a web-shaped imitation of it.