Guides written after doing the thing, not before. Each one is the whole process — including what went wrong and why the fix works.
12 guides
Domain, server, database, TLS, backups and deploys — from nothing to live.
4 Sep 2026Ubuntu · Nginx · Node · Postgres
Security headers, scanner noise, Cloudflare's cache, a real restore, a second app — and whether 1 GB is still enough.
13 Sep 2026Nginx · Postgres · systemd · Cloudflare
A full tour of the stack — the API, the database, the services, and the words for all of it.
9 Sep 2026TypeScript · React · Fastify · Postgres
A data model that outlives the plan, OCR on the phone, an offline queue — and the bugs worth learning from.
13 Sep 2026React · Fastify · Prisma · Tesseract
Linear tickets become Claude Code PRs on my own Mac, each repo has its own rule for how far an agent may go, and the chain of tickets I switched off after a day.
15 Sep 2026Linear · Cyrus · Claude Code · Cloudflare Tunnel
A badminton night on one phone — a session saved whole with a version number, a shuffle that lives in the browser, and a clock that is never ticked.
16 Sep 2026React · Fastify · Postgres · IndexedDB
One app held a third of the server's memory for no reason — built, capped and measured, three apps now fit with half the RAM spare.
19 Sep 2026Node · esbuild · systemd · launchd
Blocked SMTP ports, a sending domain in four DNS records, and why the password reset is a six-digit code instead of a link.
20 Sep 2026Brevo · Cloudflare DNS · Fastify · Prisma
Measured faults, three design directions, a screen-by-screen move to Tailwind and shadcn/ui, and an accent picker that stays readable in any colour.
21 Sep 2026React · Tailwind v4 · shadcn/ui · OKLCH
What lifting with it broke and how each fix was proven: a redesign by parallel agents, lost weights, a clock that lied, and fifteen bugs in one morning.
25 Sep 2026React · Fastify · Postgres · headless Chrome
A logo traced from a JPEG, a locking taco box, print files and a two-colour website, all made by scripts and all checked by scripts.
25 Sep 2026Python · potrace · PyMuPDF · Next.js
Client questions on a plain link: one shared copy per form, saved on every tap and live on every device. Plus the jsonb key-order bug that saved 46 times a minute.
13 Oct 2026Node · Postgres jsonb · Nginx
the kit
Workflows, Claude Code skills and every trap so far, with placeholders instead of my details.
Point any AI at docs.oyware.com/kit/llms.txt, or clone it from GitHub.