Velvet Emporium

Brand identity, storefront, and admin workflows for a new Nairobi boutique.

Velvet Emporium storefront showing a filtered shoe collection
Ecommerce2026Visit site

Intro

Velvet Emporium was a new Nairobi boutique launching from the ground up. I built its brand identity, customer storefront, and internal system for running the business.

A new boutique needs to earn trust quickly, but a polished storefront is only part of the work. Products, stock, orders, delivery, payments, and content also need a reliable system for the team to manage once customers start buying.

I built the brand and software as one system so the customer experience and the team’s daily work would support each other from launch.

My role

I designed and built Velvet Emporium’s brand, storefront, and admin system. I covered the customer experience as well as the tools the team uses to manage products, inventory, orders, payments, and delivery.

I built it with React, Vite, Hono, and Cloudflare D1, and integrated Clerk for authentication, Paystack for payments, Sanity for content, and Resend for email notifications. I also handled deployment and launch verification.

Solution

The storefront carries Velvet’s visual identity into a focused shopping experience. Customers can browse the catalogue, choose the available options, temporarily reserve stock, pay through Paystack, and receive an order confirmation.

Velvet Emporium storefront homepage with boutique navigation and featured products
The visual system carries Velvet's identity through the shopping experience.
Velvet Emporium product page with product imagery, details, and purchase controlsVelvet Emporium Shopping Bag showing a product, delivery location, and order summary
The product page and Shopping Bag guide customers from selection to checkout.
Velvet Emporium Help Centre showing FAQs and shipping and returns information
The Help Centre gives customers quick answers about delivery, payments, and returns.

The admin gives the team one place to manage products, categories, inventory, orders, delivery fees, fulfilment, refunds, and content. The store’s operational data stays separate from the CMS, which is used for editorial content and images.

Process

I treated the brand, storefront, and admin as one product. The brand uses lilac, off-white, charcoal, silver, and champagne. I carried those choices into the storefront, while keeping the admin focused on stock and order management.

I kept content and commerce separate. Cloudflare D1 stores products, variants, stock, orders, payments, refunds, and delivery data. Sanity stores editorial content and images, while Clerk handles sign-in and D1 controls who can access the admin.

During checkout, the system reserves stock before starting payment with Paystack. It confirms the payment before changing the order or stock. Payment notifications can be delayed, so scheduled checks catch missed updates. Email runs separately, so a failed notification cannot undo a completed order.

The first release is focused on what the boutique needs now. Velvet supports boutique pickup and delivery across Nairobi, but does not include customer accounts, loyalty systems, multi-currency checkout, or marketplace features.

Lessons

An ecommerce launch is an operations project as much as a storefront project. A strong visual identity gets attention, but reliable stock, payments, delivery, and admin tools keep the shop running.

Each part of the system needs a clear responsibility. Cloudflare D1 is the source for operational data such as prices, stock, orders, and payments. Sanity manages editorial content, while the storefront handles temporary interface state. The browser never decides the final price, total, stock, or payment status.

Scope is part of the design. Velvet’s first version supports the transactions and delivery process the boutique uses now. Leaving out accounts, subscriptions, and other general ecommerce features kept the work focused on launch.