How Nerdspace Got Built (And Broke, Repeatedly)
This domain existed forever before this design did. Before the current black-and-white, kinetic-type look showed up, the site went through a neon terminal phase, then muted colours, then full-on dark, then full-on light — every single one fully built, then torn down again because I had a "better" idea five minutes later. You only ever see the final version. The git history reads like the diary of someone with chronic indecision.
Under the hood: plain old PHP with a MariaDB behind it, no static-site nonsense. Blog posts, project tiles, even the hover colours and the homepage headline — all editable from an admin panel instead of me hand-poking HTML every single time. Sounds obvious now, but it started life as flat, hardcoded markup, right up until the third or fourth "let me just quickly change this text" moment made it very clear: nope, not like this.
The nastiest bug had nothing to do with design. The swipe gesture for the blog panel just… didn't work — and specifically not for anyone on a touchscreen, which is to say, a lot of people. Took three separate attempts to actually kill it. Attempt one: wrong element had the listener, fixed that, still broken. Attempt two: blamed the nav bar for blocking everything, also wrong. Turns out touch-only listeners simply don't fire when you're testing with a mouse pretending to be a finger. The actual fix was almost insultingly simple — switch everything over to Pointer Events, which treat mouse, touch and pen the same way — but getting there meant chasing two wrong leads first, like a dog that can't find the ball because it threw the thing itself.
The headline picked its own fight too. It's supposed to wrap into exactly three balanced lines on every screen size, from a phone to an ultrawide monitor. Problem: font size, max-width and letter-spacing all quietly pull the line count in different directions, so fixing it for one width breaks it two sizes later. Whack-a-mole, except the mole is CSS and it has unlimited lives. It only actually held once I measured line counts across the entire width range instead of eyeballing one breakpoint and calling it a day.
None of this got built by me staring at a screen typing every line myself. An AI agent did a solid chunk of the actual implementation — read the existing code, proposed the fix, wired it up — while I mostly steered direction, shot down the wrong theories, and decided when something was actually, genuinely done. The real trick wasn't the AI writing code, it was refusing to trust any change until it was actually verified — real clicks through the swipe gesture, real screenshots at every breakpoint, not just "should work now, probably." Treated as a tool instead of an oracle, it earns its keep and saves a stupid amount of time.
This was post one. More are coming — usually written right after something has exploded in an interesting way.