Omek Storefront
Omek Gigs Appliances sells home appliances from stores in Kumasi and Accra, but their WooCommerce site was working against them. Free delivery triggered at ₵5,000 instead of ₵20,000, the contact page emailed an address nobody owned, and 92 products sat under a misspelled category. I audited and fixed the live site first, then rebuilt the shopfront as a headless Next.js storefront on the same WooCommerce data, with Paystack and Hubtel checkout, SMS notifications, and a custom admin for orders and stock. 151 of their 267 products are live so far.

What the audit found before anything was built
The first job was not building. It was reading the shop the way a customer reads it, on 3 July 2026, and writing down everything that was wrong. At that point it was WordPress with WooCommerce behind it, carrying 267 products.
Some of what I found was costing money directly. The About page promised free delivery on orders over five thousand cedis. The contact page and the footer said twenty thousand. Both were live at the same time, which is the sort of contradiction a customer screenshots. The owner confirmed twenty thousand was the real figure.
Some of it was quietly embarrassing. The email link on the contact page pointed at a placeholder address nobody owns, so anyone who clicked it wrote to nothing. Ninety two products sat under a category spelled Televsion. The description Google was showing for the homepage said applainces. The footer said Greate Accra Region on every page of the site.
And some of it simply disagreed with itself: two store addresses, two sets of opening hours and two WhatsApp numbers, none of them matching.
The cheap fixes went first, and did not wait for the rebuild
None of that needed new software, so none of it waited for any. On the same day I renamed the category without changing its web address, so no existing link broke, pointed the email link at the shop inbox, set the delivery threshold to twenty thousand on every page that mentions it, corrected the spelling, listed both stores properly, and put the opening hours back to the ones the shop actually keeps.
That order is deliberate. A rebuild takes months. A shop quoting the wrong delivery threshold is losing money this week.
Then the shop itself
The new storefront is a separate front end reading the same WooCommerce catalogue, so the products never had to move and the shop keeps working while it is replaced.
Speed was the reason it exists. Before the work, opening the shop on a phone meant eight seconds before anything appeared and just over nineteen before the main picture finished loading. Product photographs were being requested from the shop domain rather than from the server that actually holds them, so every one took a detour. The page asked for the header, then the products, then the settings, one after another, when it could ask for all three at once. Analytics and the advertising pixel loaded at the exact moment the phone was busiest. Six manufacturer logos and four payment logos downloaded immediately, competing with the product photograph for the same connection.
The rest is the plumbing that is only visible when it is missing. Old product links now land on the page that holds the product instead of a dead end. Nested category addresses stopped being swallowed by a catch-all rule. An address that does not exist answers with a real 404 rather than a page that looks fine to a person and looks alive to Google. There is a product feed for Google Merchant Center, and customers are told when their order status changes.
Checkout takes Paystack and Hubtel. The admin is custom and covers orders, stock, categories, coupons, reviews and enquiries, including flash deals priced against competitor listings rather than against an invented discount. 151 of the 267 products are live so far.
What it measures at now
The table below is the result, mobile and desktop, before and after. The line worth pointing at is the main picture: three and a half seconds instead of nineteen and a third.
Accessibility, best practices and search readiness moved as well. Those were not the point of the work. They moved because most of what makes a page fast also makes it well built.
One thing this page does not do. It says the shop got faster and it says exactly how that was measured. It does not put a sales figure beside it, because I do not have one I could stand behind.
Measured before and after
| Measurement | 6 July 2026 | 21 August 2026 |
|---|---|---|
| Mobile | ||
| Performance score | 50 | 88 |
| Time until anything appears | 8.0s | 1.7s |
| Time until the main picture loads | 19.3s | 3.5s |
| Time until the page looks finished | 9.2s | 4.6s |
| Time the page spends frozen | 300ms | 20ms |
| Layout shifting as it loads | 0 | 0 |
| Accessibility score | 85 | 93 |
| Best practices score | 92 | 100 |
| SEO score | 92 | 100 |
| Desktop | ||
| Performance score | 78 | 97 |
| Time until anything appears | not recorded | 0.3s |
| Time until the main picture loads | not recorded | 0.7s |
| Time until the page looks finished | not recorded | 0.8s |
| Time the page spends frozen | not recorded | 140ms |
| Layout shifting as it loads | not recorded | 0.001 |
Both runs were taken with pagespeed.web.dev, mobile, emulated Moto G Power, against https://omekgh.com/ which resolves to https://www.omekgh.com/. After: 21 August 2026, 4:27 PM GMT, Lighthouse 13.4.1, throttled to Slow 4G. Before: 6 July 2026. That report was not saved, but pagespeed.web.dev exposes no throttling control and applies the same Slow 4G emulation to every mobile run, so the two are measured the same way.
Where it stands Products live, build in progress
Want the same thing done properly?
Tell me what you are building and what is in your way. I will tell you what it takes, in plain numbers, before you commit to anything.
Start a conversation