Developers Log, July 2026

Nine websites I built, rebuilt, or improved in July 2026.

Nine websites I built, rebuilt, or improved in July 2026.
I wrote a lot of code in July. Some of it was for brand-new websites, and some of it was for old projects that I wanted to make useful again.
The biggest change to croc was a brand-new browser client. You can now open getcroc.com and send or receive files with a normal croc command-line client without installing anything. I compiled the security-sensitive parts of the croc protocol into WebAssembly, put a WebSocket bridge into the same Go binary, and added transfer progress, speed, ETA, multiple files, and QR codes. I also added an optional mode that encrypts a transfer in the browser, stores only ciphertext for up to 24 hours, and deletes it after the first verified download, an homage to the old Firefox Send.
I am working on a new Eurorack modular device, called Ouroboros. I worked across the entire Ouroboros stack, but much of that work ended up in samplingsequencer.com.
So far, it seems to be becoming a proper product website and a browser Manager for the Eurorack module: it can build five musical scenes with either generated voice leading or a written sequencing language, preview them, tune them, shape the arpeggiator and effects, assign CV, and send everything to the hardware over WebSerial. I also added the guide, interactive musical examples, browser firmware flashing, diagnostic audio downloads, external clock support, and a lot of work on the sampler, looper, and stereo signal path underneath it all.
I love NOAA, but the interface is difficult.
So I built wthrtxt.com from scratch, first as a static weather page and then as a Go weather server.
wthrtxt.com uses NOAA forecasts and observations in the United States and Open-Meteo everywhere else, with worldwide place search, current conditions, hourly rain, a seven-day forecast, metric units, and historical temperature averages. It also has a trick I especially like: visit it in a browser and you get the clean graphical forecast but you can also get the same in the command-line by curling:
curl https://wthrtxt.com
I updated cowyo.com to version 3 and gave the whole site a modern redesign.
Cowyo is still the same extremely small idea: open a URL, type into a shared scratchpad, and let it save automatically….but it now has a dedicated landing page, live collaborator cursors, memorable page names, better mobile behavior, and a cleaner API. I also modernized the Go project structure and its SQLite/PostgreSQL storage while keeping client-side encryption, page locks, publishing, self-destructing pages, and the plain-text curl interface. (Everything needs a curl interface imho).
I rebuilt makemydrivefun.com as a modern road-trip planner. You can enter and reorder multiple stops, share the resulting route, and find odd museums, giant objects, historical markers, public art, and other worthwhile detours within five miles of the drive. I moved the catalog of more than 89,000 attractions behind a small Go server so the browser no longer has to download it, added new ingestion pipelines and the Clio catalog, and finished with curated routes and a small road-notes blog.
I made makestopmotion.com, a free, hands-free stop-motion studio that runs entirely in the browser.
You put a hand into the camera view to adjust the scene, then move it away and the next frame is taken automatically. Hand detection runs locally, the frames stay in IndexedDB, and nothing is uploaded; projects can be reordered, previewed, and exported as WebM video. I added three interchangeable hand detectors and, at the very end of the month, the tiny but important shutter sound.
I tightened up how yesnotice.com researches yes-or-no questions and verifies that an answer has really changed before sending an email. I added manual rechecks, much better handling for exact dates and vague availability windows, full notes in the check history, and a compact card-based dashboard that works better on phones. I also simplified the schedule to daily checks, improved the site’s metadata, and moved deployment to Disco.
I turned an old calling script into calledd.com, a service for getting through the opening phone menus for California EDD Paid Family Leave. It calls EDD through Twilio, listens to the menu, retries when the lines are congested, and calls the user when claimant intake is ready. I built the Django customer portal around it with email verification, a live status dashboard, cancellation, private support messages, privacy controls, public guides, and a completely new visual identity.
While improving page-load latency for calledd and yesnotice, I found LLMs to be surprisingly unhelpful. They kept suggesting elaborate caching schemes and a huge Redis layer over everything. The real problem was much simpler: my apps were running on a Hetzner server far away from the PlanetScale PostgreSQL database, so every page was paying for a pile of long network round trips. I moved the database closer to the server and the pages became fast. Redis still has its uses, but it was not the solution to this problem; geography was.
I rebuilt pianos.pub as a modern Next.js and PostgreSQL community map for finding public pianos around the world. I imported the legacy catalog—10,305 pianos and more than 31,000 community sightings—then added place search, world and location views, recent and random discoveries, availability reports, and a much better submission flow with map-based geolocation, photos, and CAPTCHA. I also built admin tools, social cards, more complete SEO and sitemaps, and a field-notes blog about finding, adding, and taking care of public pianos.
One reason I was able to ship so much this month was Disco. It has been incredibly useful for deploying all of these websites: I can connect a repository and a server, push my code, and let Disco handle the build, SSL, service swapover, configuration, and logs. Removing all that deployment friction has made my development workflow feel about five times faster than usual.