gerboni: e-commerce CMS system with support agent.
An e-commerce store selling the coats of arms of Latvian cities on shirts. Live, taking Stripe payments, and runnable by one person, because the back office is designed like operational tooling and the support agent can actually do things.
The context
Every Latvian city has a coat of arms, and most Latvians can name three. GERBONI turns that heraldry into a product line (ten cities, six colours, six sizes, 360 SKUs), and it is a real shop with real payments, not a portfolio demo. So the real design problem turned out to be everything that happens after the order, not the storefront.
The bet
One person can run a retail operation end to end if the operational load is designed away rather than endured. Two moves carry that bet: a back office built with the care usually reserved for the customer side, and a support agent with real tools instead of scripted sympathy.
The design decisions
The admin panel is a product, not a chore.
An order pipeline that carries each purchase from pending to delivered, refunds handled in place, stock alerts with thresholds, CSV export for the accountant. Operational tooling earns its keep in the worst hour of the week, so it is designed for that hour.
The agent has hands.
Support runs around the clock on a Claude-powered agent over WebSocket, with tools for order status, refund requests and natural-language product search. The same architecture rule as my transit platform: the agent acts within its tools, and ownership stays human. A support bot that can only apologise is a complaint form with a typing indicator.
Guest checkout is the default.
An account is a reward for a good first experience, not a toll on the way in. Wishlist, reviews and recently-viewed reward the return visit instead of gating the first one.
Heritage carried by restraint.
A serif wordmark, flat heraldic marks, deep-red accents, Latvian first with an English toggle. The crests are the brand; the design's job is to stay out of their way.
What shipped
Live with Stripe checkout and shipping across Latvia, Estonia and Lithuania. Designed and built solo: Next.js 16 storefront, FastAPI behind it, PostgreSQL underneath, deployed with Docker and Kubernetes configs. AI-powered recommendations and recently-viewed round out discovery without ever interrupting it.
What I learned
Commerce is where craft meets consequence: a confusing refund flow is not a usability finding, it is a chargeback. The storefront earns the order; the back office earns the second one. Designing the admin panel as carefully as the shop window is what makes a one-person business possible at all.