Salvador PérezFull-Stack Developer

@bpstack

Desarrollo y despliego aplicaciones full-stack. Desde la base de datos hasta producción. Actualmente trabajando en sistemas de gestión hotelera.

TypeScriptNext.jsNode.jsExpressMySQL
Sígueme en

Proyectos

Algunos de mis proyectos recientes

Four-Points

Sistema de gestión hotelera listo para producción, escalable desde propiedades individuales hasta cadenas de 12+ hoteles con más de 100 usuarios concurrentes. Sistema de cinco roles (admin, recepcionista, group-admin, mantenimiento, demo-admin) — JWT con cookies HttpOnly, bcrypt, sesiones deslizantes, rate limiting, avatar con Cloudinary y modo demo-admin con whitelist de escritura que registra los intentos bloqueados en base de datos. Libro de registro operativo con cuatro niveles de prioridad (urgente → baja), comentarios por entrada, tracking de lectura por usuario, flujo de resolución/reapertura e historial completo de auditoría. Gestión de parking en dos niveles subterráneos, seis tipos de plaza, ciclo completo de reservas (reservada → check-in → check-out), códigos auto-generados (PK-YYYYMMDD-####), triggers de disponibilidad en BD, estadísticas de ocupación por nivel y dashboard con filtros rápidos.

Planificación mensual de turnos con 12 tipos de turno (mañana, tarde, noche, presencia 24h, vacaciones, enfermedad, formación...), edición masiva de celdas con drag-to-select, y motor de validación con 7 reglas activas: cobertura por turno, bloques noche obligatorios, descanso consecutivo mínimo, máx. 6 días trabajo consecutivos, restricción de rotación T→M, reglas individuales por empleado y rango de libres mensual — las restricciones aprobadas se auto-sincronizan al grid y bloquean celdas. Gestión de contratos anuales con cálculo proporcional y exportación PDF en A4 horizontal. Generador de turnos con IA (Claude, Gemini, Groq y Ollama). Reservas de grupos con gestión multi-habitación y procesamiento de pagos, operaciones de caja multi-turno con tickets PDF, reporte de mantenimiento con imágenes en Cloudinary, mensajería interna en tiempo real y soporte multiidioma EN/ES (next-intl, 500+ claves por idioma).

Weather App

App en producción construida con Next.js 16 y React 19 con datos meteorológicos completos de Open-Meteo API. Geolocalización automática inteligente con geocodificación inversa, arquitectura offline-first mediante service workers Serwist y validación de API segura con esquemas Zod. Navega por 28 ciudades preseleccionadas en 6 continentes o busca en todo el mundo, consulta condiciones actuales con más de 28 interpretaciones de códigos meteorológicos WMO, pronósticos de 7-16 días y predicciones por hora. Instalable en iOS, Android y escritorio con actualizaciones automáticas y notificaciones al usuario. Incluye alertas de lluvia/calor, cambio °C/°F, filtrado por continente, cambio de tema y caché StaleWhileRevalidate para rendimiento óptimo. Monitorizado con Vercel Analytics y Speed Insights.

Matrix

Aplicación de escritorio (Linux, macOS, Windows) todo-en-uno para desarrolladores, para organizar ideas, proyectos, planificación, roadmaps, tareas y métricas de desarrollo. Construida con Electron Forge + Vite como app de escritorio con backend Express embebido. Incluye jerarquía Misión → Objetivos → Planes → Tareas con cálculo de progreso en cascada, tablero Kanban de tareas con drag-and-drop, pipeline de Ideas con puntuación (alineación/impacto/costo/riesgo), escáner de proyectos para detección de roadmap/tareas en proyectos locales, gestor de contraseñas cifrada con AES-256-GCM, registro de actividad, dashboard de análisis con gráficos (Recharts), base de datos SQLite con Drizzle ORM, y soporte bilingüe (EN/ES).

Versión web de producción de la app de escritorio Matrix, desarrollada para la Hackaton CubePath 2026 organizada por Midudev — seleccionada entre los 10 mejores proyectos de casi 250 presentados — y desplegada en un VPS de CubePath via Dokploy. La misma jerarquía Misión → Objetivos → Planes → Tareas, tablero Kanban, pipeline de Ideas y gestor de contraseñas cifradas — ahora multi-usuario, en un único contenedor Docker con HTTPS automático via Traefik. RightPanel con temporizador Pomodoro, métricas de actividad, Dev Feed (Hacker News + GitHub Trending) y pensamientos diarios via ZenQuotes. Notas diarias con calendario, integración GitHub API para escanear proyectos (lenguajes, commits, detección de README/ROADMAP), PWA instalable con soporte offline. Demo en matrix.stackbp.es (demo / demo1234).

Arquitectura multi-usuario con SQLite aislada por usuario via AsyncLocalStorage. Autenticación con scrypt + tokens HMAC en cookies httpOnly, rate limiting global (300 req/min) y por endpoint (10 intentos/15min en login), recuperación de contraseña por email y registro controlado por variable de entorno. Headers de seguridad completos: HSTS 2 años, CSP, X-Frame-Options, Permissions-Policy, security.txt y robots.txt. CI/CD con GitHub Actions (typecheck en cada push) + auto-deploy via Dokploy. Monitor de servicios externos (Render, bases de datos), backup SQLite descargable y reseteo de datos demo en caliente sin reiniciar el contenedor.

Home Account

Aplicación de gestión financiera doméstica totalmente cifrada. El backend nunca ve datos en claro: todas las transacciones, categorías y presupuestos se cifran client-side con AES-256-GCM y se almacenan como blobs. Derivación de claves con Argon2id (memory-hard), encriptación con claves jerárquicas (UserKey → AccountKey → Datos), y recuperación mediante frase mnemónica BIP39 de 24 palabras. Sistema de invitaciones multicuenta con transferencia segura de claves, módulo de asesoramiento de inversión con IA (Groq/Ollama/Claude/Gemini/HuggingFace), importación masiva Excel/CSV con deduplicación, presupuestos, gráficos interactivos con Recharts, autenticación JWT + OAuth (Google/GitHub), protección XSS/CSRF, rate limiting y PWA instalable. Backend en sleeping Render, DB en Aiven, frontend en Vercel.

E-commerce

Una plataforma de comercio electrónico moderna que evolucionó de un prototipo en vanilla JS a una arquitectura escalable con Next.js + Strapi. La versión legacy sentó las bases para conceptos fundamentales como manejo del DOM y lógica del carrito, mientras que el nuevo stack ofrece mejor rendimiento, mantenibilidad y escalabilidad en progreso. Esto podría ser infinito. Ve a la sección del blog si quieres saber más. Info de despliegue: base de datos (Aiven), backend (Render — la primera carga puede activar un cold start de algunos minutos), frontend (Vercel).

AMPA MP Website

Sitio web informativo para la Asociación de Madres y Padres del CEIP Mariana Pineda. Incluye gestión de contenido, registro de socios, actualizaciones de comunicación, publicación de noticias, acceso a documentación y estructura optimizada para SEO. Construido y configurado desde cero con personalización del tema, configuración de plugins y optimización general del rendimiento.

Desarrollador autodidacta al que le encanta construir cosas. ¿Mi camino de aprendizaje? Googlear mensajes de error sin parar, profundizar hasta encontrar la solución exacta a un problema técnico, incontables tutoriales de YouTube - resolviendo problemas a la antigua & en solitario desde mi primer PC en 1997. Estuve en IRC antes de que Discord existiera — donde nacieron muchos proyectos de software, como Linux y Ubuntu.

He pasado años creando herramientas para la industria hotelera y contactos cercanos. He diseñado sistemas de gestión hotelera, dashboards para asociaciones escolares (ser padre enseña; las oportunidades de desarrollar aparecen en cualquier ámbito), y automatizaciones de flujos de trabajo personalizadas para amigos.

Hoy, construyo aplicaciones full-stack desde cero: plataformas de gestión hotelera end-to-end, bases de datos, aplicaciones web, y sitios de e-commerce—backend, frontend, y todo lo demás. Actualmente construyendo Four-Points—un sistema integral de gestión hotelera.

💼 Construido
  • Sistemas PMS hoteleros
  • Herramientas internas
  • Apps web AMPA
  • Plataforma E-commerce
🛠️ Stack
Next.jsTypeScriptNode.jsMySQL

+ lo que funcione

git fetch --all
git branch -a
git checkout develop
git status # If changes → stash
git stash # JIC (only if needed)
git pull origin develop
git stash pop # If you stashed

process.env.PHILOSOPHY

Deja que la IA maneje la parte aburrida, pruébala, borra lo inútil — construye cosas que la gente realmente use.

Skills y Tecnologías

Tecnologías con las que trabajo

TypeScript
JavaScript
React
Next.js
Node.js
Express
MySQL
PostgreSQL
SQLite
Drizzle ORM
Electron
Tailwind CSS
Docker
GitHub
WordPress

Stack Actual

React / Next.js
TypeScript
Node.js / Express
MySQL
Tailwind CSS
Docker

Blog

Perspectiva sobre Tecnología y Experiencia en Proyectos

Contacto

1000 caracteres restantes
bpstack - Full Stack Developer