~/blog $ cat rebuilding-farcas-me-again.md

Rebuilding farcas.me (again)

Every developer has a ritual. Some meditate. Some train for marathons. I rebuild my personal website from scratch and pretend it was a strictly necessary architectural decision.

The first version of farcas.me was a create-react-app from 2017 — React 15, webpack 3, and a node-sass-chokidar watcher held together with npm-run-all and blind optimism. It had a little terminal that could run cowsay and pull cat pictures from Reddit. Honestly? It was great.

Then nine years happened. Reddit locked the doors on its public API. React 15 is old enough to be in fourth grade. And the whole thing rendered nothing on the server, which meant search engines showed up, saw an empty <div id="root"></div>, and politely left.

What changed in the rewrite

This version runs on Next.js with the App Router and React 19, with zero UI component libraries and hand-rolled CSS. Everything meaningful renders on the server: the blog is static HTML at build time, the pages stream cleanly, and the interactive toys hydrate on top like a party trick that doesn't block the doorway.

The design brief I gave myself was one sentence: a '90s Unix and DOS machine that somehow ships with 2026 web performance. So:

  • A childhood PC on the homepage: the beige CRT monitor, green Siemens Nixdorf case, floppy drawer, CD player, and a boot sequence that decodes an ASCII logo once per session (and gets out of the way immediately if you have prefers-reduced-motion turned on — nostalgia shouldn't make anyone dizzy)
  • CRT scanlines and phosphor themes: classic green, warm amber, and a paper mode for the heretics who print their emails
  • A terminal that actually does things: type pong or tetris to play inside the monitor, win to boot a tiny Windows 95 desktop with Minesweeper and Pinball, sl to send a steam locomotive across your screen, or rm -rf / to do exactly what you fear, briefly

What stayed

The terminal. The cowsay. The no command, which prints "Nope." and has never once failed to deliver business value.

Some things are load-bearing.

What's next

A personal website without adult supervision is a dangerous thing. Give it a few months and it will probably grow a bread calculator, a 1999 Romanian winter RPG, a backyard observatory, or a music room.

And statistically? A fourth rewrite, somewhere around 2031. See you then.

$ git commit -m "final rewrite, for real this time"
[master 2.0.0] final rewrite, for real this time
$ █

— EOF —

cd .. →