January 5 - January 11
- macOS Screenshot Uploader
- I added a 1 second delay between copying the image to the clipboard and copying the uploaded URL, to give me a chance to paste the image content when that's what I took the screenshot for. I often take screenshots to paste them somewhere, and with this rewrite being so much faster, the URL would get copied before I had a chance to paste the image. Good problems to have!
- Stealth CodeIgniter-to-Laravel Project
- I exposed the first app route directly from Laravel, bypassing CodeIgniter entirely. It's a route for managing profile pictures stored in Rekognition, so it's buried in settings, but it exercises the entire UI - the navbar, the translations system, all the blade views, notification banners from session flash data, etc. Everything is working perfectly, and that means new routes should just be a matter of moving the views and controllers over to Laravel.
- I also improved health observability, exposing lots more internal metrics, including any server setup issues, database connectivity, Redis connectivity, queue status, and more.
- Did lots of optimization to the MariaDB server, making it take full advantage of 128GB of RAM available on the server, and tuned various settings for better performance with the workload.
- SyncPad
- I added a fallback for when using SyncPad over HTTP. In HTTP, the Web Crypto API isn't available, but I didn't want the app to break, so instead it will just send the data unencrypted over HTTP. Obviously not ideal, but better than nothing for people who can't use HTTPS (e.g. local network use). The app will warn users about this, so they know their data isn't encrypted in that case.
- Personal Assistant
- I started turning my personal Obsidian vault into a personal assistant, by filling out my CLAUDE.md file with lots of information about me, my preferences, my projects, and so on. I hooked it up to Linear, Things, and an Apple Mail MCP, so that it can help me manage my tasks and emails. It's still early days, but I'm excited about the possibilities here.
- I created an email management skill that has thorough instructions on how to handle different types of emails, including categorizing them, responding to them, and extracting information. The ultimate goal is to be able to hand off my email inbox to the assistant and have it manage everything for me, with minimal supervision. I'll be notified of anything I need to personally handle, but routine emails can be managed by the assistant, tasks created automatically, and so on.
- url2md
- I bypassed bot detection for Twitter so that I could fetch tweet content without being blocked. This involved using a headless browser to simulate a real user, and uses some of the work I've recently done around creating a virtual Google Meet participant (more on that soon). This way I can fetch tweet content for archiving in my personal knowledge base without running into rate limits or blocks.
- apple-mail-mcp
- I added functionality to get message IDs and raw HTML source for emails, to allow my personal assistant to read and process emails more effectively. This will enable better email management and task extraction. I do need to upstream this, raise PRs for it, or fork the repo altogether, if the maintainer isn't interested in merging it.