Creează un cont pentru a te abona la acest blog și a-i urmări articolele pe pagina Lectură.
-
I've shipped my first iOS app!
-
My notes live in Obsidian.
-
Every few years I get the itch to redesign this site, and every time I do it the content is the boring bit.
-
Released shotframe, a little CLI for the job I'd been doing by hand for every iPhone app: turning raw simulator captures into App Store screenshots.
-
Put together zed-ios-app-starter, a template for native iOS apps and the fourth member of the Zed Stack.
-
If you go looking for advice on how to write a CLAUDE.md file, you'll find plenty of it.
-
The site search I built last month is now a package: astro-d1-search is an Astro integration that adds full-text search backed by Cloudflare D1 to any Astro site running on the Cloudflare adapter.
-
A couple of weeks ago I wrote about building site search with Astro and Cloudflare D1: an FTS5 index built at deploy time, a /api/search endpoint, bm25 ranking with a recency boost, and a Raycast extension on top.
-
Otter now has a proper native iOS app, written in SwiftUI.
-
For a while, the search on this site was a bit of an odd duck.
-
This site now has proper full-text search at /search, with no Algolia and no third-party service.
-
I don't know about you, but every time a long URL blows out a layout, I do the same dance: type word- or break, stare at the autocomplete, and pick one of word-wrap, word-break or overflow-wrap more or less at random until the overflow goes away.
-
A batch of new experiments on lab.zander.wtf: a keyboard-only navigation demo, a clock quiz for practising telling the time (with relative-time questions), and a procedural page, an endless one that builds itself as you scroll.
-
Added a Radarr-compatible Letterboxd watchlist endpoint to my-api-tools, my growing collection of personal APIs running on a Cloudflare Worker.
-
I just wrote about the ecosystem of apps around Otter, and it turns out I've done the same thing to ZUI, my CSS-first UI library.
-
Otter is my self-hosted bookmarking app and media tracker, and it's the side project I actually use: many times a day, every day.
-
Put together zed-astro-starter, an opinionated Astro starter ready to deploy to Cloudflare Workers.
-
In my zero-to-one stack post I ended with an admission: the one part of shipping side projects I hadn't cracked was the boring ceremony between "I've just had an idea" and "something is actually being built".
-
I've been building ZUI, my CSS-first UI library, for a while now.
-
I build a lot of side projects.
-
Launched fonts.zander.wtf, a hand-picked catalogue of free, high-quality typefaces.
-
Released react-status-bar v1.0.0, a lightweight, portal-based status bar system for React.
-
Built spotify-fave-artists to answer a question Spotify gets wrong: who are my actual favourite artists and albums?
-
Added a projects section to the site: side-projects, packages and other things I've made or am making.
-
I've been using lazygit a lot recently and since hunk was released, I wanted to use it within lazygit.
-
Set up agent-skills to manage the various AI agent skills I use, shared across Claude Code, Amp and Codex.
-
Built Reps, a daily JavaScript puzzle for your coding muscles.
-
Otter shipped otter-web-v1.1.0.
-
Spun up lab.zander.wtf, a home for experiments, little tools and demos.
-
Put together zed-stack-starter, a modern full-stack React starter so I can stop reassembling the same pieces every time I start something new.
-
Otter reached its otter-web-v1.0.0 milestone.
-
Made uk-primary-school-maths, a little learning site to explore key maths concepts year by year.
-
I started ZUI (Zooey), a CSS-first UI library with optional React, Astro, Solid, Svelte and Vue components.
-
Back in 2023 I built a Cloudflare Workers page scraper. xtractr is the proper, grown-up version of that idea: extract clean, structured content from web pages with automatic short-link expansion and lightweight page-type detection.
-
Released strifx, like clsx but for strings. clsx is perfect for conditionally composing classNames, but I kept wanting the same ergonomics for any string, not just classes.
-
I've been using Zed more and more, and one thing I really missed from VS Code was being able to wrap a selection in a snippet.
-
Built vite-plugin-atlas, a convention-driven component documentation plugin for Vite + React.
-
I'm constantly evaluating AI agents.
-
Published url-merge, a zero-dependency URL path joiner.
-
I finally pulled my code notes into this site.
-
I started my-api-tools, a growing collection of small APIs for my personal projects.
-
I finally added a /now page to this site.
-
I have been tweaking the styles on the site.
-
I built a Raycast extension for Otter a long time ago.
-
After the craziness where a Netlify customer was charged $104K because of a DDoS attack, I decided to move my personal site and as many web things to Cloudflare.
-
Bookmark feed items in Otter already show the tags associated with that item, but now I added matching collections to them as well.
-
When adding or editing a bookmark, Otter checks the contents of the title, description and note fields to see if they match existing tags.
-
I updated Otter's PostgreSQL database to version 15 through the Supabase dashboard.
-
Added collections to Otter.
-
I finally added Opengraph images to this site today.