Over the past year, I’ve transitioned my websites to Azure Blob Storage combined with Cloudflare Workers. This setup is inspired by Troy Hunt’s hyperscaling approach, and it’s been transformative for performance and scalability.
Why Make the Change?
Recently, I’ve started focusing more on SEO and ensuring my sites appear in AI-generated summaries. Tools like Ahrefs can help audit and improve your SEO game for free. A big part of this is maintaining consistency in links, OpenGraph tags, and other metadata.
Another critical factor is optimizing Core Web Vitals, which are essential for ranking. Achieving high scores requires careful handling of JavaScript loading and hosting your site on a fast, geographically distributed platform close to your audience.
What Changed in My Workflow?
I’ve always preferred lightweight tools, generally (but not always) avoiding heavyweight JavaScript frameworks like React or Svelte. However, after working professionally with Next.js, I’ve come to appreciate the combination of server-side rendering (SSR) and the flexibility of web components (or JSX components in this case).
While I still value a static-first approach, I’ve started using Astro for my projects. Astro allows you to build static sites while easily transitioning to SSR or adding interactivity where needed through its “islands architecture.”
To get started, I used this minimal portfolio theme for my site. Although I’ve made several modifications, it was a solid foundation. Astro’s modern approach to SSG and its flexibility for advanced use cases make it an excellent choice, especially for those not already entrenched in the React ecosystem.
Why Not Just Use Next.js?
Modern React frameworks like Next.js offer similar features, such as server components and static site generation. However, React’s ecosystem can be overwhelming for newcomers. Astro feels lighter and more approachable, especially if you’re looking for a solution that prioritizes static-first workflows.
Deployment Pipeline
I’ve automated my deployment process with a continuous integration/continuous deployment (CI/CD) pipeline. Pushing changes to the main
branch in GitHub triggers a GitHub Action, which:
- Deploys the site to Azure Blob Storage.
- Purges the Cloudflare cache.
This setup eliminates the manual errors associated with pushing sites via GUI or command-line tools. It also allows for deployment previews through GitHub pull requests. While Netlify’s deploy previews are popular, it’s just as easy to self-host preview deployments if needed.
For dynamic server-side functionality, such as email automation, I rely on Cloudflare Workers, which can also be deployed via GitHub Actions.
Does it actually matter (in a measurable way)?
Yes!
You can run this for your own site using the free Pagespeed Insights service.
As mentioned above, you can also measure the health of your site from an SEO point of view using services like ahrefs:
This was quite easy to achieve after a little measurement and adjustment (mostly things like caching and image formats).
I’ve put together a fast, scalable, and modern hosting setup using Astro, Cloudflare Workers, and Azure Blob Storage. It works great for my performance and SEO needs. If you’re thinking about making a similar move, these tools can definitely help, though you’ll need to piece some things together with scripts and API calls across different providers. That’s a trade-off I chose—using separate providers for storage, and edge servers. While working with just one cloud provider might be more convenient, I like having the flexibility to swap out parts of the stack whenever it makes sense.