Skip to content
  • English Deutsch

benjamin-abt.com

Performance is a feature | Cloud - AI - Azure - .NET - Sustainability

  • Home
  • Blog
  • Portfolio
    • Overview
    • Workshops & Training
    • Publications
  • Contact
  • Home
  • Blog

From ASP.NET Core to Hugo: My Blog's Migration to Cloudflare

From ASP.NET Core to Hugo: My Blog's Migration to Cloudflare
July 7, 2025 4 min read BEN ABT
.NET ASP.NET Core Hugo Cloudflare SchwabenCode

Like many developers, my blogging journey started with WordPress. More than 20 years ago. It was convenient, widely supported and quick to set up. But over time, the drawbacks began to pile up: security issues, constant updates, performance tuning, plugin juggling, costly – the overhead was real. I wanted something more streamlined, something that gave me control without stealing my time.

From WordPress to ASP.NET Core

When ASP.NET Core was introduced in 2015, I saw an opportunity. I decided to build my own blogging engine. Hosting it on Azure was straightforward and cost-effective. More importantly, it became more than just a blog – it was a sandbox.

I had around 50,000 unique visitors per month, which made it a perfect platform to experiment with the latest ASP.NET Core features in production. Every new release from .NET gave me a reason to explore, test and apply fresh ideas – insights I could directly bring into customer projects.

Writing posts in Markdown was simple and effective. The setup just worked. For a long time, it was the perfect balance of control and productivity.

Why I Decided to Migrate Again

But things changed.

Over the last few years, I’ve been gaining deep experience with ASP.NET Core through larger platforms like mycsharp.de , which I’ve completely rebuilt with it. That experience gave me all the technical exposure I needed. I didn’t feel the need to maintain another custom engine just for the sake of learning.

Meanwhile, Cloudflare’s developer ecosystem started to look incredibly promising. I already have real-world projects running entirely serverless on Cloudflare and I was eager to explore more of what the platform could offer – especially with Cloudflare Pages and Workers. Their roadmap aligns with many of the challenges and needs I see in future customer projects.

I recently migrated my employer’s website – Medialesson – to Hugo hosted on Cloudflare Pages. The developer experience was fantastic: blazing fast builds, GitHub Actions for automation, zero maintenance overhead and instant deploy previews. I was and I am hooked.

So I decided to take my personal blog the same route – with a twist: Hugo on Cloudflare, powered by GitHub Copilot.

GitHub Copilot as a Migration Assistant

The migration from ASP.NET Core to Hugo wasn’t just a copy-paste job. I had several goals:

  • Preserve all existing content (Markdown made this easier)
  • Migrate custom routing and permalinks. Luckily my blog post paths are perfect and match all recommendations.
  • Recreate certain dynamic features (like tag pages and archive listings)
  • Set up a smooth CI/CD pipeline with GitHub Actions
  • Optimize the whole thing for Cloudflare’s edge delivery
  • Optimize SEO

This is where GitHub Copilot came in. I used it as a pair-programmer throughout the migration:

  • It helped generate the initial config.toml and asset structure for Hugo
  • It assisted in writing Go templates for the new theme
  • It suggested GitHub Actions workflows for deploying to Cloudflare Pages
  • It even helped with Worker script tweaks where I needed custom redirects and headers

Copilot didn’t replace me, but it sped me up tremendously - especially when I hit those “How did Hugo do this again?” moments.

New content

I have also taken the opportunity to update my content.

  • My personal site, which it used to be, is now benjamin-abt.com . I will use schwabencode.com exclusively for my freelance work.
  • Under /portfolio you can now see my own projects
  • Under /portfolio you can see a kind of CV, with my work experience and my client projects
  • Under /contact you have the possibility to contact me directly.
  • The content is now english-only.

The Result

Today, my blog:

  • Runs 100% static on Hugo
  • Deploys instantly via GitHub Actions
  • Is globally distributed via Cloudflare Pages + Workers
  • Requires zero patching or maintenance
  • Is cheaper, faster and more future-proof than ever
  • I still write in Markdown. But now the publishing process is even cleaner and the platform underneath is built for scale and experimentation.
  • Unfortunately, Cloudflare does not yet support .NET - something they really need to deliver.
  • Cloudflare offers me its own URLs for pull requests by default - i.e. my blog post reviews; something that only works on Azure (but also AWS and Co) with very high effort.

What’s Next?

This migration marks a shift: from ASP.NET Core as my personal tech playground to Cloudflare as my new edge-native lab. Cloudflare Workers give me a lot more options for features. Some of the things I’ve always wanted to do are now a little easier to implement.

If you’re building modern, fast, low-maintenance sites - whether for yourself or your customers - Hugo + GitHub + Cloudflare is a stack that’s hard to beat. And with Copilot in the mix, you can focus more on content and ideas and less on plumbing.

Related articles

ASP.NET Core Form protection with Cloudflare's Turnstile

Feb 29, 2024 - 7 min read

ASP.NET Core Form protection with Cloudflare's Turnstile

TLDR; You can see the full sample in my GitHub repository BEN ABT Samples - ASP.NET Core Form protection with Cloudflare’s Turnstile

Production Rate Limiting in ASP.NET Core

Nov 3, 2026 - 16 min read

Production Rate Limiting in ASP.NET Core

Most ASP.NET Core rate-limiting examples stop after registering a fixed window. That is enough to demonstrate the middleware, but it is not …

Problem Details in ASP.NET Core and .NET 11

Oct 5, 2026 - 12 min read

Problem Details in ASP.NET Core and .NET 11

builder.Services.AddProblemDetails() registers infrastructure. It does not create an error contract. An ASP.NET Core request can fail during …


BEN ABT

BEN ABT

Ben is Chief Engineering Officer and Principal Software Engineer at Medialesson.de, with a strong focus on .NET and Microsoft Azure. In his professional role, he designs and builds highly scalable platforms for hybrid and cloud-based scenarios. He also advises companies and C-levels on migrating to the sovereign cloud.

He runs myCSharp.de, the largest and most active German-speaking C# community forum, actively contributes to both his own and external open-source projects and regularly shares his knowledge through his blog, at community events, conferences and as a writer for technical magazines.

Let's Work Together

Looking for an experienced Platform Architect or Engineer for your next project? Whether it's cloud migration, platform modernization or building new solutions from scratch - I'm here to help you succeed.

New Platforms

Modernization

Training & Consulting

Contact Me
X Facebook LinkedIn WhatsApp
Back Next Blog Post

Open for work!

Contact Me
BEN ABT BEN ABT Software Engineer · Microsoft MVP Passionate about .NET, Azure, performance optimization and sustainable software engineering.

Medialesson GmbH Logo

Microsoft MVP Logo

Recent posts

View all
Production Rate Limiting in ASP.NET Core

Production Rate Limiting in ASP.NET Core

Nov 3, 2026
The Big Decimal Bugfix with .NET 11

The Big Decimal Bugfix with .NET 11

Nov 2, 2026
Distroless, Chiseled or Alpine: Choosing a .NET Base Image

Distroless, Chiseled or Alpine: Choosing a .NET Base Image

Oct 27, 2026
Stop Using nginx as Your Default Static File Server in Docker

Stop Using nginx as Your Default Static File Server in …

Oct 24, 2026
Containerizing .NET in 2026 Without a Dockerfile

Containerizing .NET in 2026 Without a Dockerfile

Oct 20, 2026

Tags

.NET (195) Csharp (99) ASP.NET Core (49) Azure (41) DevOps (17) Docker (15) Microsoft (14) EF Core (11) Microsoft MVP (11) Security (11) AI (10) GitHub (10) GitHub Copilot (10) ASP.NET (9) Synology (9) .NET 11 (8) Architecture (8) Raspberry (8) Azure Functions (7) Cloudflare (7)
benjamin-abt.com

About BEN

Benjamin Abt is a Software Engineer, Platform Architect and Microsoft MVP specializing in .NET, Azure, cloud architecture, performance optimization and sustainable software development.

Connect

  • Follow me on GitHub
  • Follow me on LinkedIn
  • Follow me on Mastodon
  • Microsoft MVP profile
  • Follow SchwabenCode on GitHub
  • Follow me on X

Quick Links

  • Portfolio
  • Blog
  • Workshops & Training
  • Publications
  • Get in Touch
  • Sitemap
Open for Work

© Copyright Benjamin Abt & SchwabenCode | 2011 - 2026

Content licensed under CC BY 4.0 unless otherwise noted.

  • Impressum
  • Privacy
  • Contact