Este proyecto se llama journal-dev.
No es un portfolio tradicional. Es un blog personal / journal profesional para documentar mi evolución como Backend Engineer.
El objetivo es mostrar:
- aprendizajes técnicos
- decisiones profesionales
- errores reales
- proyectos personales
- objetivos de carrera
- publicaciones relacionadas a LinkedIn
- evolución hacia un perfil Backend Engineer orientado a sistemas distribuidos, resiliencia, escalabilidad y arquitectura
El sitio debe sentirse como un producto personal serio, no como un template genérico.
Crear una plataforma tipo blog/journal donde los posts vivan en archivos de datos y puedan renderizarse dinámicamente.
El contenido principal debe venir desde:
data/posts.jsonCada post puede tener metadata como:
{
"id": "completable-future-intro",
"title": "Mis primeros pasos con concurrencia en Java",
"date": "2026-04-28",
"tags": ["java", "concurrency", "backend"],
"summary": "Aprendiendo CompletableFuture y async processing",
"type": "learning",
"level": "medium",
"linkedin": "",
"contentPath": "/content/posts/completable-future.md",
"featured": false
}El proyecto debería tener estas secciones principales:
/Home con presentación clara del proyecto.
/postsListado de posts.
/posts/:idDetalle de cada post.
/learningsAprendizajes técnicos.
/careerReflexiones y decisiones profesionales.
/nowQué estoy aprendiendo actualmente.
/aboutQuién soy y por qué existe este proyecto.
Los posts pueden tener estos tipos:
type PostType =
| 'learning'
| 'career'
| 'project'
| 'failure'
| 'thinking'
| 'linkedin';El listado de posts debería poder filtrar por:
- tag
- tipo
- nivel
- texto de búsqueda
- destacados
El diseño debe ser:
- limpio
- moderno
- profesional
- minimalista
- con sensación de producto
- orientado a tecnología/backend
- sin parecer un template genérico
Debe transmitir:
Construyendo sistemas, aprendiendo en público.
Usar el stack actual del repo.
Si el proyecto es Angular, respetar buenas prácticas modernas:
- standalone components
- signals si aplica
- services bien separados
- modelos tipados
- rutas claras
- componentes reutilizables
- BEM o una convención consistente para estilos
- lazy loading cuando tenga sentido
Separar responsabilidades:
src/
├── app/
│ ├── core/
│ ├── shared/
│ ├── features/
│ │ ├── posts/
│ │ ├── about/
│ │ ├── now/
│ │ └── home/
│ └── data-access/El acceso a posts debería estar aislado en un service:
post.service.tsNo mezclar lógica de filtrado compleja dentro de los componentes.
La experiencia debe permitir que alguien entienda rápido:
- qué es journal-dev
- quién soy
- qué estoy aprendiendo
- qué posts son destacados
- cómo pienso técnicamente
- cómo vengo evolucionando
La home debería incluir:
- hero con tagline
- breve descripción del proyecto
- posts destacados
- sección “Actualmente aprendiendo”
- acceso rápido a categorías
- link a LinkedIn/GitHub
- CTA a ver posts
Cada post debería mostrar:
- título
- fecha
- tags
- tipo
- nivel
- resumen
- contenido
- link a LinkedIn si existe
- posts relacionados si es simple de implementar
Cada post debería seguir esta lógica conceptual:
# Qué quise aprender
# Qué hice
# Problemas que tuve
# Qué entendí
# Qué haría distinto
# Próximos pasosNo todos los posts tienen que tener todas las secciones, pero esa estructura debe guiar el contenido.
Priorizar:
- estructura escalable
- código limpio
- diseño profesional
- contenido fácil de mantener
- buena experiencia de lectura
Evitar:
- hardcodear posts en componentes
- hacer componentes gigantes
- usar nombres genéricos sin intención
- sobrecargar visualmente la UI
- meter features innecesarias al principio
Quiero que generes una especificación inicial del proyecto con:
- estructura de carpetas recomendada
- modelos TypeScript necesarios
- componentes principales
- rutas
- services
- estrategia para leer posts desde JSON
- diseño inicial de la home
- diseño inicial del listado de posts
- diseño inicial del detalle de post
- próximos pasos técnicos
Después de generar la spec, proponé una implementación por etapas.