December 29 - January 4
- macOS Screenshot Uploader
- I rewrote my ~15-year-old screenshot uploader in TypeScript, with lots of enhancements to make it drastically faster. Will write up a little blog post about it. I wanted to release it as a single-file executable, but alas, we can't ship
sharpin Bun yet.
- I rewrote my ~15-year-old screenshot uploader in TypeScript, with lots of enhancements to make it drastically faster. Will write up a little blog post about it. I wanted to release it as a single-file executable, but alas, we can't ship
- The era of single-threaded human productivity is over.
- I wrote an article to discuss my thoughts on programming with AI in 2026. There's a lot to say about the topic, and I was happy to write my thoughts down before things change any further - I want these posts to serve as a time capsule to look back on. I did that a little bit back in 2024 with my GPT-4 shenanigans, but I didn't do anything for 2025, and AI programming changed SO much over the course of the year.
- Cashscape
- I added Meilisearch to help with automatically finding the closest matches for payees, when an exact match can't be found. AI is given a list of options and then make a decision on which one (if any) is the right match.
- Moved ProcessEmail to the background so the email inbox processor can just dispatch separate jobs for every email and drastically speed up processing.
- Less progress on this than I wanted to; I parked it for other priorities.
- XNC Discord Bot
- There's a Discord bot I've maintained for a friendly community for ~5 years, but it was originally built in PHP to explore async PHP (ReactPHP), and every now and then it'd require a complete restart, which was a pain in the butt. I rebuilt in TS with Discordeno, added support for multiple Discord servers, and better handling for users who've left the server. AI is great for these porting projects, I was very impressed. Fun fact: I didn't even know Discordeno existed until this rewrite. It works SO much better than Discord.js (which I've used in other projects). I want something similar for Slack!
- Stealth CodeIgniter-to-Laravel Project
- Rebuilt the server infrastructure from a whole-infra-per-tenant setup to a traditional SaaS infra setup, with a dedicated DB server, Meilisearch, Redis, etc, created a 1000+ line document detailing all the infra setup and configs necessary.
- This also involved exposing /horizon directly via Nginx configs, making it the first route to be served directly from Laravel, skipping CodeIgniter altogether. That's a huge milestone! Next step is exposing real app routes - we have session sharing, so there should be no blockers for that.
- pocketarc.com
- I built devcontainer to test YOLO Claude Code, but decided to park this idea for now. I might end up going with pre-built nixOS images that I spin up in my home lab as VMs, so I can have proper Chromium instances (
claude --chromeideas for the future) and everything from a normal OS. - I added a light/dark mode toggle to the site. I also added JSON-LD metadata to all pages for better SEO.
- I created a
content-drafterskill that combines bookmark, note, and devlog drafting into one reusable package. Started with three separate agents but realized that packaging them as a skill means they have access to the full conversation context when invoked, which makes for much better content since I don't have to re-explain what I'm working on. This was my first time working with skills, and it seems really, really interesting, actually. I guess it's just a modern version of having pre-saved prompts for different scenarios, like I used to have in Zed.
- I built devcontainer to test YOLO Claude Code, but decided to park this idea for now. I might end up going with pre-built nixOS images that I spin up in my home lab as VMs, so I can have proper Chromium instances (