Hello World — Building havingfun.dev

May 5, 20263 min read
metanextjsdeveloper-tools

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.dev domain
  • 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.