2024 · CMS migration and modernization · Exhibit Magazine India Pvt. Ltd. · Lead engineer
TopGear India CMS
I rebuilt a motoring magazine's content management system, moving it from CodeIgniter on shared hosting to Laravel on Google Cloud with Redis caching and an edge CDN, without interrupting daily publishing.
1–3 min → 3 s
page load time, before → after
How this is measured
Load time of the home page and the article category pages before and after the rebuild (new stack, optimized SQL queries and indexes, Google Cloud, properly sized images).
70% → 30%
bounce rate, before → after
How this is measured
Bounce rate in Google Analytics before and after the rebuild.

The constraint
A busy editorial site: daily stories, galleries and reviews, traffic spikes whenever a car launches, and editors who can't stop publishing for a migration.
The legacy CodeIgniter code on shared hosting was slowest exactly when it mattered, during traffic spikes. The modernization had to happen while the newsroom kept publishing every day.
The architecture
- A full rewrite to Laravel, keeping the content model and URLs the editors and search engines already knew.
- Google Cloud instead of shared hosting, with infrastructure that could be scaled and monitored.
- Redis caching and an edge CDN in front of the application, so most page views never touch the database.
- An editor-first CMS, rebuilt around the newsroom's real publishing workflow.
- Queries and indexes fixed at the source. The slow pages came from slow SQL; the queries were rewritten and the tables indexed for how the site actually reads them.
- Images sized for the page. Every image is served at the size it is shown, instead of full-size originals.
The diagram as text
Readers are served from an edge CDN and Redis cache in front of the Laravel application on Google Cloud, which stores content in MySQL; editors publish through the rebuilt CMS.
- Readers → Edge CDN: page views
- Edge CDN → Laravel app: cache miss
- Laravel app → Redis: cached pages
- Laravel app → MySQL: on a miss
- Editors → Editor-first CMS: publish
- Editor-first CMS → MySQL: stories
Trade-offs
- A full rewrite instead of incremental patches: more work up front, but patching the old stack had stopped paying off.
- Caching aggressively means planning invalidation carefully, so published changes appear promptly without purging everything.
- Keeping every URL stable limited some structural changes, and protected years of search traffic.
Results
- Page load time on the home and category pages fell from 1–3 min → 3 s.
- Bounce rate fell from 70% → 30%, and traffic grew.
- Publishing moved from hours to minutes for the editorial team.
- The site now runs on cloud infrastructure that can be scaled and monitored.
What I'd do again
- When the platform is the problem, a clean migration is cheaper than endless patches.
- The big gains came from architecture (cloud, caching, CDN), not from micro-optimizing code.
- Editors are users too. The CMS was only a success once publishing became easier as well as faster.
Stack
- Laravel
- CodeIgniter (legacy)
- Vue.js
- MySQL
- Redis
- CDN
- Google Cloud
Related services: Web platforms and SaaS, Legacy modernization, Performance and Core Web Vitals audit, Cloud, DevOps and cost, Architecture review and due diligence.
Need something like this?
A short brief is enough to start. I’ll reply with questions, a suggested first step and when I could begin.