
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 /projects you can now see my own projects
- Under /about 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

Mar 25, 2026 · 14 min read
The new Microsoft Testing Platform for .NET: An introduction with practical samples and migration guidance
Testing in .NET has historically been associated with VSTest. That choice was reasonable for a long time because VSTest offered broad …

Mar 17, 2026 · 15 min read
GitHub Copilot - Custom Agents for Full-Stack Teams: A Practical Operating Model for .NET, React and Azure
GitHub Copilot custom agents allow teams to define specialized AI assistants, each with its own role, tool access and behavioral boundaries. …

Mar 10, 2026 · 15 min read
.NET NuGet Trusted Publishing with GitHub Actions
Publishing NuGet packages has traditionally required one uncomfortable compromise: a long-lived API key had to exist somewhere in the …
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.

Comments