A conversation with Hy

What are you building?

DStore

A fashion store with admin and VietQR checkout, built by one person in 60 hours.

Live, catalog pending
How did I help
  • Product design
  • Brand & UI
  • Spec & business rules
  • AI-directed build
  • QA
Role
Design, spec, build direction
Industry
Fashion, e-commerce
Team
Just me
Timeline
60 working hours
Delivered
Storefront, admin, checkout
Stack
Next.js, Supabase, PayOS
AI summary
Who's reading? I'll show what matters to you.
  • A fashion store with its inventory admin and VietQR checkout, built by me alone in 60 working hours.
  • I wrote the spec and the rules the AI agents follow, then tested every screen and flow before handover.
  • The store is live at dstore.studio; the catalog waits on the client's licensing.
View CV

The tour: Spec first, then the build → The decisions that mattered → Code can't fix compliance

Ask about this case
DStore with demo products: the home page on desktop with its AI-made hero of two models walking over rocks under a full moon, and two phones showing the featured products and a product page for wash jacquard jeans

Small budget,
full store.

The problem

A founder with products to sell, a small budget and no team. DStore needed a storefront, an inventory admin and lookbook content, and all of it had to fit the budget.

DStore on desktop and phone with demo products: the T-shirt category filtered to size M, and a product page for wash jacquard jeans with two colour dots, sizes and a Buy now button
Demo data

Sell the local way,
from day one.

What it had to do
  • Fit storefront and admin into a tight budget, cutting everything that wasn't needed to sell.
  • Let the client make lookbook images in-house, with no money for photoshoots.
  • Take payment the way shoppers in Vietnam pay: PayOS and VietQR.
The DStore home page: an AI-made hero of two models walking over rocks under a full moon, the line MOVE IN SILENCE and a Shop now button
dstore.studio
The DStore admin in dark mode editing a product: sizes typed as tags, colours picked from a fixed list, photos grouped by colour, and the size-by-colour variant list with an on/off switch per row
Admin · Demo data

Spec first,
then the build.

How I worked

I write down the flows, screens and business rules before anything gets built. That document is the spec the AI agents build against, and I write the rules they follow so their output matches the spec, the design and the business logic.

Then I test every screen and flow against the spec. What fails goes back into the pipeline, gets rebuilt and is tested again until it passes. Only then does the build go to the client for acceptance.

  1. 01DocsFlows, screens and business rules, written first.
  2. 02Build pipelineThe AI agent pipeline that turns the spec into a build.
  3. 03Agent rulesRules that keep agent output on spec.
  4. 04TestEvery screen and flow against the spec.
  5. 05Rebuild & testWhat fails loops back until it passes.
  6. 06AcceptanceHandover for review and sign-off.

The decisions
that mattered.

The build

01A custom build, not a platform. The client owns the data and can shape the store freely, with no platform subscription and no per-order platform fee. The cost: 60 hours up front, and the store needs its own upkeep. Until the catalog launches it runs on the free Vercel and Supabase tiers, so the client pays $0 a month; a weekly scheduled job keeps the free database from pausing. Hosting moves to a paid plan once orders start.

02Six admin screens, not a full back office. A full admin would not fit a 60-hour budget. Six screens cover the core inventory tasks the client needs day to day.

03Local payment from day one. Checkout runs on PayOS and VietQR, the way shoppers in Vietnam expect to pay.

04Lookbooks without a photoshoot. A Figma Weave AI workflow turns one product photo into lookbook images, so the client makes new content without booking a shoot.

What the store costs to run
What the store costs to runShopify BasicHosted platform, Vietnam pricingHaravan Omni ProHosted platform with a web storeDStoreCustom build
Plan$25 a month, or $19 a month paid yearly680,000 VND a month (promotion; listed at 1,000,000 VND)$0 a month on the free Vercel and Supabase tiers until orders start
Fee on each orderOn top of the payment provider's own fee2%: Shopify Payments isn't offered in Vietnam, so PayOS counts as a third-party providerNone listedNone
Who owns the storeIt runs on ShopifyIt runs on HaravanThe client owns the code and the data

Shopify Basic

Hosted platform, Vietnam pricing

Plan
$25 a month, or $19 a month paid yearly
Fee on each order
2%: Shopify Payments isn't offered in Vietnam, so PayOS counts as a third-party provider
Who owns the store
It runs on Shopify

Haravan Omni Pro

Hosted platform with a web store

Plan
680,000 VND a month (promotion; listed at 1,000,000 VND)
Fee on each order
None listed
Who owns the store
It runs on Haravan

DStore

Custom build

Plan
$0 a month on the free Vercel and Supabase tiers until orders start
Fee on each order
None
Who owns the store
The client owns the code and the data
The DStore checkout in Vietnamese: name, phone and address, a choice of cash on delivery or PayOS (QR or bank transfer), and the order summary with subtotal, 30,000 VND shipping and total
Checkout · Demo data
The DStore featured products row, every product shown on a model in an AI-made lookbook image
Lookbook
After: AI-made lookbook images of the same outfit on a model from the front, the side and the back
Before: the product photo the workflow starts from, a camo T-shirt, washed flared jeans, a cap, a bag and sneakers laid flat on a grey floor
BeforeAfter
The Figma Weave canvas: two lanes, one per model, run from a talent description through portrait, editing, a multi-picture sedcard and a studio portrait to a final character sheet, then into the hero image nodes on the right
Figma Weave
The Final Character Sheet group in Figma Weave: a prompt for three full-body views, front, profile and back, run on Gemini 3 (Nano Banana Pro), giving the camo outfit on the model from three angles, then a compositor with two close-up portraits, a crop, previews and the export
Figma Weave · Character sheet
The hero part of the Figma Weave canvas: the walking pose made on Gemini 2.5 Flash (Nano Banana), Flux 2 Pro and Gemini 3 (Nano Banana Pro), a moonlit rocky background, a prompt enhancer placing the two models on the rocks, and ChatGPT Images 2.0 Edit, Relight 2.0 and Seedream v4.5 Edit runs beside it to compare
Figma Weave · Hero

Rules in the code,
not in a manual.

What the store checks

A small shop has no one to catch mistakes by hand, so the store does it. Each rule was written in the spec first, then built and tested against it.

A DStore product page for wash jacquard jeans: tapping the green colour dot swaps the main photo from the grey pair on a male model to the green pair on a female model; size 36 is crossed out in green
01 / 05 · Product page · Demo data

Pick a colour, see that colour

Every colour has its own photos, so tapping a colour dot swaps the main picture. A size that is sold out stays on the page, crossed out, and can't go in the cart.

  • A DStore product page for wash jacquard jeans: tapping the green colour dot swaps the main photo from the grey pair on a male model to the green pair on a female model; size 36 is crossed out in green
    01 / 05 · Product page · Demo data

    Pick a colour, see that colour.

    Every colour has its own photos, so tapping a colour dot swaps the main picture. A size that is sold out stays on the page, crossed out, and can't go in the cart.

  • The DStore cart with two items. After the camo T-shirt in size L is switched off in the admin, it turns grey with a red line saying it is no longer on sale, the Thanh toán (checkout) button is disabled and a red message asks the shopper to remove it
    02 / 05 · Cart · Demo data

    A changed cart can't check out.

    The cart is kept on the shopper's phone, so a product can go off sale after it was added. The cart greys it out with a red line, keeps it, and locks payment until the shopper removes it. The server checks again before it creates a payment link.

  • The DStore checkout: the shopper's name, phone and address, a switch from PayOS to cash on delivery, the order summary with a free-shipping progress bar, then the order-placed screen
    03 / 05 · Checkout · Demo data

    Prices come from the database.

    The browser sends only products, sizes and quantities. The server reads each price from the database, adds 30,000 VND shipping below 1,000,000 VND (free above), and keeps the price paid on every line.

  • The DStore admin order list. Opening an order shows its progress (awaiting payment, processing, shipping, completed) and one next step, Chuyển sang Đang giao (move to Shipping), beside Cancel; after the tap the order reads Shipping in the list
    04 / 05 · Admin · Demo data

    Orders only move forward.

    Awaiting payment, Processing, Shipping, Completed: one step at a time, never back. Only an order awaiting payment or in processing can be cancelled.

  • The DStore admin editing a product: sizes typed as tags, colours picked from a fixed list, photos grouped by colour, and the list of every size and colour pair with an on/off switch
    05 / 05 · Admin · Demo data

    Every size in every colour.

    Colours come from a fixed list, so the data stays clean; sizes are typed as tags. The admin builds every size and colour pair, each with an on/off switch.

Live,
catalog pending.

The result

The store is live at dstore.studio. The catalog is still waiting on the client's licensing: I checked the tech constraints, not the legal ones.

What DStore taught me

Code can't fix compliance. So I check it before the first screen.

On DStore I checked the tech constraints and not the legal ones. The store is live, but the catalog is still waiting on the client's licensing. Now these questions come first on every e-commerce build.

Before we start, I'll ask
  • Is the business registered for e-commerce with the Ministry of Industry and Trade?
  • Can the product sourcing pass an IP check?
  • Can checkout legally take payments on launch day?

More work

All work
Start a conversation

Have products to sell and a messy brief? Let's sort it out in 30 minutes.