![](/media/images/brasenwall-cover.png)

blog November 10, 2026 6 min read

# Brasenwall: Rebuilding a Website the Client Can Run Himself

How a Lagos HR firm moved from an old WordPress site to a fast, private, low-cost website its own team updates, from the handwritten brief to launch day.

 [![Tide](/media/images/tide.png) Tide](/blog/author/tide)

Share this post

[](https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.aztemi.com%2Fblog%2Fbrasenwall-rebuilding-a-website-the-client-can-run-himself&text=Brasenwall%3A%20Rebuilding%20a%20Website%20the%20Client%20Can%20Run%20Himself "Share on X")[](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.aztemi.com%2Fblog%2Fbrasenwall-rebuilding-a-website-the-client-can-run-himself "Share on LinkedIn")[](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.aztemi.com%2Fblog%2Fbrasenwall-rebuilding-a-website-the-client-can-run-himself "Share on Facebook")Copy link

*Brasenwall Professional Services needed more than a new look. They needed a website their own team could update, one that handled candidates’ personal data carefully and cost almost nothing to run.*

Brasenwall Professional Services is an HR firm based in Ipaja, Lagos. The firm recruits senior staff for client companies, prepares students for the CIPM professional exams, and offers background checks, payroll, HR advisory and training. Earlier this year, the owner, Mr. Abe, asked me to rebuild the company website.

The old site was built on WordPress, using PHP and the Elementor page builder. It had given Brasenwall a professional presence for several years. But the business had moved on. Jobs opened and closed every few weeks, CIPM classes had new dates and photos, and each update meant going back to someone technical. Applications also arrived without a clear plan for where CVs were stored or when they would be deleted. For a firm that sells background checks, that mattered.

## Starting with how the business really works

My first plan followed the old site’s list of six services. Then Mr. Abe gave me a handwritten note describing how Brasenwall actually earns its living. It reshaped the whole project.

The business has two flagship offerings. Executive Selection is its recruitment service, which had been hidden behind a generic jobs page. CIPM Classes provides exam preparation and is the firm’s main source of income. Students register their interest online and pay offline, so there was no need for a payment system—just a clear way to sign up. Everything else, from background checks to payroll management, belongs together on one services page.

That note and a few conversations clarified the brief. Candidates needed to find roles and apply easily, especially on a phone. The Brasenwall team needed to run the site themselves without paying for monthly maintenance. Applicants’ personal data had to stay private and be deleted after 12 months. Running costs had to stay as close to zero as possible.

## Choosing the tools

The new site is built with Next.js, React and TypeScript, styled with Tailwind CSS. Page content such as services, team profiles and blog posts lives in Sanity. Applications, CVs and class registrations live in Supabase, a Postgres database with private file storage. Mailjet sends email notifications from the company’s own domain, Cloudflare Turnstile keeps spam bots away from the forms, and Netlify hosts the site.

The most important decision was where personal data should live. A content system is ideal for public pages, but CVs should never sit behind a public link, so I kept the two completely separate. CVs go into private storage, and the team accesses them through links that expire after a few minutes. A scheduled job deletes old applications every night, so the privacy notice’s 12-month promise holds without anyone needing to remember it.

Hosting taught me a lesson too. The first platform I tried looked like a good fit until load testing showed that some requests were being cut off by its processing limits. Rather than push the client onto a paid plan, we moved to another host and changed how releases work: batching updates and shipping them deliberately. It was a reminder to test hosting with realistic traffic well before launch day.

## Designing for candidates

I designed the homepage and jobs board first and got Mr. Abe’s approval on both. Then I built the remaining pages in the same visual language: Brasenwall’s blue as the main colour, a soft tint for backgrounds, and red reserved for small accents.

The jobs board got the most care because it is where candidates first meet the business. Roles can be filtered by category, location, and type. Those filters are saved in the web address, so candidates can share a filtered list on WhatsApp. Opening a role slides out a panel instead of loading a new page, and the application form asks only for the information needed.

On the technical side, pages are rendered on the server so search engines can see the full content. Images are resized and compressed automatically for each screen, and old job links redirect permanently to their new addresses to help preserve existing links and search rankings. The whole site was built and tested for phones first, since that is how most of Brasenwall’s visitors arrive.

I worked in short cycles throughout: build a section, put it on a private preview link, gather feedback, adjust. Abe saw and approved the full site on that preview before anything replaced the old one.

## The part visitors never see

The piece of work I am proudest of is not on the public site at all. It is a simple dashboard where the Brasenwall team manages everything: posting and closing jobs, reviewing applications and moving candidates through stages, creating CIPM class intakes and seeing who has registered, adding photo albums of past classes, and editing team profiles, services, blog posts, and page headlines. It also tracks the site’s costs and reminds the team before renewals are due.

The dashboard works on a phone, but it is best used on a laptop or desktop. Changes appear on the public site within seconds. I also wrote an owner’s manual with screenshots of every screen.

One question guided every decision here: could someone who is not technical post a new job in two minutes without calling me? If the answer was no, the screen was not finished.

## Launch, and what the client said

The new site went live on brasenwall.com on 21 October 2026. Applications now appear in the dashboard, and the team receives an email alert for each one. They have been updating the content themselves since launch.

> *“Our old website looked fine, but every small change meant waiting for someone else. Our jobs and class dates were often out of date, and we needed something we could manage ourselves.”*
> 
> **Abe, Brasenwall Professional Services**, on the old site

> *“Now we post jobs, update our CIPM classes and read applications ourselves, even from a phone. The site reflects what Brasenwall really does, and it costs us almost nothing to run.”*
> 
> **Abe, Brasenwall Professional Services**, on the new site

## What I took away

Looking back, the handwritten note did more for this project than any sitemap could have. Finding out what a business really sells, before designing anything, is the best investment of time I know. After that, the lessons were practical ones: build for the person who will maintain the site, decide where personal data lives before writing any code, and test hosting under real conditions early.

You can see the new site at [brasenwall.com](https://brasenwall.com) .

[#case study](/blog/tag/case%20study)[#redesign](/blog/tag/redesign)[#Next.js](/blog/tag/Next.js)

## Written by

[![Tide](/media/images/tide.png)](/blog/author/tide)

# [Tide](/blog/author/tide)

Full Stack Developer & Technical Project Coordinator

[](https://www.linkedin.com/in/Tide-Adesanya "LinkedIn")

[

Older CollectMemory: From a Birthday Idea to a Product

](/blog/collectmemory-from-birthday-idea-to-product)

[Back to blog](/blog)