Trabajo seleccionado

PROYECTOS

apps, demos y experimentos

Una selección de cosas que construí: trabajo de producción, side projects y algún experimento ocasional. Cada card incluye contexto, stack y links a la demo o al código fuente.

APP 01

The Orange Mate

Plataforma social para viajeros solos

Una app social full-stack donde viajeros solos encuentran compañía y comparten gastos de viaje. Hecha con Next.js 15 y Supabase: autenticación, dashboard personalizado, chat 1 a 1 en tiempo real, sistema de amigos, planes de viaje con filtros de descubrimiento y reseñas, con tests E2E en Playwright.

Next.js 15TypeScriptSupabaseTailwind CSSPlaywright
APP 02

Dungeon Hub

Companion de D&D para una campaña West Marches

Un monorepo para un mundo de D&D 5e asíncrono y multi-DM: gestión de personajes, compendio de reglas navegable, mapa de campaña y una capa de conocimiento del mundo. Una API en Fastify, una web en Next.js y un bot de Discord comparten un paquete de dominio puro con esquemas Zod como única fuente de verdad de las reglas.

TypeScriptFastifyNext.jsDrizzle ORMSupabaseDiscord.js
TOOL 03

peel

Worktrees de git efímeros con dev servers gestionados

Una CLI publicada que levanta cualquier rama en un worktree de git aislado, con su propio node_modules, un .env copiado y un puerto libre, y desarma todo al salir. Distribuida en npm como @tanisjam/peel.

TypeScriptNode.jsCLInpm
TOOL 04

Orange Grove

Un harness portable de Spec-Driven Development

Un harness de SDD agnóstico de herramienta con una regla dura: no hay implementación antes de specs aprobadas. Ocho fases y ocho agentes especialistas, specs en markdown puro y validadores sin dependencias que garantizan la trazabilidad requisito-tarea-evidencia en Claude Code, Cursor, opencode y Codex.

Node.jsMarkdownSpec-Driven DevCLI
APP 05

Just a Drop

Drops de audio efímeros que se borran tras una escucha

Grabás una nota de voz en el navegador, obtenés un link corto para compartir y lo enviás: quien lo recibe lo escucha una sola vez y desaparece. Los uploads se suben por chunks a un MinIO self-hosted, Redis impone el TTL de una escucha y un cron diario en Vercel limpia los drops vencidos: todo el backend corre en mi homelab, expuesto por un túnel de Cloudflare.

Next.jsTypeScriptMinIORedisCloudflare TunnelVercel
APP 06

Hecho Hex

Muro de mensajes geoespacial sobre un mapa hexagonal

Dejás mensajes anónimos pineados a tu ubicación sobre un mapa de Mapbox. Las notas se agregan en celdas hexagonales H3 de Uber, mostradas como una capa de nube de palabras y burbujas flotantes arrastrables, con actualizaciones en tiempo real vía Supabase y expiración a las 48 horas.

Next.jsTypeScriptMapbox GLH3SupabaseFramer Motion
STACK
HECHO CON
ViteNextJSReactJSTailwind CSSTypeScriptReduxSassCSSHTMLJavaScriptStrapiSQLiteMongoDBBootstrapStyled-componentsNodeDockerJestGitHubJira