const miguel = {
builds: ["AI agent tools", "native macOS apps", "small useful software"],
principle: "If the tool I want doesn't exist, I build it and ship it.",
currentFocus: "giving local AI agents better tools and safer boundaries",
};| Project | What it does | Stack |
|---|---|---|
| TrainerKit · live | Reads a Pokémon GO appraisal screenshot, gives a verdict and shows its reasoning | TypeScript React Native PWA |
| Ostinato | A student planner whose reminders keep coming back until you actually answer them | Swift Expo AlarmKit |
| Cadenza | Native Apple Music Classical client for macOS — the app Apple never shipped | Swift SwiftUI MusicKit |
| SwitchSaveSync | Nintendo Switch homebrew that backs game saves up to Google Drive in one button press | C libnx devkitPro |
| NanoBridge | One CLI and MCP server that gives a coding agent image generation and asset post-processing | Python MCP Pillow |
| mac-task-manager | Windows-style Task Manager for macOS — live processes, performance graphs, a global shortcut | Swift AppKit |
Contributions accepted into other people's projects. This list is written by a workflow that asks the GitHub API for pull requests I authored outside my own account and keeps only the merged ones — so it is never longer than the truth.
- felladrin/LinkedTimer — Fix running timers when joining stopped rooms
- litedb-org/LiteDB — Fix formatted ENSURE error messages
- felladrin/LinkedTimer — Fix stopped timers not starting during initial room sync
Daily
TypeScript · React · Node.js · Python · Git
Also shipped with
Swift · Electron · Bun · Firebase · Supabase · GitHub Actions
I publish short, practical notes about how these tools were built at nspx.dev/artigos.



