ihoshyn.com Writing
EN / УКР

2026-08-24 · 2 min #laravel #livewire #php

Rebuilding this site after seven years

Read in Українська

The previous version of this site was a single Blade file with inline CSS, a Gravatar and a list of links. It was written in 2019, deployed once, and then left alone for seven years. It did its job: someone searching my name found a page that said what I do.

It stopped doing that job well. The stack list ended at Laravel 6. The layout assumed a desktop. And the page said nothing about how I actually work.

What replaced it

The same idea, built properly:

  • PHP 8.5 and Laravel 13, because I would rather run the version I recommend to other people.
  • Livewire 4 for the pages, with wire:navigate handling transitions. The only genuinely stateful screen is the writing index, where search and tag filters live in the URL so a filtered view stays linkable.
  • Tailwind 4 with CSS-first configuration. No tailwind.config.js at all — the tokens are @theme variables in one stylesheet.
  • No database. Posts are markdown files in the repository, the résumé is a PHP array, and both are parsed once and cached under a key derived from the file's modification time. There is nothing to back up, nothing to migrate, and no query on the critical path.

Why the files, not a CMS

An admin panel for a site with one author is a lot of moving parts to protect and maintain for the privilege of writing in a browser textarea. Content in the repository means the editor I already use, review through diffs, and a deploy that is just a push.

The trade-off is real: no editing from a phone. For a site that publishes a handful of posts a year, that is not the constraint worth optimising against.

Both languages

Every page is served under /en and /uk. Posts exist in whichever languages they were written in — this one is in both — and a missing translation falls back to an available language with a notice instead of a 404. The display face had to change during the rebuild because the one I originally picked, Archivo, ships no Cyrillic on Google Fonts; every Ukrainian heading would have quietly fallen back to a system sans.

The whole thing is on GitHub.

More