Muhammad Aleem Logo
Muhammad Aleem
Loading Experience...
Ezi Website main screenshotEzi Website secondary screenshot

Ezi Website

A Next.js re-engineering project — overhauled design, new city pages, and city-specific service pages for a Canadian home services brand.

Next.jsNext.jsReact.jsReact.jsTailwind CSSTailwind CSSElementorElementor
Byte Force IT
Company
Canada
Client
Next.js
Framework
Why I built this
Ezi is a Canadian home services company operating across Ottawa, Toronto, Gatineau, and Montreal. The existing website had a dated design and no city-specific landing pages — missing out on local SEO. At Byte Force IT, I was tasked with overhauling the visual design and building out new dedicated pages for each target market.
How it works
The site is built with Next.js using dynamic routing for city and service combinations (e.g. /ottawa/plumbing). Content structure is driven by reusable React layout components styled with Tailwind CSS. Elementor templates were produced during the design phase to show options to the client before implementation.
Key decisions

Design choices

Templated city/service page structure

Rather than hardcoding 16 separate page files, I built a dynamic routing template that accepts city and service parameters, fetching localized content and SEO tags dynamically. This cut maintenance overhead dramatically.

Design consistency across city pages

Different cities needed distinct local messaging without feeling like completely different websites. Standardizing card layouts and hero sections maintained brand cohesion across all regions.

Challenges

Problems solved

Working within an existing codebase I didn't write

Inheriting someone else's Next.js project meant understanding their routing conventions, component patterns, and CSS approach before touching anything. Getting up to speed without breaking existing pages was the hardest part of the first week.

What I learned
I learned how to navigate and extend an existing production codebase responsibly. Next.js's file-based routing made adding new pages clean, but I also understood why a well-structured codebase matters — the existing code's inconsistencies slowed me down more than the actual feature work.
👋 Need a quick tour of Aleem's portfolio?