Veda Fashion
Built a storefront and admin system for an established boutique moving beyond Instagram and WhatsApp sales.

Intro
Veda Fashion was already an established Nairobi boutique with products, customers, and demand coming through Instagram and a WhatsApp catalogue.
Those channels worked for discovery and personal sales conversations, but they were not enough to run the business cleanly. Availability was hard to keep accurate, customer history lived inside chats, and every order depended on manual coordination.
I built a storefront and admin system that turned that demand into a complete ecommerce workflow while keeping the boutique’s existing sales habits in view.
My role
I designed and built the customer experience and the operational system behind it.
- Storefront, product, cart, checkout, and confirmation flows
- Admin information architecture and workflow design
- React, TypeScript, TanStack Router, and TanStack Query development
- Hono API and Cloudflare D1 commerce architecture
- Inventory, order, customer, payment, and fulfilment modelling
- Clerk authentication, Paystack payments, Sanity assets, Sentry monitoring, and Cloudflare deployment
Solution
The storefront gives customers a direct path to browse abayas, bags, shoes, sunglasses, and perfumes. Product pages expose the relevant colour or size options, and out-of-stock items remain visible without allowing an invalid purchase.


The admin gives the team one place to manage products, stock, orders, customers, delivery, promotional codes, payment events, and store settings.


Process
I designed the system around the way the boutique already sold rather than replacing everything at once. Customers still receive personal support through familiar channels, but browsing, stock checks, checkout, and order records now have a reliable home.
D1 owns products, stock, orders, customers, delivery zones, and promotional codes. A Hono API handles storefront reads and protected admin actions. Sanity stores editorial content and product imagery, while Clerk identity plus a D1 allowlist protects admin access.
Checkout validates server-owned prices and stock, reserves inventory, and creates a pending order before Paystack initialisation. Webhooks, confirmation-page verification, and a scheduled reconciler all converge on the same fulfilment logic so repeated or delayed payment events do not duplicate stock changes.
The admin grew around real operating areas: overview, orders, payment events, customers, inventory, products, settings, and internal help. List filters and pagination live in the URL so an operator can refresh or share the exact working state.
Lessons
Moving a business beyond Instagram and WhatsApp does not mean removing the personal sales relationship. The useful move is to give product availability, checkout, and order history a stable system while letting support remain human.
The admin deserves the same design attention as the storefront. Inventory adjustments, payment events, delivery fees, fulfilment transitions, and customer lookup are the product for the people operating the boutique.
Payment success and stock movement must converge through one idempotent path. Webhooks can be delayed, customers can refresh confirmation pages, and scheduled reconciliation can find missed events. The order should settle once regardless of which path gets there first.
Veda also became an architecture reference for Velvet Emporium. Reusing the ownership boundaries and payment model saved work, while keeping the two boutiques visually and operationally distinct.