Z
Zaid
Projects
Live

Amboras

Brand brief to a live Shopify storefront in under five minutes. Describe the product, get a branded store with real products and a working checkout.

ainextjsfull-stackshopifystreaming

TL;DR

Type what you sell and who it is for. Five minutes later there is a branded storefront with real Shopify products, a working checkout, and a dashboard showing real orders.


Overview

Amboras lets a founder describe a product in plain English and receive a fully generated, Shopify-backed storefront: brand identity, copy, products, and checkout, with no design or development work. Once the store exists, a dashboard shows real order counts and revenue from Shopify, daily analytics, and an AI editor where you describe a change and the store config is patched in place.

Problem

Getting from an idea to a store that can take money still means a designer, a developer, and a week of fighting with themes. Almost all of that work is the same for every store. The only part that is actually yours is the brief.

Approach

- One brief, one stream: the brief goes to /api/generate, which opens a server-sent events stream so the browser watches each step land instead of staring at a spinner
- Typed generation: GPT-4o-mini through OpenRouter, called with a structured tool call that forces a typed StoreConfig: brand, colours, hero copy, products, testimonials, FAQ, SEO. No free text to parse
- Real commerce: products and variants are created in the connected store through the Shopify Admin REST API. The returned variant IDs power a cart permalink, so checkout is Shopify's, not mine
- Persistence behind one interface: a JSON file per store in local dev, Upstash Redis in production, with the same getStore, saveStore and deleteStore calls so the code never knows which it is talking to
- Dashboard: overview with real orders and revenue, analytics by day and by product over 7, 14 or 30 days, an AI editor that streams patches to the config, and settings for the Shopify connection

Key Decisions

- Force structured output instead of parsing: using tool_choice to demand a typed object removed an entire class of bugs where the model's prose almost matched the schema.
- Shopify as the backend: carts, payments, taxes and fulfilment are solved problems. Amboras generates the storefront and the catalogue, then hands the money part to the system that already does it well.
- Stream everything long: generation and editing both take long enough that silence feels like failure. Progress events were the difference between a demo people trusted and one they refreshed.

Outcome

Brand brief to a live store in under five minutes. Live at amboras.okzaid.com.

Related