Saltar al contenido
← Volver al blog

Construyendo este portafolio con SvelteKit

Stack, decisiones de diseño y cómo organicé el proyecto desde cero.

Este portafolio está construido con SvelteKit + TypeScript + TailwindCSS v4. Quería algo que se sintiera rápido, fuera fácil de mantener y me permitiera escribir contenido en Markdown sin complicaciones.

El stack

  • SvelteKit 2 y Svelte 5 (runes: $state, $props, $derived).
  • TypeScript con strict: true.
  • TailwindCSS v4 vía el plugin de Vite, con la configuración en CSS.
  • mdsvex para renderizar los posts del blog desde archivos .md.

La estructura

src/
├── lib/
│   ├── components/
│   ├── posts.ts
│   └── projects.ts
├── posts/
│   └── *.md
└── routes/
    ├── blog/
    └── projects/

Los datos de proyectos viven en un archivo tipado (src/lib/projects.ts) y los posts del blog son archivos Markdown con frontmatter en src/posts/. Las dos fuentes son fáciles de editar y se cargan con import.meta.glob.

Dark mode

Uso la estrategia class-based de Tailwind con un script inline antes del primer paint que aplica .dark a <html> según localStorage.theme o prefers-color-scheme. Eso evita el FOUC cuando luego conecte un toggle.

Próximos pasos

  • Conectar el campo de proyectos con un CMS ligero.
  • Añadir RSS al blog.
  • Lighthouse a 100 en mobile.

Si te interesa el código, está en GitHub.