Project Eko: A custom e-commerce store
A custom e-commerce store built for a high-end Nigerian luxury brand
The client paid a premium to keep this work off my portfolio. So no screenshots or live link. What I can share is the thinking behind it, and that’s the part worth writing about anyway. I’ll call it Project Eko in this post.
The Brief
Project Eko is a high-end luxury brand targeting upper-middle-class and affluent Nigerian consumers with global reach. The founder came in with a clear instinct: he wanted a web presence that emitted culture and prestige.
My first conversation with him ended with a recommendation to go custom. He approved without hesitation and the tone was set.
What We Decided Not To Build
This is where the real work happened, and the part I’m most proud of.
Before a single line of code was written, my design team and I went through a long curation process with the founder. We weren’t deciding what to build, we were deciding what to leave out. Luxury communicates through restraint. Every element that didn’t earn its place on the page was a liability.
Here’s a sample of what we cut, and why:
- Generic background colors — the palette needed intention, not defaults.
- Grid product view — grid layouts read as catalogue. We wanted editorial.
- Rotating carousels — cheap, distracting, and they telegraph “we have too much to show you at once.”
- “Best Seller” badges — scarcity and social proof mechanics are for mass-market. Luxury doesn’t beg.
- “Customers also bought” — recommendation engines are for mass-markets.
- Visible inventory numbers — countdown pressure is a conversion tactic for mass-markets.
- Email pop-ups — nothing kills a first impression faster.
- “Shop Now” CTAs — we changed every instance to “Explore the Collection.” One word swap, entirely different relationship with the customer.
The founder pushed back on a few of these. We had honest conversations about conversion rates and SEO. I told him clearly that conversions are a marketing problem, not a design problem, and that optimizing for clicks on a luxury site was the wrong frame entirely. He came around. Those conversations mattered more than the code.
The Stack
SvelteKit + TypeScript for the frontend. Fast, lean, and it gives you the control you need when every interaction has to feel considered.
SQLite for the database [1] — a choice some engineers would question, but it’s the right one here. This is a read-heavy application. Customers browse, they don’t have accounts. They select, pay, and receive a confirmation email with their receipt and delivery date in a single transaction. The write load is minimal and predictable. SQLite is extraordinarily fast under those conditions, operationally simple, and eliminates an entire class of infrastructure complexity. A Postgres instance would have been engineering theatre.
Better-Auth for the admin panel and role-based access control. Open-source, self-hosted, full control over your own data. When you’re handling a client’s store credentials and order data, the last thing you want is a breach at some third-party auth SaaS taking you down with it. Better-Auth was a no-brainer.
Paystack handles Nigerian payments. Stripe handles global orders. The best providers, clean separation and rich documentation. The integration was straightforward once the product scope was locked.
How We Worked
This was a team effort between engineering and design. The design team led the visual curation. Engineering implemented that vision. The collaboration was disciplined.
Seamless execution came from planning. When the design is resolved you ship faster.
Where It Stands
The store is in staging. The founder wants to launch — and soon — but the timing is his call. It’s ready.
What I’d Take Forward
Building for luxury taught me that the best product decisions are often acts of removal. The instinct to add features, patterns, and fallbacks is strong. Fighting it deliberately, with a clear brief and a client who trusts you to have the hard conversations, produces better work.
And I’d do the curation session again on every project. Not just for luxury. For everything.
Footnotes
[1] A blog post I wrote on databases. Your team likely uses the wrong database