Saltar al contenido principal
Xeffen25
Volver a proyectos
Eminence Astro Starter

Eminence Astro Starter

  • Astro
  • Svelte
  • TypeScript
  • Tailwind CSS
  • Cloudflare Workers

¿Por qué existe?

Preparar un proyecto de Astro para Cloudflare Workers implica más decisiones de las que parece al principio. La configuración correcta cambia según el adaptador y hacer que todas las herramientas funcionen juntas una y otra vez deja demasiado margen al error humano.

Quería un punto de partida opinado para mi forma de construir webs: la estructura del sitio, la configuración de Cloudflare, el formateo, los tests, el i18n, los layouts y las pequeñas piezas de accesibilidad ya deberían estar resueltos. Así no tengo que volver a pensar en lo mismo con cada proyecto nuevo.

¿Qué hace?

Eminence Astro Starter es una plantilla para sitios Astro desplegados en Cloudflare Workers. Puedes crear un proyecto a partir de ella, conectar un repositorio de GitHub y usar Cloudflare Workers Builds para desplegar automáticamente.

Incluye la base que espero tener antes de crear una página real: Astro y el adaptador de Cloudflare, TypeScript, Tailwind CSS con daisyUI, Svelte para islas interactivas, Paraglide para español e inglés, Vitest, Prettier, Husky y un layout listo para usar con fuentes, selector de idioma y enlace para saltar al contenido.

También incluye la configuración y los comandos para las partes prácticas de arrancar: tipos de Wrangler, desarrollo local, builds, despliegue, formateo, tests y comprobaciones de CI. La web de la plantilla está vacía a propósito; está para renombrarla, limpiarla y hacerla específica para el siguiente proyecto.

¿Cómo lo construí?

Traté la plantilla como un conjunto de decisiones que tienen que encajar, no como una lista de paquetes que instalar. Cloudflare Workers es el destino de despliegue previsto, así que el adaptador, la configuración de Wrangler, la salida de servidor y los scripts parten de esa condición.

Mantuve la estructura por defecto cerca de un proyecto Astro normal y añadí las piezas que necesito repetidamente. Así los proyectos futuros no empiezan decidiendo dónde van los layouts, el contenido, los formularios, las acciones, los tests y las utilidades compartidas.

La plantilla es opinada a propósito. Busca reducir las decisiones de configuración, dejando a la vez un lugar claro para quitar lo que un proyecto no necesite.

Stack

  • Astro con el adaptador de Cloudflare Workers
  • Svelte
  • TypeScript
  • Tailwind CSS
  • daisyUI
  • Paraglide JS
  • Vitest
  • Wrangler

Las partes difíciles

La primera dificultad fue elegir las herramientas. Quería las que mejor encajaran en ese momento, no añadir herramientas solo por ser nuevas o populares. Por ejemplo, Biome parecía prometedor, pero todavía tenía bugs que lo hacían una mala opción para esta plantilla. Aprendí que un starter necesita defaults fiables más que herramientas de moda.

Después tuve que hacer que cada herramienta encajara correctamente con las demás. Un adaptador, el destino de despliegue, el formateador, el runtime de i18n, los tests y la integración de componentes pueden funcionar por separado y aun así generar fricción al juntarlos. El trabajo estuvo en comprobar esas uniones, no en dar por hecho que las guías de configuración individuales se compondrían bien.

Por último, tenía que pensar más allá del primer proyecto vacío. Usé la plantilla en proyectos reales, incluido Cloudflare Build Badge, y fui viendo los problemas que aparecían cuando un proyecto crecía. Aprendí que un starter solo es útil si sus defaults siguen ayudando después de terminar la primera página.

Impacto

Por ahora soy la única persona que usa la plantilla. Aun así, es open source: quien quiera este conjunto concreto de defaults de Astro y Cloudflare Workers puede partir de ella en vez de montarlos de nuevo.

Si la pruebas, tómala como un punto de partida, no como una web terminada: quita lo que no necesites, reemplaza la identidad y haz el proyecto tuyo.

Enlaces