Skip to main content
Xeffen25
Back to projects
Eminence Astro Starter

Eminence Astro Starter

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

Why does this exist?

Starting an Astro project for Cloudflare Workers involves more decisions than it first looks like. The correct setup changes with the adapter, and getting every tool working together repeatedly leaves plenty of room for human error.

I wanted one opinionated starting point for the way I build websites: the site structure, Cloudflare configuration, formatting, tests, i18n, layouts, and the small accessibility pieces should already be in place. That removes things I would otherwise have to reconsider on every new project.

What does it do?

Eminence Astro Starter is a template for Astro sites deployed to Cloudflare Workers. You can create a project from it, connect a GitHub repository, and use Cloudflare Workers Builds for automatic deployments.

It includes the foundations I expect before building a real page: Astro and the Cloudflare adapter, TypeScript, Tailwind CSS with daisyUI, Svelte for interactive islands, Paraglide for Spanish and English, Vitest, Prettier, Husky, and a ready-to-use layout with fonts, a language switcher, and a skip link.

It also includes configuration and commands for the practical parts of starting a project: Wrangler types, local development, builds, deployment, formatting, tests, and CI checks. The template is intentionally empty as a website; it is there to be renamed, cleaned up, and made specific to the next project.

How did I build it?

I treated the starter as a collection of decisions that need to work together, not a list of packages to install. Cloudflare Workers is the intended deployment target, so the adapter, Wrangler configuration, server output, and scripts start from that constraint.

I kept the default structure close to a normal Astro project while adding the parts I repeatedly need. That means future projects do not have to begin by deciding where layouts, content, forms, actions, tests, and shared utilities belong.

The template is opinionated on purpose. It is meant to reduce the number of setup choices, while still leaving a clean place to remove pieces a project does not need.

Stack

  • Astro with the Cloudflare Workers adapter
  • Svelte
  • TypeScript
  • Tailwind CSS
  • daisyUI
  • Paraglide JS
  • Vitest
  • Wrangler

The hard parts

The first challenge was choosing the tools. I wanted the strongest fit available at the time, rather than adding tools because they were new or popular. For example, Biome looked promising, but it still had bugs that made it the wrong choice for this template. That taught me that a starter needs dependable defaults more than fashionable ones.

Then I had to make each tool fit the others correctly. An adapter, deployment target, formatter, i18n runtime, test setup, and component integration can all work on their own while still creating friction together. The work was in checking the seams rather than assuming individual setup guides would compose cleanly.

Finally, I needed to think beyond the first empty project. I used the starter for real projects, including Cloudflare Build Badge, and paid attention to the problems that showed up as a project developed. That taught me that a starter is only useful when its defaults still help after the first page is finished.

Impact

For now, I am the only person using the template. It is open source, though, so anyone who wants this particular set of Astro and Cloudflare Workers defaults can start from it instead of assembling them again.

If you try it, treat it as a starting point rather than a finished website: remove what you do not need, replace the branding, and make the project yours.

Links