Skip to content

Things I've Built and Kept Around

A selection, not an inventory. Some of these are recent, some are from years ago and archived, some are very small. They're here because each one says something about what I've worked on.

Most of these exist because something was broken, repetitive, or frustrating, and I needed a way to deal with it. None of them were built as products or startups.

They're grouped by the kind of work they came out of rather than by how new or popular they are. A few are archived and I've left them here anyway - they're the clearest record I have of where I came from.

I don't maintain everything at the same pace, and I don't offer guaranteed support or timelines. Pauses and limited capacity are part of keeping this sustainable.

Inside the Editor

Most of what I've built lives in VS Code. These are the ones worth pointing at.

  • Weave Context

    Markdown notes that behave like code. Wikilinks become real editor symbols, so Go to Definition, Find References and Rename work across your documentation instead of stopping at the file boundary. There's a desktop dashboard for looking at a repository as a graph, and CodeContext+, which pulls the same notes up next to the line of code they explain. This is what I've been thinking about most lately.

  • JSON Flow

    Turns a JSON file into a graph you can pan around. I built it because I kept opening config files that were too nested to read from top to bottom.

  • Auto Barrel

    Creates and updates barrel files so you don't have to. Someone else started it and I picked it up, which mostly means resisting the urge to redesign it for people who were already happy with it.

  • T3 Stack / Next.js File Generator

    Scaffolds files for Next.js and T3 Stack projects - NextAuth, Prisma, tRPC. It exists because a new router shouldn't start by copying an old one.

  • NestJS Tooling

    Nine extensions for NestJS: a file generator built on the CLI, a snippets library, an extension pack, and snippets for Swagger, Prisma, TypeORM, Mongoose, MikroORM and Sequelize. They grew one at a time out of real NestJS work.

  • Angular File Generator

    Generates Angular files from the editor using the same schematics as the CLI, for the times you'd rather not leave the file tree.

  • CodeLog+

    Inserts, removes and highlights log statements across languages. CodeMark+ is its sibling, for TODO and FIXME comments. Small problems, but I run into them every day.

  • Tooling for Extension Authors

    A starter kit for writing VS Code extensions, plus the pieces I needed around it: a library for querying the Marketplace, a CLI for installing extensions from npm, and a browser extension that adds a one-click VSIX download. Publish enough extensions and the tooling around publishing becomes its own project.

On Linux

Newer ground for me: Debian, defaults, and deciding what actually belongs on a machine.

  • Amonite

    A Debian-derived distribution built around one question: why should this exist by default? Every package and setting has to earn its place and still make sense thirty days in, not just on the day you install it. Its documentation lives in a separate vault of Markdown notes, which is my own wikilink habit turned into the project handbook.

  • Amonite Mobile

    The same idea pointed at a phone: a Debian image for arm64 devices with a touchscreen desktop and Android apps through Waydroid. Devices are described in files rather than patched into the image, so adding one is a new descriptor and not a new build. It boots in an emulator and hasn't been near real hardware yet, which the README says before anything else.

  • Cedra

    A GTK app for Debian workstations. APT tells you which package to install; Cedra deals with what the machine should actually do with it - Git defaults, browser policies, desktop handlers, fonts - and shows you the changes before applying them.

The PHP Years

Where I started. PHP, Moodle, and frameworks that never got much tooling.

  • CodeIgniter 4 Tooling

    Commands and snippets for CodeIgniter 4, plus boilerplates pairing it with Blade, Twig and Mustache, and a smaller set for KumbiaPHP. Neither framework gets much editor tooling, which is most of why I wrote it.

  • Moodle Pack

    Snippets and commands for Moodle plugin development, across PHP, XML and Mustache. A lot of my early work was Moodle work, and it's a corner of the ecosystem with very few tools in it.

  • REST API with Slim

    A REST API on Slim 3 and MySQL, from 2017. It's archived now, but it got forked plenty, which suggests people used it the way I hoped: as something to read before writing their own.

  • Simple Social Network

    A small social network in PHP, MySQL, Bootstrap 3 and Vue 2. Very much of its time, and archived, but it's the clearest record I have of what I was building before any of the tooling work started.

When Windows Broke

Years of IT support left me with scripts for the days something is badly broken.

  • Reset Windows Update Tool

    Repairs Windows Update when it breaks and the usual advice doesn't help. It started as a batch script in 2017 and turned into a small suite with its own site and documentation. This repository is archived; the scripts and the site carry on under their own organisation. It's still the most-used thing I've made.

  • Uninstall Office 2016

    Removes an Office install when the official uninstaller gives up. Written during years of IT support, for the specific afternoon where nothing else works.

Odds and Ends

Things that don't group with anything else.

  • nspin

    A terminal spinner with no dependencies, built on what Node already gives you. There are ESM and Bun ports as well. It's a tiny thing, but writing one properly is a good exercise in not reaching for a package.

  • Git and GitHub Workshop

    Materials from a Git and GitHub workshop I ran for the Paradigma Indie community, in Spanish, with a video playlist alongside it. Not software, but it's some of the open source work I'm most glad I did.

Plenty is missing on purpose. There are around fifty VS Code extensions published over the years - more snippets, extension packs, generators for other stacks - along with older utilities and experiments. They're all still there, they just don't each need a paragraph.

The rest of it lives on GitHub →