Producto propio
programemos.dev
Una plataforma diseñada para aprender programación de forma práctica, estructurada y motivadora.
Descripción
Programemos.dev es una plataforma educativa creada para centralizar el aprendizaje de programación en un solo lugar, ofreciendo una experiencia práctica y guiada completamente en español.
Los usuarios pueden acceder libremente al blog para consultar artículos técnicos, guías y contenido orientado al desarrollo de software.
Al registrarse, la plataforma incorpora un sistema de gamificación donde los estudiantes obtienen experiencia, suben de nivel, mantienen rachas y desbloquean insignias a medida que avanzan.
La Academia permite practicar con ejercicios reales, mientras que las Rutas de Aprendizaje organizan el contenido en un recorrido progresivo. Además, los Roadmaps ayudan a visualizar qué tecnologías aprender según el perfil profesional que se quiera alcanzar.
La plataforma también incluye proyectos prácticos para fortalecer el portafolio, una comunidad donde compartir el progreso y herramientas que facilitan el trabajo diario de los desarrolladores.
Todo el producto fue concebido con un objetivo claro: ofrecer una experiencia de aprendizaje completa que combine teoría, práctica, comunidad y seguimiento del progreso desde una única plataforma.
Mi participación
- ▹Diseñé la arquitectura Full Stack de la plataforma.
- ▹Desarrollé el frontend utilizando Next.js, React y TypeScript.
- ▹Construí el backend con NestJS, Prisma y PostgreSQL.
- ▹Diseñé el modelo de datos y la estructura de la base de datos.
- ▹Implementé la autenticación y autorización mediante Auth0.
- ▹Diseñé la experiencia de usuario y las interfaces de la plataforma en Figma.
- ▹Desarrollé el panel de administración para gestionar contenido.
- ▹Implementé el sistema de gamificación (niveles, experiencia, rachas e insignias).
- ▹Realizo el mantenimiento y la evolución continua del producto.
Módulos implementados
Blog
Publicación de artículos técnicos organizados por categorías y etiquetas, accesibles sin necesidad de registro.
Inicio / Aventura
Panel principal del usuario con sistema de niveles, experiencia, rachas, progreso y objetivos de aprendizaje.
Academia
Espacio para resolver ejercicios prácticos y reforzar conocimientos mediante aprendizaje activo.
Rutas de aprendizaje
Cursos organizados por módulos y lecciones para seguir un recorrido de aprendizaje estructurado.
Roadmaps
Mapas interactivos que muestran las tecnologías y habilidades necesarias para diferentes perfiles profesionales.
Proyectos
Colección de proyectos prácticos para aplicar conocimientos y construir experiencia real.
Comunidad
Espacio social donde los usuarios pueden compartir publicaciones, interactuar y seguir el progreso de otros desarrolladores.
Perfil e insignias
Perfil público con estadísticas, logros desbloqueados e historial de progreso.
Herramientas
Colección de utilidades para desarrolladores, como generadores de README, formateadores JSON y otras herramientas prácticas.
Panel de administración
Sistema para administrar artículos, cursos, ejercicios, rutas de aprendizaje y el contenido de toda la plataforma.
Retos técnicos
Diseñar una arquitectura escalable capaz de soportar múltiples módulos dentro de una misma plataforma.
Mantener una separación clara entre frontend, backend y acceso a datos para facilitar el crecimiento del proyecto.
Diseñar un modelo de base de datos flexible para soportar cursos, ejercicios, usuarios, gamificación y comunidad.
Implementar autenticación segura y control de acceso mediante Auth0 y JWT.
Construir una experiencia de usuario consistente entre todos los módulos de la plataforma.
Diseñar un panel de administración que permitiera gestionar el contenido sin depender del código.
Tecnologías utilizadas
Frontend
- ▹Next.js 16 (App Router)
- ▹React 19
- ▹TypeScript
- ▹Tailwind CSS 4
- ▹Auth0
- ▹react-markdown + remark-gfm
- ▹ESLint + React Compiler
Backend
- ▹NestJS
- ▹TypeScript
- ▹Prisma + PostgreSQL
- ▹Passport JWT + Auth0
- ▹class-validator / class-transformer
- ▹Express (Nest Platform)
Herramientas
- ▹Node.js
- ▹Git
- ▹GitHub
- ▹Vercel
- ▹Postman
- ▹Jest
- ▹Supertest
- ▹Prettier
Lo que aprendí
- ▹Planificar un producto antes de escribir código permite tomar mejores decisiones de arquitectura.
- ▹Diseñar pensando en la experiencia del usuario es tan importante como implementar la funcionalidad.
- ▹Construir un producto completo implica equilibrar desarrollo, diseño, rendimiento y mantenibilidad.
- ▹Crear un proyecto desde cero fortaleció mi capacidad para tomar decisiones técnicas y resolver problemas de manera autónoma.
- ▹Desarrollar un producto propio me permitió comprender el ciclo completo de desarrollo, desde la idea inicial hasta una aplicación en producción.
Capturas
Recorrido visual por algunos de los módulos y funcionalidades desarrolladas dentro de la plataforma.