Patitas
Plataforma fullstack para adopción responsable y segura de mascotas.
- Next.js
- TypeScript
- Express
- Prisma
- Supabase (PostgreSQL)
- React Query
El problema
El proceso de adopción de mascotas suele ser informal y poco confiable. Patitas lo estructura y digitaliza con autenticación, roles y trazabilidad de solicitudes.
Qué hace
- 01 Auth con Google OAuth + JWT y control de roles
- 02 API REST con Express y Prisma ORM
- 03 Publicación y búsqueda/filtrado de mascotas
- 04 Gestión de solicitudes de adopción y contacto vía WhatsApp
- 05 Panel de administración de usuarios
Capturas
El enfoque técnico
Separé el frontend (Next.js) de una API REST propia en Express en vez de resolver todo con API routes: quería que el dominio (mascotas, solicitudes, roles) viviera detrás de un contrato claro, como en los equipos donde ese backend lo consume más de un cliente. Prisma sobre Supabase (PostgreSQL) dio esquema tipado y migraciones sin administrar la base a mano.
La parte con más decisiones fue la autenticación: entrada con Google OAuth pero sesión con JWT propio, de modo que la API valida tokens sin depender del proveedor en cada request. Los roles (adoptante, publicante, admin) se verifican en la API, no en la interfaz — ocultar un botón no es seguridad. En el cliente, React Query maneja el estado del servidor (cache, refetch, estados de carga) y evitó el store global gigante que estos CRUD suelen acumular.
El tradeoff más honesto: el contacto final entre adoptante y dueño sale a WhatsApp en vez de un chat propio. Un chat en tiempo real eran semanas de trabajo para replicar peor una herramienta que la gente ya usa; la plataforma aporta valor en lo que WhatsApp no hace — trazabilidad y estados de la solicitud.
Aprendizajes
Aprendí que el modelado de datos define el proyecto: el ciclo de vida de una solicitud de adopción (quién puede verla, aprobarla, cancelarla y en qué estado) tocó más código del que esperaba. Hoy dedicaría más tiempo a esa máquina de estados antes de escribir el primer endpoint.
Quedó pendiente el deploy público: la plataforma está terminada y demostrable, pero sostenerla con datos reales de mascotas y adoptantes exige moderación y mantenimiento continuos que no podía garantizar. Prefiero un proyecto terminado sin deploy que un servicio abandonado en línea.
¿Quieres algo similar?
Cuéntanos tu caso y te decimos, honestamente, si podemos ayudarte.