I'm Johnny, a senior backend and AI engineer working in TypeScript, Go, and Swift. For clients I build APIs and LLM systems that run in production. On my own time I build the tools below. They run on your machine, keep your data there, and most carry a Spanish name that says what they do.
| Project | What it does | Latest |
|---|---|---|
| Gancho · hook gancho.app |
Clipboard history and snippet library for Mac, iPhone, and iPad. Full-text search, on-device OCR, and questions answered from what you copied. Syncs through your own iCloud. | |
| Portavoz · spokesperson portavoz.app |
Meeting assistant that knows who said what. Live transcription, speaker separation, and bilingual summaries, all on your Mac. A local MCP server lets your AI tools ask what you agreed to. | |
| Secreteo · whispering | Dictation from the menu bar. Hold a key, speak, and the text lands where your cursor is. Speech recognition runs on your Mac. | |
| Vitrine vitrineframe.app |
Turns code and terminal output into share-ready images. vgrab htop captures a full-screen terminal app as the frame you saw, not a transcript of escape codes. |
Swift 6 · SwiftUI · GRDB/SQLite · Core ML · CloudKit
| Project | What it does | Latest |
|---|---|---|
| Lingua linguacode.dev · try it in the browser |
Offline-first code runner and scratchpad for JavaScript, TypeScript, Python, Go, Rust, Ruby, and SQL. Inline results, a debugger, an HTTP client, a database client, and notebooks in one app for macOS, Windows, Linux, and the web. | |
| gos | Installs and switches Go versions in seconds. One Bash script, no dependencies, checksum-verified downloads. macOS, Linux, Windows, and BSD. |
TypeScript · Electron · React · Monaco · DuckDB · Bash
| Project | What it does | Latest |
|---|---|---|
| electron-stagewright docs |
Lets coding agents drive real Electron apps the way Playwright drives browsers. An MCP server with accessibility-tree queries, retrying assertions, and replayable session traces. | |
| Relevo · relay | A Herdr layout for running coding agents across several Claude accounts. One inbox answers "whose turn is it?" across agents, pull requests, and reviews. | |
| Janusly janusly.app |
AI operator for business workflows in one Go executable. Designs, runs, and recovers workflows on PostgreSQL, with human approval before anything changes. MCP client and server. | In development |
TypeScript · Go · PostgreSQL · MCP · Claude · OpenTelemetry
| Project | What it does | Latest |
|---|---|---|
| Puntovivo puntovivo.app |
Point of sale for Latin American retail, starting with Colombia. The store keeps selling offline: checkout, cash sessions, per-site stock, and fiscal documents run on an encrypted local database. |
TypeScript · Electron · React · Fastify · tRPC · SQLite
The Mac apps and CLIs install with Homebrew. The current casks, formulae, and versions are in the homebrew-tap.
- MeloSensei (private): a piano coach for iPad. You play short pieces on your own keyboard; it listens over MIDI and gives one correction at a time.
- herdr-secreteo (private): voice routing for Herdr agents on top of Secreteo's dictation. Say "codex: add tests for the parser" and the prompt reaches the right agent. The offline router works; live delivery does not exist yet.
- VetCare (private): clinic management for veterinary practices. Reception and scheduling, medical records, hospital, pharmacy and cash register, grooming, and a portal for pet owners. React and TypeScript on the web, Spring Boot behind it.
- local-model-store: one verified on-disk store for local AI models, so a model downloads once even when several of my apps need it.
- Node.js and NestJS APIs and queue workers that hold up under real traffic.
- Go services where concurrency, latency, and footprint matter.
- LLM systems with tool use, structured outputs, and retrieval, built to be observed and evaluated.
- Local first. Your data stays on your device unless you choose otherwise.
- Boring tech, sharp execution. Proven tools, with novelty spent where it matters.
- AI is a system, not a prompt. Retrieval, evals, guardrails, and a deterministic fallback.




