Personal projects
My own products and client work, built on my own initiative outside my institutional role: AI agents, SaaS platforms and websites for businesses.
Accessible DGSC Prototype — Audit Dashboard with AI Agents
Personal · own initiative · thesis foundationNext.js 15 · Supabase · NVIDIA NIM · Recharts
WCAG 2.2 AA audit dashboard with three AI agents: a conversational one that answers questions about the findings, a classifier that categorizes them and a generator that builds the remediation backlog. Compliance metrics and historical tracking by campaign.
(opens in a new tab)Nexo — SaaS Project Manager
In production · own initiativeReact 18 · Node.js · MongoDB · Socket.io · Stripe
Multi-tenant SaaS platform for project management with Kanban/Gantt views, real-time updates over WebSockets, built-in AI, automations, 2FA/TOTP and Stripe billing.
(opens in a new tab)Civil Service Chatbot — RAG Assistant
Personal initiative · not commissioned by the institutionNext.js 15 · pgvector / Neon · RAG multi-modelo
Conversational assistant that answers questions about Civil Service procedures and regulations from a RAG knowledge base. It shares its foundation with the MAG chatbot: automatic failover across three AI providers to avoid single points of failure, and an admin panel with an audit log where uploaded documents join the knowledge base without manual retraining.
(opens in a new tab)MAG Chatbot — Agricultural Sector Assistant
Personal initiative · not commissioned by the institutionNext.js 15 · pgvector / Neon · RAG multi-modelo
The same foundation as the Civil Service chatbot with different content: it answers questions from Costa Rica's agricultural sector about MAG, SFE, SENASA, INTA and SEPSA, with quick access to hours, contacts and systems. Multi-model RAG with failover across three AI providers and an admin panel to upload documents.
(opens in a new tab)King Kong Barber — Booking SaaS for Barbershops
In active development · phase 4 of 6Next.js 15 · Prisma 7 · Neon Postgres · NextAuth v5 · PWA
From one barbershop's booking site to a multi-tenant platform: each business gets its own subdomain, branding and schedule, self-service sign-up with a 14-day trial and a platform panel with an audit log. Bookings are validated in the business's time zone and never overlap thanks to a Postgres exclusion constraint; email and push reminders, rescheduling, time off and an offline PWA.
(opens in a new tab)Post JASC — POS with Electronic Invoicing
In active developmentNext.js 15 · Prisma 6 · Neon Postgres · Hacienda v4.4
Point of sale and electronic invoicing for Costa Rica: invoices, receipts, credit and debit notes, quotes, accounts receivable and per-register closing. XML validated against Hacienda's official XSDs, sent from a queue with retries, credentials encrypted with AES-256-GCM and per-company isolation; CI runs migrations on an empty Postgres and more than 50 test files.
(opens in a new tab)Noah's Adventures — Educational Game
Web · iOS (Capacitor)Playwright / WebKit
Cross-platform educational app: a navigable map of 9 scenes and 10 mini-games that teach counting, shapes, colors, vowels, consonants, sequences and daily routines. Validated by playing it on every iteration, with automated tests on a real WebKit engine.
De La Finca Restaurant Website
In production · FreelanceNext.js · Drizzle · Postgres (Supabase) · TOTP · Google Places
Bilingual ES/EN site with a category-based menu exportable to PDF, an editorial gallery, real Google reviews and WhatsApp reservations validated in Costa Rica time, which are logged in a panel to confirm or cancel them. Custom admin panel with two-factor authentication (TOTP), revocable sessions and attempt limits in Postgres. Audited in 2026: CSP without unsafe-eval, structured data, server-rendered images and 36 unused dependencies removed.
(opens in a new tab)Habla Conmigo Spanish School
In production · FreelanceNext.js 16 · React 19 · Tailwind 4 · Neon Postgres · Resend
Website on its own domain for a Spanish school, in person in Costa Rica and online. The class catalog and its prices are read from Postgres (Neon) with a static fallback if the database fails; it includes four accommodation options for immersion and bookings that convert the schedule to the student's time zone. In development: an /admin panel with email code login so the client can edit video, figures, classes, prices and photos.
(opens in a new tab)