Tech Chorus Blog Hosting Story
By Sudheer Satyanarayana
The Tech Chorus blog, started by Sudheer Satyanarayana in 2008, has evolved through various hosting technologies and software over the years. This post captures that journey, highlighting the transitions, challenges, and decisions that shaped its infrastructure.
| Era | Stack | Hosting | Why I moved on |
|---|---|---|---|
| Early days | Drupal (CMS) on LAMP | cPanel server | Patch/plugin/major-version treadmill became more work than the blog was worth |
| Transition | Lektor (static site generator) | AWS EC2 + Nginx | Upstream development and support dwindled; basic tasks got harder, not easier |
| Current | Hugo (static site generator) | AWS S3 + CloudFront | Still in use — see “Current Setup” below |
The Early Days: Drupal and LAMP
Back in the day, the blog ran on the Drupal content management system (CMS), a popular choice among developers. The LAMP (Linux, Apache, MySQL, PHP) stack dominated web hosting at the time, and Drupal was one of my favorite CMSes. The site was hosted on a cPanel server, making management relatively straightforward.
However, as time went on, maintaining Drupal became a real drag:
- Keeping up with security patches
- Updating plugins without breaking the site
- Upgrading across major Drupal versions
Eventually, I sought a simpler and more maintainable alternative.
Moving to a Static Site: Lektor
To reduce maintenance overhead, I transitioned to a static site generator. After some research, I discovered and fell in love with Lektor. With Lektor, I managed content locally on my workstation, generated the static site, and deployed it to an AWS EC2 instance running Nginx.
This setup eliminated many of the maintenance headaches associated with dynamic CMS platforms. However, over time, Lektor’s development and support dwindled, making installation and content generation increasingly difficult. When basic tasks became a struggle, I knew it was time for another transition.
Embracing Hugo
After evaluating alternatives, I switched to Hugo. So far, Hugo has proven to be a reasonable choice. It offers extensibility and customization options, though my initial expectations for an out-of-the-box experience were a bit high. That said, it’s a solid solution—at least until I find something even better.
The Current Setup: CloudFront, S3, and Automation
Today, the site runs on:
- AWS CloudFront — the CDN readers actually hit, with CloudFront functions handling URLs in Apache DirectoryIndex style
- AWS S3 — the origin bucket CloudFront serves from
- Terraform — provisions and manages all of the above as code, so the whole setup is reproducible instead of hand-clicked
- GitHub Actions — builds and deploys automatically on every push to the repository
This setup requires minimal maintenance while keeping costs optimal. While using a CDN often means relying on proprietary services like AWS CloudFront, open-source tools still do the heavy lifting underneath — Terraform for infrastructure, GitHub Actions for the pipeline.
Final Thoughts
From a dynamic Drupal site to a fully automated static site deployment, Tech Chorus has come a long way. Each transition brought valuable lessons in scalability, maintainability, and cost-effectiveness. While no setup is ever truly “final”, this current approach strikes a balance between performance, ease of use, and automation.
Looking back, the throughline isn’t really which tools I picked — it’s what each move took away. Drupal’s plugin treadmill, Lektor’s fragile local build, hand-managed servers: every transition subtracted something instead of stacking on a new layer. Antoine de Saint-Exupéry, writing about aircraft design in the 1930s, made the same observation about engineering in general — that perfection isn’t reached by adding more, but by finding what can still be removed. A decade of hosting changes taught me the same lesson about running a blog.
What does the future hold? Only time will tell. But for now, Hugo, CloudFront, and Terraform keep Tech Chorus running smoothly with minimal effort.
