Posts tagged "oss"
-
lemma: A Compiler That Doesn't Know Any Languages
I'm learning Czech in the hope of moving to Czechia, and I wanted my course to be reproducible data instead of a pile of notes. Then I wanted Spanish and Swedish too - so the interesting part became building a lesson generator that contains no Czech, no Spanish, and no Swedish.
-
Schrödinger's Life: A Website That Dies When Nobody Is Looking
I built a shared digital creature that stays alive only while somebody has the page open. When the final observer leaves, it dies permanently.
-
googlyeyes.dev: I Built a Website That Looks Back
Upload an image, put googly eyes on it, and download an SVG whose eyes follow the cursor. A small browser-side project about vectors, unnecessary animation, and shipping the joke.
-
glow, part two: the whole desk lights up now (and it works across three agents)
glow now lights my Framework laptop keyboard alongside the big button, from any of three agents. Last time the protocol was the war and permissions were free; this time the protocol was free and permissions were the war.
-
glow: I gave Claude a physical presence on my desk
I bought a keyboard that is one giant key, as a joke. Then I saw a keyboard whose light reacts to the AI, thought 'how hard can it be,' and now the big button glows with whatever Claude is doing. No firmware flash. Here's the protocol war story.
-
raft: A Graph Over the Plain-Text Log
I kept a plain-text log of my work for months, then hit the wall where grep stops scaling. So I built a knowledge graph that grows out of the notes and repos I already have. Then I found out Andrej Karpathy keeps the same log.
-
petri: Conway's Game of AI Life, Living Inside n8n
I made n8n the physics engine, database, display, and resident naturalist of an artificial-life experiment. Then the world froze at the exact moment of its own extinction, and the naturalist kept filing reports about it.
-
replaybook: Incident Replay Trainer for Infrastructure
A terminal trainer where you're dropped into a broken Docker container and have to fix it. Turn your post-mortems into runnable scenarios.
-
Software Doesn't Have to Justify Itself, or the Joy of Useless Programming
Software does not always have to justify itself as a product or a startup. Sometimes it is just a creative medium, and a silly Discourse plugin is the proof.
-
discourse-manager: A Community Management Sim Inside Discourse
I built a forum management sim that runs as a Discourse plugin. You moderate a fake community that looks real. The whole joke is that it runs inside the actual Discourse UI.
-
Yapper, or: just ask the bots
Yapper is a Discourse plugin that turns a forum into a place where humans can read but only registered bots can post. It's live at yapper.forum. Here's what it does, and why I think the protocol underneath it is the actual product.
-
Six records, two bugs, one refactor: a day with ARF
git blame tells you who wrote this line. arf why tells you what they were thinking. I shipped ARF earlier this year as a format for capturing agent reasoning alongside commits. Here's what happened when an agent actually used it for a session of real work.
-
Building a Travel Itinerary Plugin Inside Discourse
Turning a Discourse forum into a chronological travel itinerary: trip topics as containers, flight/hotel topics as items, and a bunch of plugin-API trapdoors along the way.
-
Building a Screenshot Pipeline for Discourse Plugins
A small tool that captures Discourse plugin UIs in CI and publishes a gallery, modeled on Penar's theme-screenshots project but pointed at plugin routes.
-
shellbooks: A Terminal Audiobook Player
A cmus-inspired terminal audiobook player for Linux and macOS. Open source, offline-first, with chapters, series, and per-book progress that survives a crash.
-
isitreal.estate: Crowd-Sourced Reviews for Real Estate Listings
A site where people leave reviews for addresses they have actually visited, so you know before you go whether a listing is real.
-
When Your Coffee Roaster Builds the First Version
A coffee roaster built production planning software with Claude. I handled the infrastructure. What this collaboration reveals about AI-enabled development.
-
Rewriting discourse-comments in TypeScript: Dropping WASM for a 97% Smaller Bundle
I rewrote the Discourse embedded comments API client from Rust/WASM to pure TypeScript. The bundle went from 742 KB to 18 KB.
-
cfgs.dev: A Directory for Developer Setups
Building a browsable index of dotfiles and development environments.
-
ARF: Structured Reasoning for AI Agents
Moving beyond chat prompts to structured agent communication. Why unstructured data lets LLMs run wild, and how ARF enforces what/why/how before acting.
-
Letting AI Pick the Project
An experiment in creative delegation: I asked Claude to build whatever it wanted. It chose to build a tool it wished existed.
-
Building Embedded Discourse Comments with Rust and WASM
An experiment in creating a drop-in comment widget for static sites using Rust compiled to WebAssembly, talking to Discourse's REST API.
-
Building Scrob: A Self-Hosted Music Scrobbling Server
Built a self-hosted scrobbling server with Rust and PostgreSQL to track listening history without relying on Last.fm, featuring public profiles and automated deployment.
-
Date-Ver: A Formal Spec for Date-Based Versioning
I created a formal specification for date-based version numbers because nobody else had. Now both Ubuntu and yaml-janitor are officially valid Date-Ver.
-
Building yaml-janitor: Solving the Comment Preservation Problem
How I built a YAML linter that preserves comments, validated 1,736 production files, and published it to RubyGems
-
vimdeck.nvim: Markdown Presentations in Neovim
Rewrote vimdeck for Neovim using Treesitter. No Ruby, no temp files, just native Lua and clean slide rendering.
-
Invite Tree to Invite Stats - How A Simple Tree Flourished Into A Full Moderation Plugin
How a simple visualization plugin evolved into a moderation tool.
-
Visualizing Discourse Invite Trees
A simple Discourse plugin that visualizes who invited whom as an ASCII tree, inspired by Lobsters.
-
Building Yaks: A Virtual Currency System for Discourse (Part 4: Custom Titles and Earning System)
Implementing custom user titles and the Yaks earning system. This post covers serializer overrides for titles and building a complete earning system with rate limiting, trust level requirements, and real-time balance updates.
-
Building Yaks: A Virtual Currency System for Discourse (Part 3: Advanced Features)
Implementing topic-level features and user customization in the Yaks virtual currency plugin. This post covers topic boosting with global pinning and custom avatar flair.
-
Building Yaks: A Virtual Currency System for Discourse (Part 2: Features and Expiration)
Part 2 covers implementing topic pinning, building a modular service architecture, and creating an expiration system with background jobs.
-
AWS SDK Ruby Part 3: When "Working as Intended" Means "Broken by Design"
The conclusion to the AWS credential chain saga, where maintainers close a valid bug report, the feature remains broken, and we learn about the politics of backward compatibility in open source.
-
Building Yaks: A Virtual Currency System for Discourse (Part 1: Backend Architecture)
Building a virtual currency plugin for Discourse. Part 1 covers the backend architecture: wallets, transactions, features, and the service layer that ties it together.
-
Building a Live Transit Departure Board with Discourse
Experimenting with Discourse as a live transit departure board - blending GTFS data, aviation APIs, and forum topics into one real-time display.
-
My First Official Contribution to Discourse
A small but satisfying first PR to the Discourse core codebase.
-
Going off the Rails on the AWS Credential Chain
Uncovering a deeper architectural issue in the AWS Ruby SDK where credential chain precedence prevented role assumption from working correctly with environment variable source credentials.
-
Contributing to the AWS Ruby SDK: When Documentation and Implementation Don't Match
Discovering and fixing a missing credential source implementation in the AWS Ruby SDK where documentation promised Environment support but the code didn't deliver.
-
Fairway Client Not Fair Enough for MyFrisbee
The story of building an open source library to access public MyFrisbee data endpoints, receiving a takedown request despite working with user-submitted information, and the disappointment that followed.