DualSub for Stremio
English and your language together, on every movie in Stremio
Zeli is one app to shop fashion in Myanmar. Local brands, authentic imports and SHEIN sit in one feed and one cart, and you pay with a QR code from any banking app.

Sale banner, departments, occasions and categories above an endless feed.

Price first, then fit, delivery, payment and the shop's bundle deal.

Grouped by shop, with the next bundle step and the best voucher picked.

One QR for every banking app. The page checks for payment by itself.

A daily check-in streak that turns into money off the next order.
The idea
I shaped the product, the brand, the design system and the screens, then built the customer app in Flutter with Claude Code from a clickable prototype. The look is dense on purpose: shoppers here know SHEIN, Temu and Shopee, so a busy, fast feed feels familiar, not crowded.
The problem
Shopping fashion in Myanmar means juggling sellers, data and payment.Local brands ship in days and take cash. SHEIN takes weeks. Authentic imports sit in between. Shoppers had to use a different place for each.
Many shoppers are on prepaid data. Screens have to be light, show skeletons while loading and survive going offline.
A wrong size from abroad is a slow, costly return. The app has to help people pick right the first time.
Business goals
Shop bundles: buy 3 from one shop, save 15%. Pushed on the product page, in the size sheet and in the cart.
A fit profile, a size guide that highlights your size, and QC photos before an import ships.
Telegram or Google only. Guests browse and fill a cart, and sign in at checkout.
MMQR from any banking app, with an optional 50% deposit and cash on delivery for the rest.
Three sellers, one cart
Every product card carries a source tag, and the cart splits into shipments by seller, so delivery time and rules are never a surprise.
Buy more per order
The bundle deal follows you. A red strip on the product page, a live hint in the size sheet (add one more to unlock 15% off), and a row per shop in the cart with progress and an Add button.

Bundle strip on the product

Live hint in the size sheet

Per-shop progress in the cart
Fewer returns
Fit is designed in, not bolted on. The size guide opens over the product and highlights the shopper's size. Imported orders get QC photos before they ship, and a problem is reported by tapping the photo.

Size guide over the product

Report from the QC photos

Orders by shipment
Paying with a QR code
No card forms and no receipt screenshots. Checkout offers a 50% deposit with cash on delivery, or paying in full. The QR is valid for 15 minutes and the page checks for the payment by itself.

Deposit or pay in full

One QR, any banking app
Reasons to come back
Light game mechanics, in Zeli's own colours. A lucky spin once a day on Home, a new member gift on sign-up, a check-in streak for points, and vouchers to collect.
Every reward amount is a placeholder until the business sets the real numbers.

Lucky spin

Sign-up gift

Welcome gift

Vouchers
The design system
Every screen is built from one Flutter package, zeli_ds. Features never use a raw colour or font size: they use a semantic role, and the role comes from a palette. One change in the package restyles the whole app.
Raw values. Zinc neutrals only, plus a few commerce colours. Never used in features.
Roles like primary, page background, hairline, sale, success and gem.
Z widgets: product card, price, tags, voucher ticket, bundle banner, sheets, toasts.
A checklist in the repo, so code from Claude Code stays on the system.
Rules
Built with Claude Code
The prototype was the spec. Claude Code built the app milestone by milestone against it, and every milestone ended with the same checks: analyzer clean, tests green, no raw values in features, each screen compared with the prototype at 390 by 844.
Splash, sign-up, navigation, Home, Category, Search, Results, Product and Shop.
Cart grouped by shop, checkout, MMQR payment, and one cart calculator with its own tests.
Orders, tracking, QC report, refunds, reviews, fit profile, addresses, chat and vouchers.
Labels for screen readers, touch areas, reduce motion, a 360 px overflow pass and Burmese.
Made for Myanmar
Noto Sans Myanmar falls back after Geist, and Burmese text gets taller lines. The first strings are hand-written and waiting for a native review.
Prices in Ks, free delivery by township, cash on delivery for local shops, and a map pin so the rider knows where to go.
Photos decode at display size, feeds load in slices, and skeletons stand in while a page loads.
Search takes Burmese words, and search by photo finds items with similar colours.
What's next
Tools
English and your language together, on every movie in Stremio
Mascot, wordmark and home screen