¡Bienvenido al Gran Juego de la mentoría y la consultoría técnica! Esta landing page convierte la experiencia de buscar mentorías en una aventura épica estilo RPG con estética pixel art y animaciones 16-bit.
Una landing page interactiva que presenta los servicios de Gentleman Programming (mentorías, consultorías y charlas) como si fueran quests en un videojuego RPG retro. Cada sección representa un "nivel" diferente con mecánicas gamificadas.
- 🎮 Experiencia RPG Completa: Pantalla de inicio, sistema de niveles, logros y progreso
- 🎨 Estética Pixel Art: CSS puro para crear sprites, iconos y animaciones retro
- ⚡ Arquitectura Moderna: Astro + Tailwind CSS + TypeScript
- 📱 Responsive Design: Optimizado para todos los dispositivos
- 🎵 Efectos Visuales: Animaciones, parallax, partículas y efectos de iluminación
- ♿ Accesibilidad: ARIA roles, navegación por teclado y modo reducido de movimiento
Pantalla principal con menú de opciones estilo RPG y estadísticas del mentor.
Tablero de habilidades (skill tree) mostrando servicios de mentoría individual.
Tablón de misiones para empresas con consultorías y workshops.
Dialog box estilo SNES presentando al mentor con avatar animado.
Carrusel estilo bestiario con testimonios de clientes como "criaturas derrotadas".
Estadísticas animadas y logros del mentor con mosaico de tecnologías.
Batalla épica donde el usuario debe "derrotar" sus problemas técnicos contactando al mentor.
Footer diseñado como un templo pixelado con enlaces y información legal.
- Node.js 18.0+
- npm o yarn
# Clonar el repositorio
git clone https://github.com/tu-usuario/gentleman-astro.git
cd gentleman-astro
# Instalar dependencias
npm install
# Iniciar servidor de desarrollo
npm run dev
# Desarrollo
npm run dev
# Build de producción
npm run build
# Preview del build
npm run preview
# Verificación de tipos
npm run astro check
- Framework: Astro - Para arquitectura de islas
- Styling: Tailwind CSS - Utility-first CSS
- TypeScript: Para tipado estático
- Animaciones: CSS puro con keyframes y transforms
- Iconografía: Sprites CSS y arte pixel handcrafted
pixel-bg
: #0a0a0a (Fondo principal)pixel-cyan
: #00d4aa (Elementos interactivos)pixel-green
: #00ff41 (Éxito/Completado)pixel-purple
: #16213e (Elementos secundarios)gold
: #ffd700 (Elementos premium)hp-red
: #dc2626 (Alertas/Boss)
- Primaria: Monaco, Menlo, Ubuntu Mono (Monospace pixel-perfect)
- Tamaños: Sistema pixel-* (pixel-xs a pixel-3xl)
- Dialog Boxes: Estilo SNES con bordes pixelados
- Botones: Efectos hover con animaciones step-end
- Barras de Stats: HP/MP/XP con efectos de brillo
- Sprites: Arte pixel creado con CSS gradients
- Save/Load: Estado guardado en localStorage
- Progreso: Tracking de scroll con mini-mapa
- Logros: Sistema de achievements dinámicos
- Easter Eggs: Código Konami y interacciones ocultas
- Smooth Scroll: Entre secciones/niveles
- Teclado: Navegación completa sin mouse
- Mini-mapa: Indicador visual de progreso
- Portal de Scroll: Botón animado para volver arriba
- Parallax: Múltiples capas de fondo
- Partículas: Sistemas de energía y elementos flotantes
- Animaciones: Sprites animados con CSS
- Transiciones: Efectos de entrada por sección
- Mobile: 480px (Interfaz simplificada)
- Tablet: 768px (Grid adaptativo)
- Desktop: 1024px+ (Experiencia completa)
- Grid layouts flexibles
- Sprites redimensionables
- Navegación optimizada para touch
- Efectos reducidos en dispositivos móviles
- ARIA: Roles y labels en elementos interactivos
- Keyboard: Navegación completa por teclado
- Screen Readers: Contenido semántico estructurado
- Motion: Respeto por
prefers-reduced-motion
- Contrast: Colores que cumplen WCAG AA
Tab
: Navegación entre elementosEnter/Space
: Activación de botonesArrow Keys
: Navegación en carruselEscape
: Volver al inicioKonami Code
: Easter egg
- Hover effects en menús
- Sonidos de logros
- Efectos de batalla
- Música ambiente (toggle)
Nota: Los sonidos están simulados con console.log para desarrollo. En producción se implementarían con Web Audio API.
- Lazy Loading: Componentes con Intersection Observer
- CSS-only: Animaciones sin JavaScript pesado
- Image Optimization: Sprites vectoriales CSS
- Bundle Splitting: Arquitectura de islas de Astro
- Lighthouse: ≥95 Performance Score
- FCP: <1.5s First Contentful Paint
- LCP: <2.5s Largest Contentful Paint
- CLS: <0.1 Cumulative Layout Shift
- Open Graph completo
- Twitter Cards
- JSON-LD structured data
- Meta descriptions dinámicas
- URLs canónicas
- Sitemap generado
# Deploy automático desde GitHub
# Configurar en vercel.com
# Build command: npm run build
# Publish directory: dist
npm run build
# Servir carpeta dist/
- Playwright: Tests E2E de interacciones
- Storybook: Documentación de componentes
- Lighthouse CI: Auditorías automatizadas
- axe-core: Testing de accesibilidad
src/
├── components/ # Componentes de niveles
├── layouts/ # Layout principal
├── pages/ # Páginas de Astro
└── styles/ # CSS global y utilidades
public/
├── favicon.ico # Favicons
└── og-image.jpg # Imagen social
- Naming: PascalCase para componentes
- CSS: Utility-first con Tailwind
- Commits: Conventional commits
- Branches: feature/nivel-x para nuevos niveles
// Mostrar logro manual
window.showAchievement('🐛', 'Debug!', 'Manual achievement');
// Navegar a nivel específico
window.navigateToLevel(3); // Va al nivel 4 (0-indexed)
// Estado del juego actual
console.log('Current level:', currentLevel);
- Performance: Analizar animaciones CSS
- Elements: Inspeccionar sprites y efectos
- Console: Ver eventos de juego simulados
- Application: Revisar localStorage saves
- Sistema de audio real con Web Audio API
- Más easter eggs y mini-juegos
- Modo oscuro/claro
- Internacionalización (i18n)
- PWA con offline support
- Integración con APIs de scheduling
- Sistema de inventario virtual
- Chat bot estilo NPC
- Integración con Discord API
- Métricas de engagement
- A/B testing de conversiones
MIT License - Ver archivo LICENSE
para detalles.
- Website: gentleman-programming.com
- YouTube: @gentleman-programming
- Discord: Gentleman Programming Guild
- Email: mentor@gentleman-programming.com
Hecho con ☕, código limpio y cariño a los traumas técnicos.
¡Que comience la aventura épica! 🚀