$ tail -f activity.log

40.

Entries logged

A running log of what I build and write. Entries tied to a project link straight to it; hover one to see its siblings light up.

last push Aug 05

Aug 05

Custom hero for Crowd Legal

The page opens with the brand's white wordmark over the dotted photo panel from crowd.legal, Sora type and the stats row: 124K+ laws, 80+ AI tools.

Aug 05

Generation cards linked by energy traces

Projects with several generations now spread one card per rebuild across the portfolio grid, each in its year; hovering one draws circuit-style energy traces through the grid gutters to its siblings.

Aug 05

Glass preview card for testpolitica

The nine-axis radar preview now sits on translucent glass with a blur, so the dream-room scene shows through the paper.

Aug 04

Covers and banners for the Laravel packages

All fourteen Laravel package pages now open with a shared cover and each package's own banner art, pulled from its repository.

Aug 03

Custom hero for testpolitica

The project page now opens with the site's own editorial idiom: Fraunces with the brick italic, the query composer, and a nine-axis radar preview on a paper card.

Aug 02

GDPR cookie consent in Laravel with Wirecookies

article
Aug 01

Localized routes in Laravel with Laralang

article
Aug 01

Collecting user feedback in Laravel with Wirebug

article
Aug 01

The same operation ends up in three places, and none of them agree

article
Aug 01

Laravel makes you choose between readable templates and stable translation keys

article
Aug 01

Model observers are the wrong home for derived fields

article
Aug 01

A coding agent is a generalist, and your codebase is not general

article
Aug 01

Translating a Laravel app is two problems, and only one of them is about words

article
Aug 01

The tags table is simple until the fourth requirement arrives

article
Aug 01

Permissions are rarely a global yes or no

article
Jul 31

Reversible PII anonymization for Laravel with Laranon

article
Jul 31

Web scraping in Laravel with Larascraper

article
Jul 31

A consent banner that tracks you is a strange thing to have shipped

article
Jul 31

The denormalized search column is easy. Keeping it true is the hard part

article
Jul 31

The context you need to reproduce a bug is already in the reporter's browser

article
Jul 31

A modal is an async question, so it should be awaitable

article
Jul 31

Redacting PII before it reaches an LLM breaks the answer you wanted

article
Jul 31

Your booking widget is where your leads leave your database

article
Jul 31

Every notification library ships a design system you did not ask for

article
Jul 31

Scraping in PHP splits into two toolchains, and the seam is where the bugs live

article
Jul 27

Using Claude to decrypt Carmageddon

article
Apr 30

SysMaster: The Webmaster Evolution

article
Apr 25

How Neurodivergent Minds Think in Systems

article
Apr 23

Why Collective Claims Need AI-Native Infrastructure, Not More Spreadsheets

article
Apr 17

How I Built a Popular Website 6 Years Ago That’s Worth a Small Fraction Today

article
Apr 12

Built a Schema.org Generator for a Country of 93k People

article
Apr 12

Researching Industries in a Country of 93k People Before Writing a Single Line of Code

article
Jan 18

Stop Building Features: Start Building Patterns

article
Jan 09

How We Turned Collective Chaos into Organized Action

article
Jan 09

ARC: Why The Teams Winning With AI Aren’t Using Better AI

article
Jan 08

ARC: A Methodology for Abstract Thinkers

article
Aug 27

I finally have a website

article
Jan 01

Moved Blenderdeval onto Drupal

Search traffic and settings the client could change without a developer, which is where the custom CMS of 2009 finally came out.

Jan 01

Rebuilt Blenderdeval as a Flash and Ajax hybrid

They asked for a site built entirely in Flash. I judged Flash was already on the way out and kept it to the animations, with the rest as ordinary web.

Jan 01

Built the first Blenderdeval website on a CMS of my own

Plain PHP, no framework underneath: catalogue, orders, articles and editable texts, with an admin written from scratch for this one site.