Hello World — Building havingfun.dev
This site started as an empty directory and a simple question: what would a Software Architect's personal website look like if it was actually useful?
Not another portfolio. Not an "About Me" page nobody reads. Something I would actually open every week.
The Vision
A central hub for the things I reach for daily — encoders, formatters, generators, certificate utilities — plus a place to write down what I learn so I do not have to learn it again next time.
The constraint: everything that does not need a server must run in the browser. Privacy first. No telemetry on tools. No data ever leaving the device when it does not have to.
What is Here
- 26 developer tools — Base64, JSON formatter, UUID generator (v4/v6/v7), JWT decoder, regex tester, text diff, QR code with logo embedding, cron builder, SQL formatter, and more. All client-side.
- 12 certificate tools — Decode PEM certs, generate self-signed certificates, validate chains, check live SSL, create PFX files, compare certs side-by-side. Backed by a knowledge base of 8 articles on X.509 and PKI, plus platform guides for Windows, macOS, Linux, .NET, and Docker.
- Admin dashboard — Bookmarks, notes, and page-view analytics behind real OAuth (GitHub + Google, whitelist-based — only my accounts can sign in).
- 75 pages total, all under one domain, all wired into a single sitemap.
The Stack
- Next.js 16 with the App Router
- Tailwind CSS v4 + shadcn/ui
- Turso (SQLite at the edge) with Drizzle ORM for the admin features
- NextAuth v5 for OAuth
- node-forge for browser-side certificate parsing and generation
- Vercel for hosting, deploys, and now the canonical
havingfun.devdomain - Cloudflare as the registrar and DNS
The Domain Hunt
Picking the domain took longer than building half the site. The .com landscape is brutal — almost every short, memorable domain that maps to "ML" is taken. So is "lukac". So is "michal".
After cycling through dozens of permutations, I gave up on initials and asked a different question: what is this site, in two words?
The answer was havingfun.dev. It was available. It is honest — that is what this is. The contrast against the dark, code-aesthetic <ML /> logo at the top makes me smile.
What is Next
This blog is the structure for everything I want to write down — architecture decisions I have lived with long enough to have an opinion about, AI experiments, lessons from shipping side projects, and the occasional certificate war story.
Stay a while. Try a tool. Tell me what is broken.