Selected Projects

10 in the ledger

A running index of the things I’ve built — the ones that shipped, the ones that settled, and the ones I still reach for. Arranged in reverse chronological order; the old work stays, because most of what I know was learned against it.


YearApril 2026 – Present
RoleEngineer & designer
StackLaravel 13, PHP 8.4, Inertia v3, React 19, TypeScript, Tailwind v4, laravel/ai, OpenRouter, Pest 4
Active

ResumesKit — a living record, tailored on demand

A resume platform for non-technical job seekers. Import an existing CV once, keep it alive through a conversational agent, and generate tailored — never fabricated — versions for specific postings. Built on a hybrid data model where structured columns carry what needs querying and Markdown carries what AI needs to read. In active development; not yet in production.

YearApril 2026 – Present
RoleResearcher & engineer
StackClaude Code, Skills & sub-agents, Mozilla Observatory, PageSpeed Insights, W3C Validator, WeasyPrint
Active

Website Reports — an auditor for the vibe-coded web

A passive scanner that reads a public site the way an attacker would, and writes the findings down in language a founder can actually act on. Built to learn what goes wrong when applications are shipped faster than they are understood.

YearMarch 2026 – Present
RoleAuthor & maintainer
StackTypeScript, oclif, Browserbase, Perplexity, Supadata
Active

Zurf — a web for agents, not for humans

A CLI toolkit that gives AI agents a single, legible interface to the web — search, browse, ask, transcribe. Built because the tools humans use to read the internet are the wrong shape for something that reads a hundred pages in a minute.

YearJanuary 2026 – April 2026
RoleFounder & instructor
StackLaravel, Claude Code, Next.js, MDX
Sunset

VibeMastery — speed with understanding

A course for non-coders building production apps with Claude Code and Laravel. The thesis still holds; the audience it attracted did not. Sunset after the first round of leads came in — every one a working developer.

Fig. ILanding page, April 2026. Waitlist open — and every lead it caught was already a developer.
YearOctober 2025 – January 2026
RoleEngineer
StackLaravel 12, React 19, Inertia, Filament, Meilisearch, LarAgent, OpenRouter, Horizon
Sunset

m2local — a chat-first search that never reached its users

A would-be real-estate assistant for the Argentine market. A scraping pipeline pulled listings out of a dozen portals, an LLM agent turned natural-language intent into structured queries, and an MCP server exposed the same catalog to other agents. Four months of work, built end to end, set down before it ever shipped — kept here as a record of the architecture and of what the shelving taught me.

YearSeptember 2025 – Present
RoleAuthor & maintainer
StackPHP 8.4, Laravel 12
Active

NodeGraph — a small state machine for agentic Laravel

An open-source PHP package for running processes as directed graphs of states. Nodes execute domain logic, threads persist progress, and checkpoints keep an auditable timeline — the runtime I wanted every time I tried to build an agent inside a Laravel app.

YearAugust 2025
RoleEngineer
StackLaravel 12, PHP 8.4, React 19, Inertia, Horizon, Redis, OpenRouter, WhatsApp Cloud API, Cobra Fácil, Saloon
Shipped

PagaFácil — pago móvil, but it's a conversation

A WhatsApp-native payment assistant for Venezuela. The user says 'send 500 to Juan' and the system does the rest — collecting the recipient, asking for the OTP, executing the transfer on Venezuelan bank rails, and reporting the outcome — without ever leaving the chat. Built on a state-machine-driven multi-agent pipeline over Laravel and a Cobra Fácil integration.

YearJuly 2024 – Present
RoleEngineer
StackLaravel, PHP, Inertia, React, Filament, Vite
Active

Red Activa — the coach's clipboard, rebuilt as a SaaS

A multi-tenant platform for swimming academies and clubs. Coaches log attendance from a phone deck-side, evaluations get written as the athlete touches the wall, and the owner sees the team's health in one dashboard on Sunday night. Built on Laravel with a Filament-powered team panel and three tiers priced by athlete count.

YearJuly 2023 – April 2024
RoleEngineer, co-author
StackGo, Wails, Rust, Tauri, Vue, TypeScript, SQLite, GORM
Sunset

Krater — a desktop debugger we rewrote over a weekend

A cross-platform desktop debugger for Laravel applications — the local half of the MoonGuard ecosystem. Messages, exceptions, queries, and HTTP requests streamed in from a companion PHP package and persisted in SQLite, so the last run was still there the next morning. Prototyped in Rust/Tauri, shipped in Go/Wails after a one-weekend rewrite.

YearNovember 2022 – January 2026
RoleMaintainer, author
StackPHP 8, Laravel, Filament, Blade, Tailwind, PHPUnit
Sunset

MoonGuard — a Laravel monitor we put down

An open-source Filament plugin for monitoring Laravel applications in production. One dashboard watched many apps at once — uptime, SSL validity, server health, and exceptions — and paged the on-call over email or Slack when something drifted. Shipped alongside a companion agent, a desktop debugger, and a free book that documented the package-building journey end to end. The code remains on GitHub; the marketing site does not.

Fig. IThe Filament panel, watching four sites at once — uptime, SSL, server health, and exceptions in a single view.