Skip to content
kaleemsajid.com
← All projects

Lead Developer

2023-2025

Novelis

The corporate WordPress platform for Novelis, the world's largest aluminum recycler, with custom Gutenberg components plus a bespoke plugin for cloning content between AWS environments.

Turned environment refreshes from a manual, error-prone chore into a repeatable operation, and gave editors a consistent library of custom blocks to build with.

WordPress PHP Gutenberg AWS MySQL JavaScript

The problem

Novelis is the world’s largest aluminum recycler and rolled-aluminum producer, a global industrial brand whose corporate site runs on WordPress, hosted on AWS across three environments (development, staging, and production).

Working across multiple environments is standard practice everywhere else in software, but WordPress has no native story for it. Content lives in the database, URLs are baked into that content, and media accumulates in uploads, so keeping a staging environment that actually resembles production means periodically hand-migrating all of it: database dumps, search-and-replace on URLs, media syncs. Done manually, it’s slow and easy to get wrong, so it happens rarely, and teams end up testing changes against stale content.

The approach

As lead developer on the account, my work ran on two tracks.

For the editorial side, I built custom Gutenberg components: a library of on-brand blocks the content team could compose pages from without touching code or a developer.

For the workflow side, I built a migration plugin that clones one environment onto another (production to staging, staging to development, whichever direction the team needed). It packages up what makes a WordPress environment (the database and content, with environment-specific URLs handled in the process) so that a refresh becomes a repeatable operation instead of a checklist of manual steps.

The outcome

Environment refreshes stopped being an event. The team could pull a fresh copy of production into staging before a release and test against real, current content rather than whatever staging had drifted into, which is exactly the safety net you want on a high-visibility corporate site. And the custom block library kept day-to-day publishing in the hands of the content team, with development effort reserved for new capability rather than routine page builds.