build · 2026 · Multi-tenant SaaS · web, Android, Windows

Hsaing POS

Offline-first POS for clothing & fabric stores

Founder-engineer · full-stack & offline architecture · Clothing & fabric retailers · Myanmar

~60

Offline ops

3 platforms

Web · Android · Windows

7 methods

Payments

Postgres RLS

Tenancy

Challenge

Myanmar clothing and fabric shops sell variants, sell cloth by length, take five kinds of mobile payment, run Facebook Live orders — and lose internet daily. Generic POS tools handle none of that, and a dropped connection means a stopped till.

Approach

  • 01Built offline-first from day one: about 60 operations — sales, returns, credit, POs, transfers — run fully offline on Dexie and auto-sync idempotently on reconnect.
  • 02Isolated every shop with PostgreSQL row-level security, so tenants can never see each other's data even if a query is wrong.
  • 03Modelled apparel properly: size × colour matrix with auto-generated SKUs, fabric sold by feet, yards or meters with remaining-length tracking, EAN-13 per category.
  • 04Shipped one codebase to three platforms — web PWA, Android via Capacitor and Windows via Electron — with ESC/POS printing over Bluetooth, Serial, Android and Windows.
  • 05Ran it like a product: Docker + Caddy deploy, nightly backups, subscription billing tier and an admin panel with TOTP 2FA.

Features

Selling

  • ·Instant barcode / SKU scanning with a USB scanner or the phone camera, plus one-scan quick sale
  • ·Fabric sold by length in feet, yards or meters with automatic remaining-length tracking
  • ·Split payments across cash, KBZPay, WavePay, AYA Pay, CB Pay, card and bank transfer
  • ·Hold and resume carts, manager-approved discount limits, shift open/close with cash-drawer reconciliation
  • ·Returns, exchanges and voids with automatic stock correction

Credit & customers

  • ·Credit sales with balance collection
  • ·Layaway with reserved stock and installments
  • ·Customer profiles, loyalty points, duplicate merging and promotions

Built for apparel

  • ·Size × colour variant matrix with auto-generated SKUs, mixed-colour items, per-colour images and size charts
  • ·Brands, seasons / collections and EAN-13 barcodes with a prefix per category
  • ·Sticker studio for barcode labels and hang tags — roll, A4 sheet or mobile printers, Burmese numerals, skip used A4 slots

Inventory & purchasing

  • ·Stock-in, adjustments, branch transfers and staged stock counts (plan → count → review)
  • ·Reorder lists and purchase orders with partial receiving and landed-cost allocation
  • ·Visual store map of floors, racks and shelves showing where each item sits

Online selling

  • ·A storefront for every shop — cart, checkout, payment-slip upload and order tracking
  • ·Facebook Live order management with stock reservation, COD and courier tracking

Offline & hardware

  • ·~60 operations fully offline with idempotent auto-sync on reconnect
  • ·ESC/POS receipts over Bluetooth, Serial, Android native and Windows — full Burmese-script receipts

Insights & control

  • ·Sell-through, dead stock, margin and net-profit reports with Excel export
  • ·Daily sales report delivered to the owner's own Telegram bot
  • ·Four staff roles, multi-branch, full audit logs, subscription billing and an admin panel with TOTP 2FA

Outcomes

  • ▸A till that keeps selling through outages and reconciles itself afterwards
  • ▸Local payments built in — KBZPay, WavePay, AYA Pay, CB Pay, cash, card, bank transfer
  • ▸From shop floor to Facebook Live to the owner's Telegram — one system

Hsaing (ဆိုင်) means shop — and that's the brief: everything a Myanmar clothing or fabric shop does in a day, in one system that doesn't stop when the internet does.

The hard parts are invisible on purpose: idempotent offline sync, row-level tenant isolation, cloth sold by length, and Burmese receipts on cheap thermal printers.

For hiring managers, this is the depth signal — offline data, security, hardware and payments, shipped to web, Android and Windows from one codebase.

Stack

Next.js 16React 19TypeScriptTailwind 4PrismaPostgreSQL RLSNextAuthDexie PWACapacitorElectronDocker + Caddy

Running retail that can't afford a dead till? Let's talk about offline-first POS for your shops.