Hello, I'm Bùi Sơn Tâm

AI-native builder for e-commerce operations

Nine years running my own Shopify brand. Now I build stores, back offices and automation for lean teams: AI agents write the code, tests decide what ships.

Bùi Sơn Tâm
Live4systems in production
9 yearsrunning my own Shopify brand
8,000+automated tests across my systems

Platforms and tools I ship on

What I build

For teams that sell online and want the repetitive parts of the business to run on their own.

Shopify storefronts

Online Store 2.0 themes, tiered pre-orders paid in full on Basic, campaign states, search that shows the real price.

LiquidSelling plansAdmin GraphQL
Case study: 9spaceX

Back offices and ledgers

Double-entry ledgers, ad-cost allocation, fulfilment reconciliation and payment orders.

PythonSQLite
Case study: AlphaStudio

Order and campaign automation

Webhooks into Cloudflare Workers, outboxes that never double-send, alerts to Telegram.

WorkersD1
Case study: 9spaceX

Operations apps for real businesses

Booking sites, staff apps and tenant portals with bank-transfer reconciliation, built for a team that is not technical.

ReactSupabasePWA
Case study: Là Nắng

I build for the businesses I run

I founded Vaithuhay.com in 2016 and grew it for nine years, until growth outran operations. AI removed the barriers to the systems I wanted back then. Today it is COD teams selling in the Philippines through Facebook ads, a US desk-tech store on Shopify, and serviced apartments in Ho Chi Minh City. So every project starts from the numbers and the real bottleneck.

9years running my own Shopify brand
500kcommunity members built
5systems built in 2026
  • Vaithuhay.com

    E-commerce brand I founded in 2016 and ran for 9 years: my own UI/UX on Shopify, our own backend and a group-buy sales system, 200-300k monthly visits at the peak and a 500k-member community.

  • AB HUB / AlphaStudio

    A hub that funds and supports small cross-border e-commerce teams from Vietnam. 3 operating companies sell COD in the Philippines; a 13-person sales team runs on AlphaVerse (Oct 2026).

  • 9spaceX

    US desk-tech store run by 2 people, which is why 90% of operations has to be automated.

  • Là Nắng

    Serviced-apartment business I co-founded with 2 partners; 12 rooms in 2 buildings, more planned.

  • AI engineering bench

    Up to 8-10 parallel Claude Code sessions, Codex for selected modules, Claude Design for UI, all under written plans and review.

The founder advantage

Why a founder builds it differently

I have run the P&L, the ads, the sales team and the warehouse myself. That thinking goes into every system I build, before a single screen.

01

Automate first, hire later

I design every repeatable step to run on its own, with a person approving and handling the exceptions. Payroll is the cost that grows fastest in e-commerce, so I design it out before I add people.

Where you can see it9spaceX is built so 2 people can run a campaign store: launch states, pre-order caps and order alerts run without anyone. Là Nắng matches bank transfers to invoices by itself.

02

Finance thinking built in

I read margin, cash and unit economics before I write a feature. Profit always includes every cost, and money only moves after a person approves it.

Where you can see itAlphaStudio keeps a double-entry ledger in integer money, greys out profit when a cost is missing and never lets a payment order take cash below zero. 9spaceX computes break-even CAC and ROAS for every product.

03

Revenue first: marketing, funnels, teams, KPIs

I have grown a brand with content, community and group buys, and I run sales teams on targets. So the systems I build are measured by orders and margin, not by screens shipped.

Where you can see itAt Vaithuhay I built the showcase, coming-soon, pre-order and group-buy model and reached 200-300k visits a month at the peak. AlphaStudio ties every order to its campaign and ad set CPO. AlphaVerse gives a 13-person sales team an 8-level ladder, targets and commissions.

04

Systems and data that AI can grow on

I organise data before I automate it: one source of truth, every record traceable, every money movement reversible by an entry, never by an edit. Clean data is what lets AI drive growth safely later.

Where you can see itAlphaStudio's AI agent may only repeat numbers its tools returned, behind a 62-case golden eval. Every source lands in a de-duplicated staging table first. The coaching platform counts only video that was really watched.

Selected work

The Shopify brand I ran for nine years, then five systems built in 2026 with numbers from their repositories on 13 Oct 2026 and what is not done yet. Client names stay private until the client agrees.

AlphaStudio overview dashboard on the public demo, which runs on fictional numbers

AlphaStudio finance cockpit

Live since Aug 19, 2026Own organisation

Money and operations cockpit for small COD e-commerce teams selling in the Philippines through Facebook ads.

Shared ad accounts, a fulfilment partner paying out late and about 30% returns hid real profit from team leaders.

  • Double-entry ledger in SQLite with integer money, fed by POS orders, Meta ad spend and fulfilment files
  • Exception queue, FIFO stock, payment orders that never allow negative cash, role-based access with 2FA
  • A Claude agent that may only repeat numbers its tools returned; a 62-case golden eval gates rollout
  • Recruiting with an AI pre-screen interview, career ladder, commissions, daily article writer
334release tags in 44 days
7,094test functions
2,682commits, Aug to Oct 2026
352features, 324 of them live

StackPython standard library, SQLite, vanilla JS single-page app, Claude API, Gemini, Meta Marketing API, Cloudflare Tunnel, DigitalOcean

Not done yetNo accounting period locked yet; one daily power user as of Sep 2026; very large single files kept on purpose for a one-person team.

Live sitealphastudio.asia

Case studies

The long version of each project: the brief, the decisions, what was built, the hard problems and what is not done yet.

Live since Aug 19, 2026Own organisation

AlphaStudio finance cockpit

The money and operations system for a group of small e-commerce teams in Ho Chi Minh City that sell cash on delivery in the Philippines through Facebook ads and a fulfilment partner. At its core is an immutable double-entry ledger with integer money, fed by four sources, with an exception queue, period gates, FIFO stock, payment orders, role-based access with 2FA and an AI agent that is not allowed to invent numbers.

Finance thinking built inSystems and data that AI can grow onRevenue first: marketing, funnels, teams, KPIsAutomate first, hire later
alphastudio.asia
334production releases in 44 days
7,094test functions in 250 files
2,682commits from Aug to Oct 2026
~$7a month of infrastructure
Overview dashboard on the public demo, which runs on fictional numbers
Overview dashboard on the public demo, which runs on fictional numbers

01The brief

  • Blueprint of Jul 20, 2026: track money and profit sharing across many projects, accurately and automatically, with an immutable ledger, integer money, period closes and approved spending.
  • First acceptance test: rebuild one month of a company's hand-made P&L from POS, Facebook, fulfilment, purchasing and stock data, and explain every number.
  • The real pain: ad invoices shared between companies; about 30% of shipped orders returned and hidden from 'profit'; fulfilment fees arriving about 10 days late; a hard-coded exchange rate overstating results by 6.6%; shared stock; leaders who needed one simple daily screen, not accounting screens.
  • Constraint: no accounting app and no ERP. Payroll and statutory accounting stay in outside tools.

02Decisions I made

  • Python standard library and SQLite in one process instead of the Next.js and Supabase in the blueprint: the app needs a long-lived scheduler, durable disk and serves tens of users. The conditions for moving to Postgres are written down.
  • Ledger entries by batch, not by order, because per-order posting is how an ERP works. Traceability goes through links from order to batch to entry.
  • A payment order reduces cash only once it is posted, roles are separated, and cash can never go negative, even for the superadmin, so 'ordered' is never mistaken for 'paid'.
  • An LLM is never a source of financial truth. Deterministic detectors run first; the AI only repeats numbers from tools.
  • Froze a seller-growth module to focus on financial truth and payment orders first.
  • One truth, one place to declare it: a rule that can be edited on 3 screens is 3 versions of the truth.

03What I built

Ledger and reconciliation

  • Every source lands in a staging table with a global unique key and personal data removed, then a resolver assigns it to the right company.
  • Delivered orders become COD receivables; partner payouts settle receivables plus fees. Anything uncertain goes to an exception queue with an owner and a 72-hour target.
  • Fulfilment files, wallet and statements are read and split by period, order and company, then posted automatically. Fees follow the partner's real formula by province plus a share of COD.

Profit you can trust

  • Profit always deducts cost of goods, ads, fulfilment, returns and operations. When a cost is missing, the profit card turns grey and shows a lower bound instead of a confident number.
  • Returns forecast by ship date with a SKU by province model and a backtest; cost per order by campaign and ad set from real POS orders.
  • Exchange rates learned from real peso transfers, weighted over 90 days.

Money out, stock and cash

  • Budget, payment order, paid, reconciled, posted. Roles are separated and cash never goes negative.
  • Purchase orders, FIFO stock by date, stock borrowed between companies recorded as internal debt, reorder dates from lead time.
  • 30-day and 3-month cash forecasts, a three-stage cash cycle and 12-month ROE.
  • Nightly ledger checks, daily backups with checksums, an encrypted off-site copy and automatic restore drills; 2FA for dangerous actions.

AI inside the product

  • An agent called Bang chủ: rule-based detectors and drafts first, then Claude with tools scoped to the asker's role and company.
  • Every number of 1,000 or more in an answer must match a tool output; otherwise the answer is replaced by a deterministic brief and labelled ungrounded. Each question is capped at 4 API calls, 8 tool runs and 90 seconds.
  • The agent drafts entries from text or a photo of a bill for a person to approve. It never moves money. A 62-case golden eval gates every rollout.
  • Around it: Telegram briefs and alerts, a daily article writer, an AI pre-screen interview for recruiting, content scored by the profit it brought in, an 8-level career ladder, 8-week onboarding and commissions.

04Every feature (352)

352 features in 18 areas, each with its status.

Ledger and accounting core19
  • Immutable double-entry ledgerLive

    Records every money movement as balanced double entries in whole currency units; mistakes are fixed with reversal entries, never by editing history.

  • Figures derived from ledger linesLive

    Profit, wallet balances and reports are computed from ledger lines rather than stored totals, so every number traces back to entries.

  • Click any number to its entriesLive

    Every money figure on screen opens the journal entries, orders or vouchers that produced it.

  • Duplicate-proof data stagingLive

    All pulled data lands in an append-only staging table keyed by source and ID, so importing the same record twice never double-books.

  • Clearing-based COD accountingLive

    Delivered orders create a COD receivable; partner payouts clear that receivable and record fees instead of being counted as new revenue.

  • Exception queue with ownersLive

    Anything the machine is unsure about becomes a task with amount, reason, suggested fix, owner and a 72-hour deadline.

  • Single company resolverLive

    Assigns each order, waybill and wallet line to the right company through one rule chain: dated page rules, SKU, code and order creator.

  • Per-company opening cut-overLive

    Sets a start date per company so older history is excluded and opening balances are declared once, with machine suggestions.

  • Period close with gatesLive

    Locks a month only when gates pass for revenue, COGS, fulfilment fees, ads, fund, returns, open exceptions and parity.

  • Parity table with source drillLive

    Compares ledger totals with independent source data line by line and opens the exact source rows behind any gap.

  • Reopen a locked periodLive

    Lets the superadmin reopen a locked period behind 2FA while keeping the full trail.

  • Nightly ledger self-checkLive

    Runs over a dozen integrity checks every night and on demand: balanced entries, open reversals, negative cash, FIFO dates, locked-period writes, stuck orders.

  • In-app ledger fixes with previewLive

    Proposes corrections for detected issues, shows a preview, and writes them as proper entries only after a person confirms.

  • Move booked orders between companiesLive

    Previews and moves already-booked orders to the correct company using reversing entries.

  • Trust labels on money figuresLive

    Each figure declares how complete it is; profit turns grey with an at-least mark when some costs are still missing.

  • Source document libraryLive

    Lists original vouchers behind entries (ad bills, COD payouts, bank credits, purchase orders, orders, manual entries) with filters and downloads.

  • Marketplace order adjustment scanLive

    Scans marketplace orders nightly for amounts changed after delivery and offers a fix.

  • Reporting checklist and exportLive

    Tracks the month-end reporting checklist and exports reports.

  • Guarded manual repair scriptsLive

    Ledger repair scripts follow preview, backup, typed approval, then write, and every applied script is archived.

Treasury and payment orders19
  • Payment order lifecycleLive

    Money leaves only through payment orders: draft, issued, paying, awaiting reconciliation, booked; cash changes only at booking, in exactly one entry.

  • Segregation of dutiesLive

    Whoever issues an order cannot also report payment or book it; superadmin overrides require a written reason kept in history.

  • No negative cashLive

    Blocks any order or booking that would push cash below zero, for every role; shortfalls become funding exceptions.

  • Available-to-decide figureLive

    Shows cash minus supplier debt, internal debt, loans, committed payments and reserved orders, so leaders see what they can really spend.

  • Period budgets with approvalLive

    Leaders propose budgets per company, period and category; they only act as spending limits after founder approval.

  • Leader spending limitsLive

    Sets how much a leader may spend alone; larger orders wait for approval.

  • Payment commitmentsLive

    Records promised payments such as salary, rent, tax, supplier and debt so forecasts and available cash include them.

  • Transfer references and proofLive

    Requires a bank transfer reference and supporting documents above set thresholds before a payment counts as made.

  • Mismatch, refund and reissue handlingLive

    Handles payments that do not reconcile, refunded orders, cancellations and reissued orders without deleting history.

  • Company comparison wallet boardLive

    One table compares companies on decidable cash, incoming money, goods in transit and obligations.

  • Ads wallet vs agency statementLive

    Records agency-reported ad wallet balances and flags differences against the books every month.

  • 30-day and 3-month cash forecastLive

    Projects cash in from expected COD by settlement cycle and cash out from open orders and commitments.

  • Partner-paid expense classificationLive

    Accountants classify costs the fulfilment partner paid on the company's behalf, attaching exchange bills, purpose and the amount actually received.

  • Fulfilment fund mirrorLive

    Rebuilds the money held at the fulfilment partner line by line from its wallet statement and compares it with the books per company.

  • My money in three statesLive

    Shows each user their money as estimated, locked or withdrawable, each opening the entries behind it.

  • Withdrawal recipient per shareholderBuilt, not released

    Records who received each fund withdrawal so each shareholder's withdrawable balance drops by exactly their share.

  • Fund withdrawal matched to bank billsPlanned

    Drafts each partner fund withdrawal and matches it to the bank bill automatically so it books after one approval.

  • Group-wide cash forecastPlanned

    Forecasts cash across all companies and suggests which company can cover another's shortfall.

  • Shared hub fund from budgetsPlanned

    Computes the shared hub fee from approved budgets with quarterly true-up instead of a fixed percentage.

COD settlement and fulfilment reconciliation14
  • Settlement file importLive

    Reads the fulfilment partner's three-sheet settlement file, counts delivered, shipped and returning parcels, and books each payout batch once.

  • Settlement pull via partner APILive

    Pulls per-waybill settlement detail through the partner API instead of manual downloads, handling lines split across batches.

  • Per-waybill order matchingLive

    Matches every waybill to its POS order, including fees and COD that arrive in different batches.

  • Three-way reconciliationLive

    Compares POS orders, the partner wallet and settlement statements side by side.

  • Settlements routed to each companyLive

    Closed settlement periods are split by order to each company, drafted, and booked after founder approval.

  • Unmatched waybill assignmentLive

    Lets staff assign waybills with no matching order to a company and book their money.

  • Settlement history and drillLive

    Lists recent settlement periods with booking status and opens every waybill in a period.

  • Unpaid COD claim listLive

    Lists delivered orders past their settlement window with no money received, ready to copy and send to the partner.

  • Order-to-cash journeyLive

    Follows orders through six stages from creation to money in the fund, with expected arrival dates.

  • Province-based fee modelLive

    Estimates delivery and return fees per order from the partner's province formula learned from past settlements.

  • Per-waybill weight and fee detailLive

    Stores weight and each fee type per waybill and back-fills older periods during sync.

  • Period chips and currency toggleLive

    Views COD since cut-over, this month, last month, quarter or year, in local currency or VND.

  • Settlement calendar recapLive

    Shows the partner's settlement schedule so staff know when money should arrive.

  • Auto-book clean settlement periodsPlanned

    Books settlement periods automatically when every waybill matches and totals agree, falling back to approval otherwise.

Ads cost classification24
  • Facebook ad spend syncLive

    Pulls daily spend per campaign from every ad account through the Meta Marketing API, reading all result pages.

  • Same-day ad spend snapshotLive

    Reads today's running spend per account for real-time estimates without ever booking it.

  • Ad invoice ownership and allocationLive

    Imports Meta invoices; companies claim lines or whole invoices, disputes get resolved, allocations are finalized or reversed.

  • Apply rules to pending ad linesLive

    Applies saved rules to all waiting ad lines in one click; leaders only touch their own company's lines.

  • Campaign name parserLive

    Reads brand, product code and funnel stage from campaign names and order UTM tags to link spend to products.

  • Campaign code registry in one placeLive

    Campaign name prefixes are declared once on the ads screen and reused everywhere else.

  • Ad accounts by time windowLive

    Assigns each ad account to one or several companies for date windows such as before, from or between dates.

  • Source declarations by leadsLive

    Leads declare which company each landing page, fanpage or ad account ran for; declarations from several leads merge with authorship shown.

  • Decided-by cost attributionLive

    Assigns each campaign's cost by fixed priority, human declarations before machine inference, and shows which step decided it.

  • Per-campaign decisionsLive

    Lists campaigns for the period so leaders accept, reject or mark them as another team's cost.

  • Shared ad accountsLive

    Marks accounts shared with another team so campaigns without a rule stay unclassified instead of defaulting to the owner.

  • Prepaid or invoiced account modeLive

    Sets each account to prepaid or invoiced; prepaid spend is booked as cost from the spend feed.

  • Tax and fee uplift per accountLive

    Adds a configured tax and fee percentage on top of spend so booked ad cost matches what is really paid.

  • Monthly ads cost closeLive

    Previews, then books or reverses the month's official ad cost per company, behind 2FA.

  • Auto-booking own account invoicesLive

    Optionally books invoices from a company's own ad accounts automatically under approved rules.

  • Orders vs cost bearer checkLive

    Warns when orders carry UTM tags pointing to a different company than the one paying for that campaign.

  • Results by partyLive

    Shows spend per company and other teams, which sources contributed, whether data is complete, and a copyable declaration.

  • Campaign detail by bearerLive

    Groups campaigns by who pays, with step filters and totals that reconcile to the results view.

  • Claim newly shared ad accountsLive

    Leads share accounts with the system token, scan for new ones and claim them for their company.

  • Personal Facebook connection for leadersLive

    Company CEOs connect their own Facebook to pull their ad accounts without replacing the shared token.

  • Blocked ad account detectionLive

    Detects ad accounts restricted by Meta and reports the reason instead of failing on every sync.

  • Confirmation checklist before closeLive

    Lists cost items awaiting confirmation and a four-point checklist, including confirming all ad accounts are selected.

  • Billing PDF linkingLive

    Attaches Meta billing PDFs to invoices so aggregated spend can be closed against documents.

  • Built-in ads cost guideLive

    A guide page with worked situations explaining how ad cost gets classified.

Executive dashboards and profit analytics23
  • One-slice executive dashboardLive

    One time slice drives the whole screen, comparing with the same-length previous period across company, product, group, channel, person and day.

  • Created vs delivered order toggleLive

    Switch between real-time estimates on created orders and confirmed figures on delivered orders.

  • Metric popups with breakdownsLive

    Each metric (profit, orders, revenue, CPO, AOV, ABS, returns, fulfilment, ads) opens its own breakdown by campaign, product and single order.

  • Shared range pickerLive

    A two-month calendar range picker with presets shared by every screen and remembered per user.

  • Local, VND or USD displayLive

    Shows amounts in local currency, VND or USD using real or book rates without reloading or altering source numbers.

  • True profit after ads and returnsLive

    The profit card subtracts COGS, ads, fulfilment fees and returns, and labels whatever cost is still missing.

  • Shipment batch profit projectionLive

    Projects profit per shipping-date batch with learned fee and return models for parcels still in transit.

  • Return rate by shipping cohortLive

    Return rate by shipping date with daily views, KPI cards, alerts and drill to orders.

  • Short-term viewLive

    Today, 3-day and 7-day numbers with drill to every delivered order in the window.

  • Department dashboardsLive

    Separate overviews for finance and accounting, warehouse and operations, and HR, opened according to role.

  • Multi-period ledger P&LLive

    Month, quarter and year views built from the ledger, with plan attainment.

  • Company P&L reportLive

    P&L in the team's familiar spreadsheet structure by month or 10-day period, with operating metrics and wallet cash flow, every cell drillable.

  • Assets over timeLive

    Assets per company by week, month, quarter or year, with an explanation for each change.

  • Money lifecycle viewLive

    Shows how long money takes from paying suppliers through stock arrival and orders to COD back in the fund.

  • Cash cycle per productLive

    Measures how many days capital stays tied up in each product.

  • Projection and ROE cardLive

    Projects profit from current stock and weekly cash-in, a 12-month outlook at today's pace and return on equity, with adjustable growth and ad share.

  • Channel by time gridLive

    Grid of delivered orders, revenue and return rate per channel over time, filterable by website or marketplace.

  • Real exchange rate learningLive

    Learns real exchange rates from actual currency transfers, weighted over recent months, and explains where each rate comes from.

  • Book exchange rate screenLive

    Founder keeps book rates next to real rates; edits need 2FA and closed periods keep their locked rate.

  • Staff productivity cardLive

    Shows revenue per staff member and staff cost as a share of revenue.

  • Fill missing product cost in placeLive

    A chip on the profit card opens a popup to enter missing product costs without leaving the dashboard.

  • Monthly sales plan detailLive

    Fill the month plan, compare last plan with actual ledger figures, and check whether stock will arrive in time for it.

  • Goal to plan calculatorLive

    Works backward from desired profit to required revenue, ad budget, headcount and capital, then saves it as a budget proposal.

Inventory, purchasing and COGS27
  • Stock flow overviewLive

    Five clickable stages (incoming, in stock, delivering, returns, internal debt) plus ledger versus warehouse differences.

  • Per-SKU detail drawerLive

    Slide-out per product with lots, orders by status, warehouse stock, purchase plan, cost and audit log.

  • FIFO lots by arrival dateLive

    Consumes stock lots first in, first out by arrival date and books COGS per order.

  • Purchase requests with approvalLive

    Leaders propose purchases; approval turns them into expected payments that reduce decidable cash.

  • Purchase orders and receivingLive

    Records purchase orders with dates, prices, shipping and customs, then confirms arrival into stock.

  • Reorder date per productLive

    Shows the date each product must be ordered to arrive in time, from learned lead times and current sales pace.

  • Shipping schedule trackingLive

    Tracks and edits each purchase order's schedule from supplier to port to warehouse.

  • Purchase discussion threadsLive

    Comment threads with attachments on purchase requests and lots, also posted to Telegram.

  • Inter-company stock borrowingLive

    When a company runs out of shared stock, lots from another company are used at the lender's cost and recorded as internal debt.

  • Return borrowed stockLive

    Suggests returning borrowed stock; the lender gets it back at the original cost after a person confirms.

  • Internal stock transfersLive

    Moves stock between companies or warehouses with a recorded trail.

  • Pending returns handlingLive

    Returns the books expect but the warehouse lacks can be restocked or confirmed lost; cost is recorded only then.

  • Return claims to fulfilment partnerLive

    Lists returned parcels the partner has not recorded, with waybills ready to copy for claims.

  • Warehouse partner stock syncLive

    Pulls real stock from the warehouse partner on a schedule, with a helper on a local computer keeping the web session alive.

  • Auto lot receipt from slipsLive

    Receives incoming lots automatically when warehouse receipt slips match the order quantity, holding shortages for follow-up.

  • Late lot re-deductionLive

    A nightly job re-deducts stock against the right lot when goods arrived after orders already shipped.

  • Three-source stock reconciliationLive

    Compares ledger stock with warehouse partner and fulfilment partner counts.

  • Product cost from POSLive

    Takes product costs from the POS system automatically when plausible and asks a person only when values look suspicious.

  • Add late fees to received lotsLive

    Adds shipping or customs fees that arrive later onto lots already in stock.

  • Variant and combo SKU mappingLive

    Maps variant and combo SKUs to base SKUs with multipliers so stock and cost count correctly.

  • Product and group hierarchyLive

    Groups SKUs into products and product groups, with merge suggestions.

  • Catalog sync and standard costsLive

    Syncs the product catalog and maintains standard costs per SKU.

  • Stock value and sell-out daysLive

    Inventory popups show stock, incoming, returns, daily sales, days to sell out, stock value and maximum revenue per SKU.

  • Volatility-aware stock forecastLive

    Sales speed uses the higher of 7-day and 30-day averages plus a buffer that grows with sales volatility.

  • Supplier overpayment checkLive

    Flags supplier payments deducted twice from the fulfilment fund.

  • Dead stock liquidation draftsPlanned

    Drafts a clearance plan with discount, expected cash and loss versus cost for slow stock, for founder approval.

  • Right-time purchase order draftsPlanned

    Drafts purchase orders at the right moment from cash cycle, stock and sales speed, with reasons.

Shareholders, capital and profit sharing11
  • Shareholder register with maskingLive

    One view of shareholders, capital and returns; other people's figures are masked by role on the server, not just hidden.

  • Capital contributions with 2FALive

    Superadmin records a named contribution as one double entry behind 2FA; mistakes are reversed, never edited.

  • Capital by source and personLive

    Splits capital into cash, contributed goods, prior-period capital and withdrawals for each shareholder.

  • Provisional ROILive

    Shows return on capital from distributions, locked entitlements and open-period profit share, labelled provisional until close.

  • Investment recordsLive

    Records, signs, edits and, when unbooked, deletes investor investments.

  • Shareholder register exportLive

    Exports a three-sheet Excel register that is also saved to the document vault, plus a print or PDF view.

  • Profit entitlement decisionsLive

    After a period locks, entitlements freeze; loss periods create no negative entitlement and earlier losses are offset first.

  • Investor portfolio viewsLive

    Investors see only companies they funded: financial overview, project P&L, assets and cash flow, and profit split.

  • Inter-company cost claimsLive

    One company asks another to bear a cost, discusses it in a thread, and the other side accepts or rejects.

  • Transfer ledgerLive

    Logs profit payouts, withdrawals and contributions with bank references, optionally booking them to the ledger.

  • Profit split forecast in one ruleBuilt, not released

    Forecasts profit split using exactly the real split formula, with default shares prefilled at approval.

Data connectors and intake14
  • Multi-shop POS order syncLive

    Pulls orders from several POS shops with UTM and landing data, dropping customer personal data.

  • Facebook login connectionLive

    Connects Facebook by login and consent instead of pasted tokens, exchanges for long-lived tokens and lists ad accounts.

  • Facebook token health checksLive

    Checks token expiry daily and warns before access lapses.

  • Fulfilment partner wallet syncLive

    Pulls the partner wallet, transfers and settlement batches on a schedule.

  • Scheduled background syncLive

    Each source syncs on its own interval with backoff on errors, health counters, and an update-now button with live progress.

  • Data intake screenLive

    Shows by business area which rules catch incoming data, where data leaks, and new projects that still need an owner.

  • Rules declared in one placeLive

    Page, shop, order creator and SKU to company rules live on one screen; others only display and link to them.

  • Conflicting declaration warningsLive

    Warns when a page, landing page or seller rule is declared differently in two places.

  • Animated data flow diagramLive

    A diagram on the Connect screen shows every data input and output, animated while data flows.

  • Background jobs monitorLive

    One registry shows each background job as off, running, error, stalled, waiting for a person or done.

  • POS shop managementLive

    Add, remove and rename POS shops and marketplace channel names.

  • Connector response previewLive

    Shows the exact request and JSON each connector returns so data can be checked before syncing.

  • Shopify order connectorBuilt, not released

    Pulls orders from a Shopify store into the same staging flow; built but not yet connected to a live store.

  • Webhooks and developer modePlanned

    Receive source events by webhook instead of polling and inspect raw connector JSON in a developer mode.

AI agent and Telegram27
  • Floating agent panelLive

    An always-available agent button and drawer showing open tasks, chat and briefs without leaving the current screen.

  • Deterministic daily briefsLive

    Morning and evening briefs are built from the ledger and work even with no AI key configured.

  • Chat on scoped toolsLive

    Users ask questions in Vietnamese; Claude answers through 16 read or draft tools limited to companies the user may see.

  • Number grounding guardLive

    Any significant number in an answer must match tool output, otherwise the reply falls back to the deterministic brief and is flagged.

  • Rule-based detectorsLive

    14 detectors watch profit trust, ad margin and opportunity, unallocated ads, stock risk, cash runway, data freshness and content signals.

  • Recommendation lifecycleLive

    Recommendations move from detected to assigned, resolved and measured, with evidence, feedback and duplicate suppression.

  • Assign and measure resultsLive

    Assign a recommendation to a colleague and measure what it achieved afterward.

  • Overdue reminders and auto-downgradeLive

    Reminds owners of overdue tasks and quietly downgrades stale non-critical items.

  • Draft commands from text or photosLive

    Turns a message or bill photo into a draft expense, ad top-up, purchase order, commitment, inter-company claim or task; a person confirms.

  • Company memory notesLive

    The agent remembers company facts users tell it, with source; users can view and delete each note.

  • Group-wide modeLive

    The founder can ask across all companies and get a merged brief.

  • Weekly digestLive

    Weekly summary for shareholders, leaders and the founder.

  • Per-company agent settingsLive

    Brief times, timezone, monthly profit target and Telegram channel per company, plus model and effort choice.

  • Daily usage capLive

    Caps questions per company per day to control AI spend.

  • AI health probeLive

    Checks the AI provider every 6 hours and warns in preflight, digest and brief when the agent cannot answer.

  • Golden evaluation gateLive

    62 scripted cases in a throwaway database must pass before the agent is switched on, and can run nightly.

  • Adoption metricsLive

    Tracks brief opens, answer quality, actions taken and AI cost per company.

  • Agent activity feedLive

    A running feed of what the agent detected, drafted and measured.

  • Telegram alerts with type switchLive

    Founder picks which message types reach Telegram: new candidates, payment order steps, purchase requests, ad invoices, morning digest, agent briefs, career reminders.

  • Morning operations digestLive

    Sends a daily operations summary to Telegram, or on demand.

  • Telegram group discovery and testLive

    Finds groups the bot can see, fills the chat ID and sends a test message.

  • Bank bill reading for exchange ratesLive

    Reads transfer bills posted in a group and suggests the matching withdrawal and implied exchange rate; nothing books automatically.

  • Two-way agent commandsLive

    Linked users ask or command the agent from the company group; answers stay in the app and only a link goes back.

  • No amounts outside the appLive

    Messages leaving the app carry labels and links, never money amounts, SKUs or campaign names.

  • Agent weekly self-scorecardPlanned

    Each Monday the agent reports how many recommendations were followed, measured and marked wrong, by detector.

  • Detector threshold tuning draftsPlanned

    Detectors marked wrong repeatedly produce draft threshold changes for founder approval.

  • Monthly AI budget capPlanned

    A monthly AI spend ceiling with AI cost versus measured value in the digest.

Creative zone (ad content analytics)22
  • Content profit boardLive

    Scores each ad creative by real profit after COGS, ads and returns, with a verdict and the lever to fix.

  • Ad funnel by productLive

    Shows where money drops for each product from impressions and clicks to landing visits, orders, matched orders, true ROAS, margin, stock and returns.

  • Daily and weekly performanceLive

    Server-computed daily and weekly funnel performance per product.

  • Content tasks with ownersLive

    Recommendations become tasks with owner and deadline that move one step at a time: assigned, doing, live, measuring, done.

  • Revised creative re-measurementLive

    Compares a revised creative with the original over the same first 14 days of each.

  • Creator skill by angleLive

    Learns each creator's strength per content angle from real results and down-weights fixes that never improve numbers.

  • Pillars and anglesLive

    Teams define content pillars and angles; keyword and Claude suggestions require human confirmation.

  • AI hook variantsLive

    Claude drafts three hook variants for a creative and the team picks one.

  • Winning hook libraryLive

    Collects hooks from winning creatives and the variants people chose.

  • Creative brief exportLive

    Exports a one-page markdown brief for a creative.

  • Syn Content order linkingLive

    Measures how many orders link back to ads through URL parameters, flags new ads set up wrong, and suggests fixes without editing live ads.

  • CPO by campaign and adsetLive

    Assigns real POS orders to campaign, adset, ad and creative in four confidence tiers, with AOV, ROAS and estimated and actual profit.

  • Fix unknown order sources in placeLive

    Links POS page names to Facebook pages and campaign prefixes to products right on the CPO tab.

  • Ad budget change ordersLive

    Drafts budget increases, decreases or ad pauses within a safe pace; approval needs 2FA and changes are then made by hand.

  • Scale pace calculatorLive

    Computes how fast ad spend can grow per day given stock, available funds and incoming lots, and says why.

  • Repeatable content linesLive

    Finds pillar, angle and funnel combinations that stay profitable across several products, the thing worth scaling.

  • Creative and per-ad metric syncLive

    Pulls creatives and per-ad metrics every 6 hours, separate from spend sync.

  • Unclassified ad spend viewLive

    Lists ad spend that cannot yet enter any product funnel, with suggestions to link ad codes to stock SKUs.

  • Tracking setup guideLive

    Explains how to tag ads so orders link back to creatives through UTM, campaign names and angles.

  • Push approved budget changes to MetaPlanned

    Executes approved budget changes on Facebook directly; the flag exists but the write path is not built.

  • Launch ads from the systemPlanned

    Create campaigns, adsets and ads from the app with correct naming and UTM tags from the start.

  • Learn rules from winning creativesPlanned

    Turns creatives that hit CPO and profit targets into proposed content rules for approval.

Fanpage and recruitment ads automation21
  • Fanpage auto-posting scheduleLive

    Posts to the company page every few days at a fixed random daytime slot, drafting one post when the queue is empty.

  • Drafts from the expert libraryLive

    Claude rewrites published expert articles into fanpage posts in the company's voice.

  • Post queue controlsLive

    Preview, edit draft text, post now, skip and restore items in the posting queue.

  • Edit published postsLive

    Updates text and images of posts already on the page while keeping their links.

  • Comment with note and linkLive

    Adds a comment with an AI agent note and a link under a published post.

  • Post metrics and rankingLive

    Pulls reach, likes, comments and shares and ranks recent posts within their groups.

  • Feed-sized image renderingLive

    Draws post images sized for Facebook's single and multi-image grids so nothing gets cropped.

  • Reference sourcesLive

    Collects reference sites and posts: web and RSS read automatically each morning, Facebook links read by a scanner on a local computer.

  • Learn rules and ideas from referencesLive

    AI extracts writing rules and post ideas from reference texts.

  • Rule and idea approval with channelsLive

    Approve or reject learned rules and ideas in bulk; rules are tagged for fanpage, website, ads or internal use.

  • Auto-approval machineLive

    AI scores rules and ideas from 0 to 10; code approves high scores, rejects low ones and leaves the middle for a person; any decision can be undone.

  • Readability gateLive

    Code measures sentence length, number density and unexplained jargon for each audience and rewrites drafts up to twice.

  • Content allocation by categoryLive

    The founder sets weekly percentages across 10 categories and posts per week; the schedule balances shortfalls across weeks.

  • Posting health lightLive

    Seven checks such as schedule, token, page, AI key, queue and last run show whether posting is stable.

  • Stuck post recoveryLive

    Clears a stuck posting flag by checking the page feed first, automatically or by button.

  • Daily self-learning passLive

    Each day measures published posts, learns from new references and proposes rules from the numbers.

  • Writing rules library with historyLive

    Base writing rules plus learned rules, with change history read from git.

  • Recruitment ads builderLive

    Builds recruitment campaigns from poster stock in paused state; only the founder with 2FA can start spending.

  • Recruitment ads autopilotLive

    Runs, pauses and shifts recruitment ad budget within a monthly ceiling, measuring landing views, applications and cost per application.

  • Recruitment poster makerLive

    Turns chosen stock images into branded Vietnamese recruitment posters.

  • Interest targeting lookupLive

    Read-only lookup of Meta interest targeting options.

Public website and daily publishing13
  • Company home pageLive

    Public site with the business model, where 100 units of order value go, team values, videos and a link to the live demo dashboard.

  • Expert article libraryLive

    About 186 practical articles in 10 categories with data tables, covers and category filters.

  • Careers pageLive

    Open roles, a freelancer track, a day-in-the-life story, career path and job description PDFs.

  • AI interview pageLive

    Candidates take a 15-question, roughly six-minute AI screening interview with an intro video and instant result.

  • Privacy policy and consent bannerLive

    The Meta pixel loads only after visitors accept; refusal blocks it and the choice can be changed anytime.

  • Live demo stats on siteLive

    Public read-only endpoint feeds aggregate demo numbers to the website.

  • Isolated static site serverLive

    The public site runs as a separate process with an explicit file allowlist and no database access.

  • Daily article writerLive

    Every morning a GitHub Actions job picks an approved idea, has Gemini write an article in house style and publishes it.

  • Article quality gateLive

    Checks length, sections, data table, source line, banned words, emoji and dashes; failing articles are dropped and another idea is tried.

  • Automatic cover drawingLive

    Draws a 1200 by 675 cover from the numbers in the article itself.

  • Self-filling content calendarLive

    Writes one to three articles per run to fill the 7-day calendar, prioritising categories below their target share.

  • Content-only auto deploymentLive

    Server cron deploys new articles only when every pending commit is signed by the writer and touches content paths only.

  • Expert library inside the appLive

    Read-only blog view of the expert library inside the content screen.

Recruiting, onboarding and HR19
  • AI screening on five traitsLive

    Scores each interview answer on five traits with a switchable AI provider and a rule-based fallback so candidates never get stuck.

  • Consent before AI processingLive

    No candidate text is sent to AI without recorded consent.

  • CV required after question 15Live

    Candidates upload a CV or fill a CV form before seeing results and booking an interview slot.

  • Interview booking and milestonesLive

    Candidates pick an interview slot after the test; HR records attendance and start dates as milestones on the profile.

  • Candidate profiles workspaceLive

    HR and leaders review candidates, scores, CVs and pipeline steps in one screen with colour-coded zones.

  • External candidates and CV uploadLive

    HR adds candidates found elsewhere and uploads CVs on their behalf.

  • Route candidates to teamsLive

    Assigns candidates to a company, team and HR owner.

  • Drafted interview and offer lettersLive

    Drafts interview invitations and job offers from company templates; HR edits, copies or opens them in a mail app.

  • New candidate alertsLive

    Leaders get a Telegram reminder when a candidate finishes the interview.

  • Onboarding templatesLive

    Editable multi-week onboarding templates per candidate profile group, with drag and drop between weeks.

  • Start onboarding from a hireLive

    Starting onboarding links the approved candidate to a staff account and copies the template to that person.

  • Evidence submission and reviewLive

    New staff submit links as proof; leaders approve or return tasks with a reason.

  • Auto-measured onboarding targetsLive

    Number tasks such as orders, closed revenue, maximum CPO and maximum return rate are scored from the ledger.

  • Training videos in appLive

    Plays training videos through short-lived signed links with streaming.

  • My onboarding screenLive

    New staff see returned tasks first, what waits for review, and a week-by-week timeline.

  • Flexible weeks per personLive

    Extend a person's onboarding by a week or edit their own journey without changing the template.

  • Payroll periodsBuilt, not released

    HR drafts monthly payroll with suggested workdays and reasoned edits; leader approval creates combined payment orders for net pay, insurance and tax.

  • Payroll parameters and payslipsBuilt, not released

    Effective-dated insurance and tax parameter sets, frozen HTML payslips, bank transfer lists and 2FA for bank account changes.

  • Referral invitesBuilt, not released

    Staff share a referral link on the interview page; the app counts milestones like interview, start and promotion and records rewards.

Career path, sales team and commissions26
  • Eight-level career ladderLive

    A career map from intern to branch director with monthly thresholds per level and a no-demotion rule.

  • Daily plan and evening reportLive

    Staff set a morning plan and file an evening report, with suggestion cards and a log of their approach.

  • Monthly and weekly targetsLive

    Staff accept period targets broken into weekly milestones measured from real orders.

  • 14-day traffic light mapLive

    Colours each day green, amber or red from real revenue, returns and ad cost numbers.

  • Data quiz before promotionLive

    A short quiz built from the person's own numbers must be passed to move up.

  • Self-assessment next to machine scoreLive

    Staff rate their own period beside the machine's assessment.

  • Request a lower weekly milestoneLive

    Staff may ask once a month to lower a weekly milestone within a set limit; leaders approve or decline.

  • Team journey boardLive

    Leaders see the team's grid, pending approvals, internship reviews, salary band decisions and promotions, with 2FA on approvals.

  • Rewards into payment ordersLive

    Weekly and level-up rewards are gathered into treasury payment orders.

  • Badges and recognition feedLive

    A badge cabinet and recognition feed for streaks and milestones.

  • My earnings screenLive

    Shows personal rewards and commission status: provisional, locked awaiting payment, or paid.

  • Sample data for empty screensLive

    Companies with no sellers yet see sanitized sample screens instead of blanks, without writing fake data.

  • Seller attributionLive

    Attributes orders to sellers through codes, landing pages and page rules, with manual assignment and re-resolution.

  • Seller board and my monthLive

    Company board of sellers and a personal monthly view of orders, returns and earnings.

  • Seller targetsLive

    Set targets, split a company total, or let sellers propose their own for approval.

  • Tiered commission rulesLive

    Define commission tiers, preview payouts and pay through treasury.

  • Commission by order creation dateLive

    Commission follows the order's creation month, with catch-up payments when late deliveries land after a period closes.

  • Seller levels and promotion hintsLive

    A level ladder with suggestions on who is ready to move up.

  • Seller organisation treeLive

    Sets each seller's manager to form branches.

  • Seller module switchLive

    Seller management stays hidden until a company activates it.

  • 3D career journeyBuilt, not released

    Career path as a 3D scene where islands are levels and stones are weekly milestones, with a calm cockpit view for daily work.

  • Weekly quests and mystery chestsBuilt, not released

    Staff pick up to three weekly quests in three difficulty tiers; chests from a founder-set fund reveal rewards when opened.

  • Leaderboards, seasons and titlesBuilt, not released

    Rhythm-based power score, three boards showing only rank gains, quarterly seasons and lasting titles that staff may share with the team.

  • World map and bot racersBuilt, not released

    Founder-defined market map where sellers register interest, plus named bot players racing along real paths.

  • Number ladder by levelBuilt, not released

    Profit and cost figures unlock from full-staff level; junior levels see revenue-based numbers and commission only.

  • Product hunt and arenaBuilt, not released

    Team product proposals, test sign-ups, challenges, team tournaments and a unified library of lessons and game rules.

Product R&D and product library24
  • Product idea dossiersLive

    Each product idea gets a dossier with sources, competitors, evidence images, scores, logs and tasks.

  • Ads test with CPO evidenceLive

    Assign a product for an ads test, log CPO with evidence, then decide to continue or stop.

  • Merge and split duplicate ideasLive

    Merges duplicate ideas and splits them again if needed.

  • Monthly test fundLive

    Sets a monthly testing fund and approves tests that exceed it.

  • Sample and first lot trackingLive

    Tracks sample order, receipt, approval, first lot, arrival and selling, linked to the purchase lot and its first order cohort.

  • Win confirmation and rewardsLive

    Confirms winning products by channel, closes commission periods and turns approved rewards into payment orders.

  • Expansion by channel and marketLive

    Records which channels and markets a winning product expands into.

  • Versioned product policyLive

    Founder publishes append-only policy versions for test targets and rewards; past runs keep their original rules.

  • Supplier quote versionsLive

    Keeps append-only supplier quotes per unit cost component, with acknowledgement of the latest quote.

  • Creative test versionsLive

    Versions test creatives, hands them over between people and records manual results.

  • Market research and pricing scenariosLive

    Stores market research and price scenarios that model returns, fees, ads and cost recovery.

  • R&D sources with AI researchLive

    Scans saved web sources through a local browser helper and lets AI propose cited research fields that people accept one by one.

  • AI product intakeLive

    Gemini extracts a product draft from pasted material using a personal key; people review before saving.

  • Personal AI key guideLive

    Step-by-step guide for each user to set up their own Gemini key.

  • Growth owner and monthly KPILive

    Assigns a growth manager per product and agrees monthly test targets with team leaders.

  • Defer and reactivateLive

    Parks a product with a review date and reactivates it later.

  • Today view for product workLive

    Shows today's product tasks and blockers across dossiers.

  • Demo product dossiersLive

    Read-only sample dossiers for a failed, a winning and a deferred product, excluded from all financial totals.

  • Market discovery and strategyLive

    Records market observations, runs scheduled research topics and promotes good leads into R&D.

  • Research workerLive

    A background worker runs one queued research job at a time with claim locking.

  • Product library gridLive

    Grid of current products with results by quarter, from ledger orders and assigned ad spend.

  • Product pages with mediaLive

    Per-product page with profile, notes, quarterly plan and resumable photo and video uploads.

  • Quarterly plan and CPO ceilingLive

    Quarterly plan tasks people can tick, plus the CPO ceiling that keeps a target margin.

  • Product loop from return signalsPlanned

    Turns clusters of return, cancellation and margin signals into draft product hypotheses.

Mobile app (PWA)10
  • Role dashboardsLive

    On phones each role opens a four-view dashboard, for example business, money and goods, growth and priorities for founders.

  • Installable app with guided installLive

    Install flow tracks four setup steps and guides iPhone users through Add to Home Screen.

  • Safe offline behaviourLive

    Shows a reconnect screen offline; the service worker never caches API data, documents, tokens or money figures.

  • Bottom tabs and workspace searchLive

    Role-based bottom tabs plus a workspace of grouped tiles with search.

  • Mobile work viewLive

    Priority, in progress, awaiting decision and done views, with content task assignment, owners, due dates and history.

  • Business metric popupsLive

    Nine metric tiles open popups with detail and by-day tabs and a chart that follows the chosen metric.

  • Mobile detail pagesLive

    Phone pages for ads, cash flow, COD and payment orders, each scoped to the selected company.

  • Personal sales viewLive

    Sales staff see commission by state, monthly plan and weekly milestones, with self-proposed targets where allowed.

  • Stale response protectionLive

    Switching account, company or dates discards in-flight responses so old numbers never appear under a new scope.

  • Smooth loadingLive

    Loading screen, soft transitions and keeping last good numbers on refresh errors, respecting reduced motion.

Access, security and administration23
  • Nine rolesLive

    Superadmin, company CEO, investor, fund accountant, operations, HR, employee, sales staff and intern, each with its own scope and menus.

  • Server-enforced permissionsLive

    Every action is checked on the server per role and company, so hidden buttons cannot be bypassed.

  • Per-user permission overridesLive

    Grant or remove individual actions per person, with the source of each permission explained.

  • Menu-level permission treeLive

    Permissions shown as zone, menu item and task group (view, do, approve and money), with sensitive groups highlighted.

  • Delegation limitsLive

    People can only grant permissions to lower roles and only within what they hold themselves.

  • Authenticator 2FA for sensitive actionsLive

    Money, permission and period actions require a 6-digit authenticator code, remembered briefly per session with replay protection.

  • 2FA enforcement controlsLive

    Enforce 2FA for money roles, pause it system-wide in emergencies, or toggle it per account.

  • Account managementLive

    Create accounts, reset passwords, and disable or restore accounts while keeping their history.

  • Forced password changeLive

    New accounts must change their password at first login.

  • View as another userLive

    Superadmin sees the system exactly as another user would, with a clear banner.

  • Login lockout and session expiryLive

    Repeated wrong passwords trigger a cool-down, and idle sessions expire.

  • Audit log with secret maskingLive

    Records who did what, with secrets masked in the log.

  • Preflight checklistLive

    Checks 2FA, passwords, backups, mirror, restore drill, tokens and sources before real money moves.

  • Static file allowlistLive

    The app serves only an explicit list of interface files; everything else returns 404.

  • Company scope selectorLive

    One company picker drives every screen and server query within the user's allowed companies.

  • Company onboardingLive

    Creates a company with market, currency and opening capital as a real double entry, optionally with its leader account.

  • Company profiles and document vaultLive

    Legal profiles per company plus a document vault with per-document visibility scopes enforced on download.

  • Live and demo environmentsLive

    Superadmin switches between the real ledger and a training ledger without logging out.

  • Module switchesLive

    Turns optional modules such as seller growth and new product R&D on or off.

  • Department menu zonesLive

    The sidebar groups screens into department zones, opening the right zone for each role.

  • Light and dark themesLive

    Users choose a light or dark interface.

  • Auto refresh and new version bannerLive

    Screens reload data when sources change and prompt users when a new app version is live.

  • Outer login layerBuilt, not released

    Optional Cloudflare Access gate with email one-time PIN and country limits in front of the app; scripted but switched off.

Reliability, demo and delivery16
  • Daily backups with rotationLive

    Backs up the live ledger and documents daily with checksums, keeping recent days plus weekly copies.

  • Encrypted off-site mirror and restore drillLive

    Encrypts each backup bundle, copies it off-site to Cloudflare R2 and automatically test-restores it.

  • Restore toolLive

    Checks, decrypts and restores a backup bundle, keeping the replaced ledger as a safety copy.

  • One-command release with CI gateLive

    Runs local tests, pushes, waits for GitHub Actions, tags the release, deploys to the server and runs smoke checks.

  • Rollback to any tagLive

    The same release command redeploys any earlier tag.

  • Post-deploy smoke checksLive

    A five-second check that the app, public routes and blocked paths behave as expected.

  • Tunnel hosting without open portsLive

    The app is published through a Cloudflare Tunnel with HTTPS and no open inbound ports.

  • Sandbox secret scrubberLive

    Removes tokens, sessions and outbox items from ledger copies before any test server runs on them.

  • Investor demo siteLive

    A public demo with seven fictional companies and realistic data across every screen.

  • One-click demo rolesLive

    Visitors enter the demo directly in a chosen role with no password, rate-limited per visitor.

  • Nightly demo resetLive

    Rebuilds the demo every night with dates shifted to today, keeping the old copy if the rebuild fails.

  • Demo parity testLive

    A test reads every screen from the app source and fails if the demo lacks data for any of them.

  • Demo concept screensDesigned

    Demo-only screens for company health, legal by country, company marketplace, branch opening, new company wizard and project intro.

  • Destructive actions blocked on demoLive

    Deleting data or changing shared configuration is blocked on the demo regardless of role.

  • Parallel test runnerLive

    Runs the 7,000-plus test suite in parallel processes to cut run time.

  • Mobile QA scriptsLive

    Browser-driven checks of mobile layouts, scopes, currencies and installs on a throwaway demo ledger.

05Hard problems solved

  1. ProblemThe first version booked fulfilment payouts as revenue.

    How I solved itRedesigned around staging and receivables: delivered orders become receivables, payouts settle them plus fees, and the ledger still traces each order to its batch and entry.

  2. Problem67.9% of July waybills had two or more fee lines. Learning fees per line under-estimated them by 36.3%, and two opposite filter bugs were cancelling each other out.

    How I solved itLearn fees per waybill with a 90-day window chosen after a backtest reversed the earlier conclusion, then replace the model with the partner's real province formula.

  3. ProblemA backdated cost import recalculated 2,595 orders before the close and created phantom supplier debt.

    How I solved itOne in-scope gate for every recalculation, owner-contributed stock reclassified as equity, and every ledger fix run by script: preview, backup, owner approval, apply.

  4. ProblemAd accounts and invoices were shared between companies, and the Marketing API knows nothing about SKUs.

    How I solved itCampaign naming rules declared in one place, account ownership by time period, then CPO by ad set. A sync that read only 75 rows per account and left ad data 27 days stale while reporting OK was found and fixed.

  5. ProblemReal money on a $7 server with SQLite: network calls held the write lock, the full test suite ran out of memory and CI minutes ran out three times.

    How I solved itSeparate fetch and write phases, a fast test mode, a measured and trimmed CI with a ship path that requires local tests, and a parallel runner that cut the suite from about 880 s to 290 s.

  6. ProblemA security issue on production soon after go-live.

    How I solved itFound, contained and hardened, with a regression test and new checks added to every go-live.

  7. Problem8 to 10 AI sessions working on one repository, and one subagent that fabricated failing-test evidence.

    How I solved itorigin/main as the trunk, work only in worktrees, merge-base checks before calling anything merged, no force-push; agents paste raw output and key results are re-run independently.

06How AI agents built it

  • The first session imported a Claude Design prototype and built the backend, database and permissions behind it.
  • Brainstorm, then spec, then plan, then test-first tasks done by subagents with review. The repository holds 55 specs, 64 plans and 42 worklogs.
  • 8 to 10 Claude Code sessions in parallel worktrees, Codex on selected modules, and Claude and Codex cross-reviewing the ads module.
  • About 180 project memory files, project rules in CLAUDE.md, and a hook that writes a worklog at the end of each session.
  • Mutation tests, every production bug turned into a test, and a golden eval for the agent.
  • Human boundaries: Tâm approves specs and every ledger fix; money and salaries are always decided by a person.

07Stack

Backend
Python standard library, one process with an in-process scheduler; openpyxl and Pillow only
Data
SQLite WAL, about 168 tables
Frontend
One vanilla JavaScript single-page app with a mobile PWA
AI
Claude Messages API with tools and prompt caching; Gemini for interviews, articles and product intake
Integrations
Meta Marketing API, POS, fulfilment partner files and wallet, warehouse, Telegram Bot API
Delivery
DigitalOcean, systemd, Cloudflare Tunnel, GitHub Actions, release tags with smoke tests

08Not done yet

  • No accounting period has been locked yet, so the profit-sharing buttons stay off.
  • In a self-review on Sep 3, only the founder used it daily and leaders 1 to 2 days a month. Use has grown since, but it is still early.
  • On Sep 3, 38% of chat questions fell back to a non-AI answer and about 11% of chats led to an action, against a 40% target.
  • Very large single files are kept on purpose while the dev team is one person.
  • Several security hardening items are still open in the backlog.
  • One small server without a hot standby, polling instead of webhooks, one currency per company, no marketplace or Shopify US yet.

Built on a dev store, not live yetOwn store (US)

9spaceX Shopify rebuild

A US desk-tech store on Shopify Basic that sells through campaigns: showcases, coming-soon sign-ups, launch days, three-tier pre-orders, group buys in batches and flash sales, the model I first built at Vaithuhay. The team is 2 people, so the brief was that 90% of operations must run on their own, with people only approving and handling exceptions, on a plan that allows no custom checkout or discount logic.

Automate first, hire laterFinance thinking built inRevenue first: marketing, funnels, teams, KPIsSystems and data that AI can grow on
571automated tests across theme, Workers and backend
0Theme Check offenses in the new theme
$0.00left to pay on a full-payment pre-order
302features mapped: built, running, designed or planned
Before and after: the live theme and the new home page on a development store with test data
Before and after: the live theme and the new home page on a development store with test data

01The starting point

  • Over 365 days the store had 4,532 sessions, about 12 a day, and a 0.022% conversion rate against an industry range of 1 to 2%.
  • 54 of 61 active products were sold out, and most traffic landed on those pages. A test product handle was still getting real visits.
  • A live audit found 7 visible bugs, 12 risks in the source and 20 interface issues. An expired campaign led the home page with its countdown at zero, and a sign-up form reported success without knowing whether anything was saved.

02What I questioned first

The original request was an automatic repricer. Measuring price elasticity needs about 500 sessions per SKU per week, and the store had about 12 a day, so a repricer would only optimise noise. The real bottleneck was merchandise and product pages.

So the order flipped: listings and store health first, pricing as reports later, automatic pricing last and only after 30 manual approvals with more than 85% agreement. Five principles were written down before any code: data is the backbone; every machine decision has a reason you can read in 5 seconds; every automatic action can be undone; guardrails are code, not a line in a prompt; LLMs write words, deterministic code computes money, prices and statistics.

03What I built

A new theme from an AI design

  • Ported from a design set of about 155 screens in Claude Design, read through its API with a versioned manifest of 64 files and a diff before every port.
  • 53 design tokens generated from the design file, and a test that every CSS variable is defined.
  • One Liquid resolver puts each product into exactly one of 12 buying states. Tier prices come only from Shopify selling plans; a missing plan shows no price instead of a made-up one.
  • 14 home sections driven by Shopify data, with a single switch for launch-day mode.
  • Search suggestions moved to the Section Rendering API, so pre-orders show their tier price instead of 'In stock' at full price.

Product page buy flow

  • One buy box that changes with the buying state: in stock, campaign with a tier ladder, launch day, group buy and coming soon.
  • A price tier popup listing every tier with its plan price, how full it is and why it can or cannot be bought.
  • Plan pages never fall back to the list price: if the chosen variant lacks the open selling plan, the page says Unavailable.
  • A sticky buy bar under the header on desktop and at the bottom on phones, with funding and countdown on campaigns.
  • Product, breadcrumb, organisation and website structured data; Google's Rich Results Test found three valid items and no errors.

Pre-orders paid in full on Shopify Basic

  • Each price tier is a pre-order selling plan that charges 100% at checkout with no remaining balance.
  • Tier capacity is enforced by setting variant inventory to the cap, so Shopify itself refuses to oversell, even from a cart opened earlier.
  • Proof on a development store: adding 6 units to a tier with 5 left returned 'Only 5 items were added'; a test order was paid $70.00 with $0.00 outstanding, and stock went from 5 to 4.

Automation layer on Cloudflare

  • A campaign Worker with D1 moves campaigns through scheduled, coming soon, pre-order open and closed every 5 minutes, and opens a pre-order only when every evidence flag is set: approved, checkout tested, dates and capacity enforced, full payment, delivery window.
  • Waitlist emails encrypted with AES-GCM and de-duplicated by idempotency key. The email outbox sends only after Shopify confirms the snapshot was written.
  • Early-delivery slots allocated from paid-order webhooks inside one atomic D1 batch.
  • An order-alert Worker verifies the Shopify signature on the raw body, stores the order in a Durable Object before replying, and sends to Telegram with backoff and no customer name, email or address. Cutover imported 5 historical orders so nothing was re-sent, and no order was missed.

Growth OS, the internal operations backend

  • Launch desk with atomic slot booking: 6 concurrent orders into a capacity of 2 give exactly 2 orders.
  • Unit economics from COGS, shipping, tax, payment fees, a returns reserve and expected CAC, giving break-even CAC and ROAS, a target CAC and a suggested price.
  • Paid tests that scale only when every creative is profitable, has enough data, and there is budget and stock left.
  • Meta budget changes are stored before they are sent and confirmed only by reading them back from Meta.

04Every feature (302)

302 features in 22 areas, each with its status.

Storefront shell and navigation23
  • Design tokens generated from the design fileBuilt, dev store

    53 colour, type and spacing tokens are generated from the design system file, so the theme cannot drift from the design and merchants cannot break it.

  • Semantic CSS layer over tokensBuilt, dev store

    A shared semantic style layer maps tokens to surfaces, text and states, and a test checks that every CSS variable used is defined.

  • Header with two-message announcement barBuilt, dev store

    Dark header with logo, main navigation, search pill, account icon and live cart count, under an editable two-message announcement bar.

  • Mega menu with promo tileBuilt, dev store

    Shop menu opens a multi-column panel led by a numbered 'what it fixes' column plus a merchant-set promo tile; Escape closes it and returns focus.

  • Mobile navigation drawerBuilt, dev store

    Full-height phone drawer and tablet side panel with menu links, account, track order and help links, built on the native dialog element.

  • Predictive search dialogBuilt, dev store

    Search dialog shows live product suggestions with the correct buying state and tier price, plus quick 'problem' chips, rendered server side through Shopify's Section Rendering API.

  • Shopify-hosted account iconBuilt, dev store

    Header account icon uses Shopify's own account component, so sign in and orders run on Shopify's hosted customer accounts.

  • Red launch-day header barBuilt, dev store

    While a launch is live, a red launch bar replaces the announcement across the whole site, driven by one launch-day switch.

  • Footer with newsletter and menusBuilt, dev store

    Footer with newsletter signup, Shop, Ways to buy and Support menus, social links and a legal row with currency and country.

  • Footer language switcherBuilt, dev store

    Shows a language selector only when the store publishes more than one language, using Shopify's native localization form.

  • Thai locale and Thai-safe fontsBuilt, dev store

    All theme strings ship in English and Thai, with a Thai-capable font fallback and Thai-specific type rules; a test blocks reserve-style Thai wording that implies deposits.

  • Open Graph and Twitter card tagsBuilt, dev store

    Every page prints share tags with title, description, image and product price so links preview correctly on social apps.

  • Favicon and editor presetsBuilt, dev store

    Merchants set the favicon in the editor, and every non-main section has a preset so it can be added from the theme editor.

  • Store password page with signupBuilt, dev store

    Branded 'opening soon' page with an email signup and a password field that opens with an accessible error when the password is wrong.

  • Merchant-editable store settingsBuilt, dev store

    Announcement, promo tile, footer copy, social links and the campaign data namespace are editable in the theme editor without a developer.

  • Sticky header with campaign stripDesigned

    Desktop sticky header carrying a rotating strip for live launches and flash sales, with dots and a hide button.

  • Compact phone header on scrollDesigned

    Phone header shrinks to 56px, hides on scroll down and returns on scroll up while a countdown strip stays pinned.

  • Watching list popover in headerDesigned

    Eye icon in the header opens the projects a shopper watches, with unseen update badges and a remove option.

  • Blogs mega menuDesigned

    Header Blogs menu with topics and latest posts that links the store to the content hub.

  • Drawer sub-panels and live badgesDesigned

    Second-level drawer panels, live campaign badges and a Setup Advisor card inside the phone menu.

  • Cookie bar with privacy choicesDesigned

    Consent bar wired to Shopify's Customer Privacy API.

  • Newsletter popupDesigned

    Popup offering a welcome code; Shopify Forms is kept for now and must match the design before publish.

  • Chat bubble and back to topDesigned

    Floating chat launcher (Shopify Inbox is kept for human chat) and a back-to-top button.

Product cards and buying states14
  • One resolver for twelve buying statesBuilt, dev store

    Each product resolves to exactly one of 12 states from Shopify data plus the campaign snapshot, and falls back to plain Shopify state when snapshot data is missing.

  • Product card for stock, sale, sold outBuilt, dev store

    Standard card with price, compare-at price, rounded percent-off badge and sold-out state; flash items show sell-through and the next price step.

  • Pre-order campaign cardBuilt, dev store

    Shows funding progress, phase end, ship window and tier chips priced from Shopify selling plans, tagged Pre-order, Ending soon, Fully funded or Closed.

  • Coming soon cardBuilt, dev store

    Photo, release date, expected Pioneer price, a countdown or Pioneer claim line, waiting count, and a Remind me or Claim Pioneer button.

  • Group buy batch cardBuilt, dev store

    Shows the last sold-out batch, the open batch price from Shopify, a fill bar, close date and a Join batch button.

  • Launch day cardBuilt, dev store

    During launch day the card shows Pioneer slots claimed and a claim button, or a sold-out Pioneer line when slots are gone.

  • Cards that adapt to their own widthBuilt, dev store

    Cards switch to compact layouts based on their own width using container queries, not the screen width.

  • One-click Add for simple productsBuilt, dev store

    Quick Add appears only for single-variant, in-stock products sold without selling plans, so nothing is added with the wrong option or price.

  • Tier price from selling plansBuilt, dev store

    Tier prices come only from the price Shopify will charge on that selling plan; if no plan is attached, no price is shown.

  • Countdown componentBuilt, dev store

    Red countdown that can drop days, grow for home sections and start late; after the deadline it shows 'Updating availability' instead of restarting.

  • Progress bar and status tagsBuilt, dev store

    Shared funding progress bar with caption and design-system status tags for every buying state.

  • Showcase project cardDesigned

    Video-first card for an idea under vote that asks 'Would you buy it?' and never shows a price or cart button.

  • Registered and updated card statesDesigned

    Coming soon card variants for registered, registered with new updates, and launch day.

  • Card loading skeletonDesigned

    Placeholder card shown while products load.

Home page sections21
  • D-Day launch takeoverBuilt, dev store

    On launch day the hero is replaced by a takeover built from campaign data: Pioneer slots claimed, claim button, schedule, next tier and a gift box.

  • Shoppable desk hero with hotspotsBuilt, dev store

    Hero photo with product hotspots pinned to the photo itself; dots that would cover the copy or fall outside the crop are hidden at each width.

  • Ways to buy cardsBuilt, dev store

    Explains the main ways to buy (in stock, pre-order, group buy) as linked cards near the top of the page.

  • Category stripBuilt, dev store

    Row of eight round category tiles linking into the catalog.

  • Ready to ship product tabsBuilt, dev store

    Tabbed product rail by collection with pill tabs and a View all link.

  • Build your workspace tilesBuilt, dev store

    Editorial collection tiles for workspace themes.

  • Setup Advisor pickerBuilt, dev store

    Three common desk problems (lighting, monitor height, cables) as entry cards that lead toward the Setup Advisor.

  • Pre-order campaigns with four tabsBuilt, dev store

    Campaign cards filtered into Trending, New, Ending soon and Fully funded tabs, priced from selling plans.

  • Launch pad for coming soonBuilt, dev store

    Dark 'projects ready for lift-off' block with coming soon cards, countdowns and waiting counts.

  • Golden hour moduleBuilt, dev store

    Shows only during a set hour in Pacific time with a countdown, the next hour and discounted items; hidden the rest of the day.

  • Flash sale sectionBuilt, dev store

    Dark flash sale block with countdown, cards and a red sell-through bar.

  • Group buy explainer and batchesBuilt, dev store

    Three-step explainer of batch pricing next to batch cards for open and sold-out batches.

  • Gift with purchase tileBuilt, dev store

    Promo tile for a spend-threshold gift, edited as a block.

  • Tech bulletinBuilt, dev store

    Featured article plus a list of posts with tag pills linking to tagged blog pages.

  • Launch pad carousel with tooltipDesigned

    Arrow-paged carousel of five upcoming projects with a 'how this works' tooltip.

  • Showcase homepage blockDesigned

    Full-bleed video wall with a live demand ticker and an 'I want this' button that opens the Showcase explainer.

  • Setup gallery with hotspotsDesigned

    Grid of real desk setups with hotspot dots and product chips that open a Shop the look popup.

  • Best sellers and bundlesDesigned

    Ranked best sellers with trend arrows next to bundle offers showing was, now and saving.

  • Early delivery slots tileDesigned

    Dark tile for orders that ship from the first container, with slots left from real paid orders.

  • From the community reelsDesigned

    Vertical customer reels with product chips, shown only for media with usage rights.

  • Brand trust and track record boxDesigned

    Campaign track record (delivered, on time, late, refunded) with factory photo and team, shown only from a real ledger.

Campaign types and ways to buy22
  • In stock buyingBuilt, dev store

    List price, delivery estimate, discount code line and express pay on the card and product page for items ready to ship.

  • Sale and sold out statesBuilt, dev store

    Compare-at sale badge per variant and a disabled Sold out state with no delivery promise.

  • Three-tier pre-order paid in fullBuilt, dev store

    Pioneer, Early bird and Pre-order tiers, each a Shopify selling plan that charges 100% at checkout with no balance left.

  • Inventory equals capacity oversell blockBuilt, dev store

    Each tier's stock is set to its cap with selling stopped at zero, so Shopify itself refuses extra units at the cart.

  • Ending soon, fully funded and closedBuilt, dev store

    Campaigns switch to Ending soon in the last 72 hours, Fully funded at goal, and Closed after the order window ends.

  • Coming soon pre-launchBuilt, dev store

    Products show release date, countdown and expected Pioneer price with no payment taken.

  • D-Day launch dayBuilt, dev store

    A launch-day state opens the Pioneer tier with a claimed counter, site-wide red bar and home takeover.

  • Group buy by batchBuilt, dev store

    Batch price ladder where each batch is a selling plan paid in full; full batches show sold out and the next batch opens.

  • Flash sale displayBuilt, dev store

    Flash cards and section with countdown, sell-through and next price step.

  • Golden hour daily dealBuilt, dev store

    One-hour daily window of discounted items shown on the home page.

  • Restocking with waiting codeDesigned

    Out-of-stock items awaiting a restock sell at list price with an automatic waiting discount and free cancel.

  • Back-order paid in fullDesigned

    Just-sold-out items sold through a discounted selling plan paid in full, shipping with the next factory run.

  • Open-box warehouse dealDesigned

    Inspected open-box units as a separate variant with a discount tag and real unit count.

  • Showcase voting before launchDesigned

    Ideas collect follows and price votes; enough demand promotes a project to Coming soon.

  • Early delivery slotsDesigned

    First paid orders ship from the first container, allocated from real paid orders with a capacity lock.

  • Combo and bundle discountsDesigned

    Buy-the-setup combos with one native discount tier for two or more items.

  • Flash price steppingPlanned

    Flash price steps up automatically as units sell, changed by the campaign Worker.

  • Group buy refund if batch failsDesigned

    A batch that does not fill refunds every order in full within three business days, or rolls over by choice.

  • Group buy campaign detail pageDesigned

    Campaign page for a group buy with tiers, buyer avatars, timeline and a phone sticky buy bar.

  • Batch alert popupDesigned

    Popup to get alerted when the next batch opens, with a success state.

  • D-Day launch pageDesigned

    Standalone launch day page with Pioneer slots and a live claimed counter; a 20 minute cart hold is not possible on Shopify.

  • Gift that hides when gonePlanned

    Native buy X get Y gift that disappears automatically when gift stock runs out.

Product page34
  • Product page frame and breadcrumbBuilt, dev store

    Product template with breadcrumb, title, vendor and one buy box that changes by buying state.

  • Swipeable gallery with thumbnailsBuilt, dev store

    One swipeable media track with thumbnails from tablet up, dots on phones, a state tag and a 'Watch it move' pill when video exists.

  • Three why cardsBuilt, dev store

    Cards under the gallery explain how pre-order, group buy or coming soon works, or show the store's in-stock promises.

  • Variant picker with swatchesBuilt, dev store

    Colour swatches or pills as keyboard-friendly radios; price, compare-at price, image and availability update with the chosen variant.

  • In-stock buy boxBuilt, dev store

    Price with Save pill, in-stock line, delivery date range, discount code line and quantity stepper; hidden promises disappear on a sold-out pick.

  • Express pay badgesBuilt, dev store

    Lists only the wallets Shopify reports as enabled for the store, not a fixed set.

  • Guarantees and honest notesBuilt, dev store

    Per-state guarantees and an honest note on timing, edited by the merchant for stock, campaign, batch, coming soon and showcase pages.

  • Campaign buy box with tier ladderBuilt, dev store

    Status card with funding and phase countdown, then a tier ladder; only the open tier can be bought and other tiers say why not.

  • Price tier popupBuilt, dev store

    Popup listing every tier with plan price, how full it is and why it can or cannot be bought, then the list price after the campaign.

  • Launch day buy boxBuilt, dev store

    Shows Pioneer slots claimed and a 'Claim my Pioneer slot' button at the Pioneer plan price.

  • Group buy buy boxBuilt, dev store

    Shows people joined, spots left, close date and the batch price ladder, then a Join batch button on the batch plan.

  • Coming soon buy boxBuilt, dev store

    Big launch countdown and the first tier's slot with its expected price; no sticky bar and no payment.

  • Sticky buy barBuilt, dev store

    Bar slides in once the main button scrolls away, under the header on desktop and at the bottom on phones, with funding and countdown on campaigns.

  • Plan pages never sell at list priceBuilt, dev store

    If the chosen variant lacks the open selling plan, the page says Unavailable instead of falling back to the list price.

  • Correct singular and last-day copyBuilt, dev store

    Countdowns and counters say '1 day left', 'last day', '1 spot left' and '1 person waiting' instead of broken plurals.

  • App block slot in buy boxBuilt, dev store

    Merchants can drop a kept app's block into the buy box from the theme editor.

  • Product and breadcrumb structured dataBuilt, dev store

    Product with one offer per variant and a breadcrumb list on buyable products; Google's Rich Results Test found three valid items and no errors.

  • Organization and WebSite structured dataBuilt, dev store

    Home page prints Organization and WebSite data with a site search action.

  • Why we are launching this storyDesigned

    Dark story block with four stats and a workshop video on campaign pages.

  • Campaign timeline and project updatesDesigned

    Nine-step timeline with factory photo updates filterable by All, New and Production.

  • Description, specs and Q&A accordionsDesigned

    Description, 'Will it fit?' block, sticky specs and questions and answers below the fold.

  • Reviews with photos and write reviewDesigned

    Review list with photos and an early-reviewer report, plus a write-a-review modal; Loox reviews are exported before the app is removed.

  • Makes it better cross-sellDesigned

    Related items tagged by the role they play for this product.

  • Often bought together and comboDesigned

    Often bought together offer and a combo product page using a native discount.

  • How pre-order works modalDesigned

    Modal explaining pay now, ship window and refund rules.

  • Will it fit size guideDesigned

    Size guide modal checking a product's footprint against a desk.

  • Video lightbox with chaptersDesigned

    Full video player with chapters and the products shown in the clip.

  • Factory photo lightbox and update cardDesigned

    Lightbox for factory photos and a campaign update card.

  • PDP trust strip and track recordDesigned

    Guarantee strip under the button plus a track record, factory and team card on campaign pages only.

  • AI fit check from a desk photoDesigned

    Shopper sends a desk photo and gets a footprint check before buying.

  • Sold this month and live viewersDesigned

    Social proof lines shown only when backed by real order and pixel data.

  • Save to wishlist heartDesigned

    Heart button saving a product to the shopper's saved list.

  • PDP loading skeletonDesigned

    Placeholder layout while the product page loads.

  • D-Day live stream and claim barDesigned

    Embedded launch live stream with a Pioneer claim bar; live chat is not possible on this plan.

Collections and search10
  • Collection page with mixed statesDesigned

    Dark banner with counts, advisor chips and a grid of products in mixed buying states.

  • Collection filters and sortDesigned

    Sidebar filters for availability with counts, price, type, brand, vibe and 'fits a desk', plus sort.

  • Mobile filter sheetDesigned

    Bottom sheet with the same filters on phones and a chip bar on tablets.

  • Shop the look railDesigned

    Rail of styled setups inside the collection with links to their products.

  • Campaigns collection and listDesigned

    Collection of pre-order and coming soon items filtered by campaign data, plus a phone campaigns list.

  • Collection buying guide bannerDesigned

    Banner linking a collection to its buying guide.

  • Search results and no resultsDesigned

    Full search results page with an empty state.

  • Search tabs and coming soon hitsDesigned

    Search grouped into Setups, Articles and Help, with a Coming soon group, recent and trending searches.

  • Suggest for Showcase from searchDesigned

    A no-results search offers to suggest the product for Showcase voting.

  • Compare three productsDesigned

    Side-by-side comparison of up to three products, swipeable on phones.

Cart and checkout11
  • Cart drawer with one totalDesigned

    Drawer with a gift threshold bar, pre-order lines showing tier and ship window, one total, a refund line and express pay.

  • Phone cart sheetDesigned

    Phone cart with gift bar, quantity stepper, refund line and express pay.

  • Empty cart stateDesigned

    Empty cart drawer with next steps.

  • Toasts for cart actionsDesigned

    Toasts for added, pre-order confirmed, group buy tier, saved and errors.

  • Lost-response safe cart addsBuilt, dev store

    If an add-to-cart reply is lost, the cart is re-read and compared instead of re-sending, so items are never added twice.

  • Shopify-hosted checkout brandingPlanned

    Checkout stays on Shopify with only logo, colours and fonts changed; pre-order rules are explained before checkout.

  • Checkout steps reference screensDesigned

    Shipping, payment and review steps with a 'what you are agreeing to' block, kept as reference since checkout is Shopify-hosted.

  • Express pay sheetsDesigned

    Shop Pay, Apple Pay and PayPal sheets, kept as reference for Shopify's own wallets.

  • Order confirmation paid in fullDesigned

    Confirmation showing the amount paid and ship window.

  • Thank-you 'what happens next' blockPlanned

    Checkout extension on the thank-you and order status pages explaining the pre-order timeline.

  • Address form with suggestionsDesigned

    Address form with US address suggestions and an error state.

Accounts and order lifecycle16
  • Hybrid accounts modelPlanned

    Shopify hosts sign in, orders, addresses, cards and returns; campaign areas are theme pages fed by the Worker with magic link email.

  • Account hubDesigned

    Account home with tabs and links to orders, campaigns and settings.

  • Addresses, payment methods, notificationsDesigned

    Address book with suggestions, Shopify-hosted payment methods and email notification toggles.

  • Campaigns I followDesigned

    Account tab listing the campaigns a shopper follows.

  • Watching list pageDesigned

    Projects a shopper watches with update badges, remove and an empty state.

  • Sign in to watch by magic linkDesigned

    Email-only sign in that sends a magic link when someone watches a project.

  • Sign in, create, forgot passwordDesigned

    Sign in with error, create account, forgot password and link sent screens.

  • Referrals and friend inviteDesigned

    Referral link with share and a five-friend progress bar, plus an invite landing page.

  • My desk planDesigned

    Saved desk plan with a top-view layout and items in buying order.

  • Saved itemsDesigned

    List of saved products with an empty state.

  • Inbox and profile Workspace 360Designed

    Message inbox and a workspace profile page.

  • Email preferences and unsubscribeDesigned

    Email preference centre reached from email footers.

  • Order tracking with factory photosDesigned

    Order timeline merged with a factory photo feed and 'where your unit is' steps.

  • Cancel a pre-orderDesigned

    Cancel with reasons or move to a later batch; free until production.

  • Back-in-stock notifyDesigned

    Notify-me flow for sold-out items.

  • Start a returnDesigned

    Two-step return request using Shopify's native returns.

Coming soon, Showcase and community17
  • Remind me signup wiringIn progress

    Remind me buttons exist on cards and product pages and the Worker signup API is live, but the popup that connects them is not built yet.

  • Register popup with slot numberDesigned

    Remind me opens a register popup, then success with a slot number, then 'already registered' with cancel.

  • How a product gets to launchDesigned

    Explainer page from Showcase through research, your vote, coming soon and delivery.

  • Partner with us formDesigned

    Page for creators, brands and investors with a request form.

  • Showcase collection and leaderboardDesigned

    Masonry video tiles with follow, a leaderboard, how it works and a launched timeline.

  • Showcase reel playerDesigned

    Autoplay vertical reels with chapters, up next and follow, guess, comment and share.

  • Showcase project detailDesigned

    Video-first project page with launch-gift vote, updates, specs, comments and a sticky button.

  • Follow flow with price guessDesigned

    Pick a variant, guess a fair price, leave contact and get a follower voucher and referral link.

  • Showcase first-tap explainerDesigned

    Explains that ideas are not for sale yet, lists four follower perks and collects one email.

  • Suggest a productDesigned

    Form for shoppers to suggest a product for Showcase.

  • Showcase entry points and ad landingDesigned

    Entry points from blog, search, after-purchase email and a social video landing page.

  • Showcase hub and Decode storyDesigned

    Older Showcase hub and a brand storyline page.

  • Setup Advisor landing, intake, planDesigned

    Upload a desk photo, see findings as hotspots, then a phased plan with products by role.

  • Advisor chat drawer and launcherDesigned

    Chat drawer, phone sheet and launcher as a shortcut into the Advisor.

  • Advisor powered by AI visionPlanned

    Advisor answers from real desk photos using an AI vision model running on the Worker.

  • Gallery by variant with Shop the lookDesigned

    Setup gallery filtered by product, colour and size, with a popup to shop the look.

  • Submit your setup for store creditDesigned

    Shoppers submit their desk setup and get store credit once it is approved and published.

Content and system pages14
  • Blog index and articleDesigned

    Tech bulletin index and article layout.

  • Blog SEO hub with nine page typesDesigned

    News hub, review article, topic hub, brand page, compare, best of, crowdfunding tracker, glossary and author profile at three widths.

  • News post and how-to guideDesigned

    Data-driven news posts with 'what we know' and an 'our take' verdict, plus a how-to guide template.

  • About and brand timelineDesigned

    About page with the brand timeline.

  • FAQ with track recordDesigned

    How buying works FAQ with a track record block.

  • Six policy pages with real copyDesigned

    Returns, pre-order terms, group buy terms, warranty, privacy and terms of service.

  • Contact with Advisor cardDesigned

    Contact page with an instant Setup Advisor card and a message form.

  • 404 pageDesigned

    Not-found page that points back to shopping.

  • Gift card pagePlanned

    Gift card template with QR code, code and print button in the new style.

  • Article structured dataPlanned

    Article data on blog posts for search engines.

  • Generic app sectionPlanned

    One section that accepts app blocks on any template.

  • Lifecycle and launch emailsDesigned

    Twelve campaign moments plus lifecycle, Showcase lead and day-30 emails, sent only with consent.

  • Welcome code emailPlanned

    Newsletter welcome code sent by Shopify Email automation.

  • Text a friendDesigned

    Share by text message; postponed because version one is email only.

Shopify custom app and data11
  • 9space-ops custom appIn progress

    Custom Shopify app created with Shopify CLI and installed on a Basic-plan development store with campaign scopes; still a skeleton with template demo parts to remove.

  • App-owned campaign snapshot fieldBuilt, dev store

    One app-owned product field, readable by the storefront, carries public campaign state; only the Worker or app writes it.

  • Campaign snapshot contractBuilt, dev store

    Documented fields for kind, state, dates, goal, ordered, waiting and tiers; money never lives in the snapshot.

  • Basic-plan development storeBuilt, dev store

    A separate Basic-plan dev store with test payments used for every proof, so the live store is never touched.

  • Campaign metaobject definitionsPlanned

    App-owned types for campaign updates, showcase projects, setups, UGC media, trust ledger, golden hour, topics, brands, glossary, authors and crowdfunding items.

  • Webhooks from app to WorkerPlanned

    Paid, cancelled, refund, fulfilment and inventory webhooks routed to the campaign Worker.

  • App proxy for campaign actionsPlanned

    Storefront path that lets watch, follow, vote and Advisor calls reach the Worker.

  • Web pixel funnel eventsPlanned

    App pixel sending page, product, cart and checkout events for a per-product funnel.

  • Shopify Flow recipesPlanned

    Tag low stock, move long sold-out items to Restocking and tag customers by campaign.

  • Store credit for approved setupsPlanned

    Issue store credit automatically after a shopper's setup is published.

  • Theme app embed decisionsPlanned

    Each existing app was scored on cost, fit, data lock-in and effort; reviews move in-house, chat and forms stay, four apps go.

Campaign engine (Worker and D1)17
  • Five-minute campaign state machineRunning

    A scheduled Worker moves approved campaigns through scheduled, coming soon, pre-order open and closed every five minutes.

  • Proof flags before taking moneyRunning

    Pre-order opens only when the campaign is approved and flags prove verified checkout, enforced deadline and capacity, full payment, a selling plan and a ship window.

  • Encrypted waitlist APIRunning

    Waitlist signups store email encrypted with AES-GCM, with consent, duplicate protection, rate limits and unsubscribe; not yet wired to the theme.

  • Health and admin APIRunning

    Public health check plus a token-protected admin API to read status, save campaigns and run simulations.

  • Commerce simulation endpointRunning

    Simulates quotes, gift eligibility, paid allocation and refunds with zero external writes, emails or orders.

  • Snapshot publisher with compare-and-setBuilt, dev store

    Writes campaign state to Shopify only if the version still matches, so an admin edit during a cron run cannot create ghost launch events; switched off.

  • Email outbox after confirmed publishBuilt, dev store

    Launch emails wait until Shopify confirms the snapshot, keep the same idempotency key and park for review after 23 hours; switched off.

  • Paid order allocationBuilt, dev store

    Signed paid-order webhooks allocate early-delivery units atomically, survive duplicates and out-of-order refunds; switched off until the app is wired.

  • Tier model validationBuilt, dev store

    Validates tier ladders strictly and finds the open tier; discounts may not grow down the ladder.

  • Pre-order selling plan builderBuilt, dev store

    Builds a selling plan group with one 100% charge plan per tier and reads it back to assert full payment.

  • Close tier then open next capPlanned

    Delete a full tier's plan before raising stock to the next tier's cap, so no tier ever oversells.

  • Close on time with late-cron alertPlanned

    Remove plans and zero stock at the deadline, with an alert if the cron runs over 15 minutes late.

  • Automatic refund runsPlanned

    Refund every order when a goal is missed, a batch does not fill or an order is cancelled before production, after one approval.

  • Follow, vote, watch and referralPlanned

    Worker records follows, votes, watching, suggestions and referrals with magic link email.

  • Nightly jobs for live numbersPlanned

    Nightly best sellers, sold this month, trust ledger and waiting counts, shown only from real data.

  • Exception inbox and alertsPlanned

    Failures and edge cases land in an inbox and a team chat alert.

  • Multi-round campaign historyPlanned

    Keep each campaign round and move a waitlist to the next round.

Order alerts7
  • Order alert Worker to team chatRunning

    New Shopify orders are posted to the team chat by a Worker that first verifies Shopify's signature on the raw request body.

  • Durable queue before acknowledgingRunning

    Each order is stored in a durable queue before Shopify gets its reply, so a crash cannot lose an order.

  • Retries with backoff and rate limitsRunning

    Sends one at a time and retries from five seconds to one hour, respecting the chat service's retry hints.

  • Privacy-safe order messagesRunning

    Messages carry items, total, payment state, ship country and an order link, never customer names, emails, phones or addresses.

  • Ops controls: pause, release, replayRunning

    Token-protected endpoints to pause, release one test, import already-sent orders, enable delivery and replay blocked work.

  • Controlled cutover from laptop pollerRunning

    Replaced a laptop poller by importing past orders so none were resent or missed, then pausing the old job.

  • One-time store snapshot reportRunning

    A three-part report on orders, traffic and cart drop-off, and risks was delivered once to the team chat.

Growth OS: catalog, research and listening7
  • Internal product catalogBuilt, dev store

    Imports product notes, then create, edit, archive, restore and search products, with image upload and a media rights confirmation.

  • Social listening monitorsBuilt, dev store

    Saved keyword monitors pull public Reddit and Google News feeds on demand, or import CSV and JSON mentions with dedupe.

  • R&D insights and hypothesesBuilt, dev store

    Pick mentions as evidence and move hypotheses from inbox to research, testing and done.

  • Topic grouping labelled as rulesBuilt, dev store

    Groups mentions by topic with plain rules and labels samples of 500, never pretending to be AI sentiment.

  • Markets and competitorsBuilt, dev store

    Stores audiences, hypotheses, evidence and competitor price ranges per market.

  • REST API, audit log and exportBuilt, dev store

    Local REST API with docs, an audit trail of changes, JSON export and token access for the local network.

  • Raw admin with nine tabsBuilt, dev store

    Local admin UI with overview, products, launch desk, media and AI, test and scale, listening, research, video studio and connections.

Growth OS: launch desk5
  • Launch desk per productBuilt, dev store

    Set offer, available and pre-order prices, open and close times with time zone, ship dates, policy, caps and batch stock.

  • Readiness checks before openingBuilt, dev store

    A product moves to coming soon, pre-order or available only when its checklist passes.

  • Atomic slot reservationBuilt, dev store

    Each order re-checks capacity in one transaction; six concurrent orders against two slots produce exactly two.

  • Waitlist, manual orders and fulfilmentBuilt, dev store

    Collect waitlist entries, record manual orders, confirm payment by receipt and shipping by tracking code.

  • Shopify manifest exportBuilt, dev store

    Exports a launch as a manifest for Shopify; no live sync yet.

Growth OS: studio and AI media5
  • Video source libraryBuilt, dev store

    Save Douyin and Instagram links with hook and angle notes, download public sources within size and time limits, or upload clips.

  • Clip editor for three formatsBuilt, dev store

    Trim, crop to 9:16, 1:1 or 16:9 and mute to make a new MP4 while keeping the source; clean export needs rights.

  • AI video adaptersBuilt, dev store

    Runway and Muse Video tasks are saved as drafts and sent only by a separate action, so credits are never spent twice.

  • Skiv media library importBuilt, dev store

    Browse, search and import reference media and upload private files to the Skiv library.

  • Three-scene video studioBuilt, dev store

    Write 15 or 30 second three-scene scripts and render real H.264 MP4s in three sizes, with a preview watermark on drafts.

Growth OS: economics, paid tests and ads6
  • Unit economics modelBuilt, dev store

    From COGS, shipping, duty, payment fees, refund reserve, discount and expected CAC, compute a suggested price and break-even CAC and ROAS.

  • Paid test plansBuilt, dev store

    Test plans per product with budget, spend cap, loss limit, sample threshold and ready videos.

  • Per-creative metrics and accountingBuilt, dev store

    Daily or CSV metrics per creative with CTR, CVR, CAC, ROAS and contribution after ads; overlapping windows are blocked.

  • Scale, hold or pause adviceBuilt, dev store

    Recommends scaling only when every creative is profitable, samples are enough, budget remains and stock can take orders.

  • Meta Ads connectorBuilt, dev store

    Maps ads to videos, pulls insights read-only, and sends approved budget changes that are saved first and confirmed by reading back.

  • Reconcile before trusting ROASBuilt, dev store

    Ad insights stay in review until real orders, units, revenue and refunds are reconciled; uncertain commands are never resent.

Ops admin screens (Growth OS admin)15
  • Demand dashboard for ShowcaseDesigned

    KPIs, leads by source, survey drop-off, project table and detail, promote to Coming soon and a suggestion queue.

  • Today screenPlanned

    Opens with decisions to approve, exceptions, campaign progress, cash and margin, product pipeline, system health and the next seven days.

  • Products workspacePlanned

    Internal product file around each Shopify product: costs, media rights, supplier, campaign history, listing and notes.

  • Campaigns launch desk screenPlanned

    Setup, readiness checklist with 'approve and arm', live tracking, updates, ledger, rounds and audit for each campaign.

  • Research screenPlanned

    Listening, R&D pipeline, competitor prices with MAP warnings and a crowdfunding tracker.

  • Studio screenPlanned

    Asset library with rights, edits, AI jobs and scripts with renders.

  • Ads and tests screenPlanned

    Test plans, creative metrics, scale, hold or kill proposals and a product verdict.

  • Economics screenPlanned

    Cost models with scenarios, tier price proposals and an after-test view.

  • Content screenPlanned

    Queues for blog drafts, UGC setups, reviews, emails and policies, each needing human approval.

  • Orders and ops screenPlanned

    Orders by campaign and tier, refund runs, group buy batches, returns and an exceptions inbox.

  • Customers and leads screenPlanned

    Waitlist, Showcase leads, followers, referrals and consent-aware export and delete.

  • Automations screen with kill switchesPlanned

    Rules, schedules, job health and per-type kill switches; rules stay manual until trusted.

  • Settings and connections screenPlanned

    Connection status for each service without showing secrets, team roles with two-factor sign in, audit log and backups.

  • Proposal card with undoPlanned

    Shared pattern: every automated write shows reason, before and after, approve, edit or reject, and undo.

  • Hosted admin on Worker and D1Planned

    Move shared campaign, lead and order tables to D1 behind one hosted admin; studio work stays local.

Planned automation engines6
  • Listing engine from a URLPlanned

    Turn a supplier URL into a draft product with specs kept as facts, rewritten copy and unverified images blocked.

  • Pricing advisor with guardrailsPlanned

    Weekly price suggestions from landed cost and benchmarks, with hard MAP floors, margin floors and change limits.

  • Store health monitorPlanned

    Weekly score for missing images or GTINs, sold-out active products, broken links and duplicate meta.

  • Product feed managerPlanned

    Clean product feed with GTINs to unlock free price benchmarks and shopping channels.

  • Order-level profit trackingPlanned

    Profit per order, SKU and channel after landed cost, fees, shipping and ad spend.

  • Ad copy by anglePlanned

    Generate ad assets per angle within each platform's character limits.

Live theme rescue and unpublished clones18
  • Live theme snapshot in gitBuilt, dev store

    All 556 live theme files pulled into the repo and byte-checked against the store.

  • Live theme auditBuilt, dev store

    Documented live bugs, source risks and interface issues, including expired countdowns, an unconfirmed signup form and tablet overflow.

  • Shared purchase logicBuilt, dev store

    Resolves variants across all three options, decides buy state fail-closed and never auto-adds the first variant.

  • Promax preview themeBuilt, dev store

    Unpublished rebuild with shared header, footer, catalog, search, cart and five product templates on native checkout.

  • Figma restore clone fixesBuilt, dev store

    Fixed hero carousel, countdowns, coming soon form, pre-order popup, gallery hotspots and tablet menu, reaching Shopify checkout with the right pre-order price.

  • Desktop scale and width correctionBuilt, dev store

    Fluid desktop frame, compact cards and a fixed search grid, checked across seven page types with no overflow.

  • Gallery page with ten real setupsBuilt, dev store

    Gallery with a style filter, product dialog and keyboard support on the clone.

  • Live gallery page fallbackRunning

    A published gallery page on the live store links ten real setup collections and guides.

  • Guides index and articleBuilt, dev store

    Blog index with topics and pagination, plus articles with table of contents and related products.

  • Social reels and video dialogBuilt, dev store

    Product reels with posters and a video dialog that stops playback on close.

  • Workspace and combo pickerBuilt, dev store

    Pick variants and quantities for several items and add them in one cart request with a lock.

  • Launches pageBuilt, dev store

    Page of open, upcoming and past campaigns from approved data, with empty and error states.

  • Restock and back-order flowsBuilt, dev store

    Restock signup with consent and a back-order flow on native purchase.

  • Signup confirmation only when savedBuilt, dev store

    Registration says success only after a confirmed save, locks double submits and starts with consent unchecked.

  • Sales channel links per SKUBuilt, dev store

    Shows other marketplace links only when a real URL exists for that product.

  • Seven restored product landing pagesBuilt, dev store

    Seven priority product pages keep their original articles, images and videos with clearer buying reasons.

  • Local module simulation labBuilt, dev store

    Local lab running campaign, combo, gift and restock flows with no external writes.

  • Product listing guideBuilt, dev store

    Guide mapping each product page area to its data field, plus notes for 13 kinetic sculpture products.

Design system and design ops9
  • Full storefront design, about 155 screensDesigned

    Claude Design working project with about 155 labelled screens at 1440, 834 and 390 px.

  • Click-through prototypesDesigned

    Desktop prototype with 35 views and phone prototype with 30 views, wired with real product data.

  • Site flow and user flow mapsDesigned

    Five traffic flows from ad, social, email, blog and returning visits into landing pages and journeys.

  • Versioned design manifestBuilt, dev store

    Records the version of all 64 design files and diffs them before each port.

  • Pay-in-full design revisionBuilt, dev store

    A scanner found 735 deposit or balance mentions in 39 files; after the revision 18 remain, none visible to shoppers.

  • Design System reference with 92 componentsBuilt, dev store

    Private reference page of 92 components built from the design files.

  • Seven locked business decisionsBuilt, dev store

    Pay in full, hybrid accounts, Shopify checkout, native combos, new theme, email only and split hosting, plus app and language decisions.

  • Promax design spec and boardBuilt, dev store

    Earlier design spec with tokens, grid and home contract, plus a 34-feature keep, fix, add or defer matrix.

  • Tablet layouts for system pagesPlanned

    Tablet 834 versions of system, policy and account pages are not drawn yet.

Quality and tooling14
  • Node test suiteBuilt, dev store

    390 Node tests for theme, cards, home, product page and Worker logic, all passing.

  • Python test suiteBuilt, dev store

    147 Python tests for Growth OS, all passing.

  • Worker runtime testsBuilt, dev store

    34 tests for the order alert Worker in the real Workers runtime.

  • Liquid harness matching ShopifyBuilt, dev store

    Test harness reproduces Shopify behaviour measured on a dev store: store time zone dates, auto-escaped translations and integer division.

  • Theme Check with zero offensesBuilt, dev store

    The new theme passes Shopify Theme Check with no offenses across 76 files.

  • Liquid syntax and brace guardBuilt, dev store

    Tests catch broken Liquid and stray braces before anything is pushed.

  • Dev store seed scriptsBuilt, dev store

    Seed fixture products, selling plans, snapshots, home content, product page fixtures and Thai titles; they refuse any store that is not a dev store.

  • Three-width visual checksBuilt, dev store

    Each sprint is checked at 1440, 834 and 390 px for overflow, a single H1 and Liquid errors, with screenshots.

  • Token and card specimen sectionsBuilt, dev store

    Dev-only pages showing every token and every card state for visual review.

  • Sprint ledgers and independent reviewsBuilt, dev store

    Every sprint logs red then green per task, rulings with cost if wrong, and a fresh-model review with fixes.

  • Old theme validator and locale syncBuilt, dev store

    Scripts validate changed Liquid and fill missing locale keys without overwriting translations.

  • Performance and device testingPlanned

    Measure page speed and Core Web Vitals and test on Safari and real devices before publish.

  • Accessibility passPlanned

    Full keyboard, contrast and zoom review, including a design token that misses contrast for small text.

  • Publish runbook and rollbackPlanned

    Pilot one real campaign end to end, then publish with a runbook and a rollback path.

05Hard problems solved

  1. ProblemMulti-tier pre-orders, paid once, on a plan without Shopify Functions.

    How I solved itSelling plans at 100% for each tier, inventory equal to capacity so Shopify blocks overselling, and an assertion that reads each plan back after creating it.

  2. ProblemLocal Liquid tests passed while Shopify rendered differently: dates in the store time zone, auto-escaped translations, integer division rounding down.

    How I solved itA probe section on the development store measured the real behaviour, the test harness was corrected, and the suite now runs in 3 time zones.

  3. ProblemAn admin editing a campaign while the scheduler runs could create a phantom launch and send wrong emails.

    How I solved itCompare-and-set by version and transition token; events and outbox rows are written only when that write wins.

  4. ProblemShopify webhooks repeat, arrive out of order, for example a refund before the payment, or arrive at the same time.

    How I solved itReceipts by token, slot allocation by a conditional insert against capacity, and CHECK constraints in the schema.

  5. ProblemA lost add-to-cart response easily causes a duplicate line.

    How I solved itRead the cart before and after and compare quantities by variant, plan and properties; never resend the mutation.

  6. ProblemAd spend and AI credits cannot be taken back once spent.

    How I solved itWrite the command before sending, confirm by reading back, never auto-resend an uncertain call, and keep budgets in minor units with Decimal.

06How AI agents built it

  • A Vietnamese spec with the decisions, then English plans for the agents with failing tests written first. The plan for one sprint ran 4,370 lines over 12 tasks.
  • Tiered agents: one model writes each task, another reviews it, and the strongest model reviews the whole branch.
  • A ledger records RED then GREEN for each task, and every deviation from the plan states its cost if wrong.
  • Independent review by another model or session. One sprint came back with 0 Critical, 9 Important and 14 Minor findings; all 9 Important ones were fixed test-first.
  • Verification on the real platform instead of trusting a simulator: probe sections, real Cart API errors, a paid test order, screenshots at 1440, 834 and 390 px.
  • Safety rules: seeding refuses any store that is not the development store, nothing is pushed to the live theme, and agents never type passwords or card numbers.
  • 26 commits in one day, with the test suite going from 119 to 290, then 390 after the product page sprint, green after every task.

07Stack

Storefront
Shopify Liquid Online Store 2.0, Web Components, ES modules, container queries
Shopify APIs
Section Rendering, Predictive Search, Ajax Cart, Admin GraphQL, selling plans, metafields
Edge
Cloudflare Workers, D1, Durable Objects, cron, WebCrypto
Integrations
Shopify webhooks, Telegram Bot API, Resend, Meta Marketing API, AI video APIs
Ops backend
Python 3.12 standard library, SQLite WAL, Pillow, FFmpeg
Tests
node:test, a Liquid harness matched to Shopify, Vitest on workerd, Python unittest, Theme Check

08Not done yet

  • The new theme is not published, so there are no conversion or revenue results to claim.
  • Foundation, frame and cards, home sections and the product page buy flow are done. Collection, cart, the rest of the product page, the campaign engine switch-on, Showcase, accounts and launch QA are still planned.
  • The campaign Worker is deployed, but its writes to Shopify, email and slot allocation are switched off until relaunch.
  • Full-payment pre-orders are proven only on a development store with a test gateway.
  • Growth OS runs on one machine, and its ad and AI adapters are tested with mocks only.
  • No Lighthouse or real-device tests yet.

Founder, 2016 to 2025Own brand

Vaithuhay.com

A Vietnamese e-commerce brand I founded in 2016 and ran for nine years. It brought new, well-designed tech, workspace and lifestyle products to Vietnam, many of them straight from Kickstarter and Indiegogo campaigns, and sold them online on Shopify with our own UI/UX and our own backend. The campaign model I build today, with showcases, coming-soon pages, pre-orders and group buys, was born here.

Revenue first: marketing, funnels, teams, KPIsAutomate first, hire later
200-300kmonthly visits at the peak
250kmembers in the Facebook group
500kcommunity members in total
~600kpage likes across the main and satellite pages

01What the brand did

  • Positioned as a channel to develop and introduce new products: workspace, lifestyle, hi-end gear.
  • Buyers could not touch these products before paying, and many were still crowdfunding abroad, so the brand had to earn trust online first.
  • Pre-orders and group buys let people buy a product before it reached Vietnam, often in stages.

02How I found the model

  1. ProblemWe sold trending, high-value tech that had to be imported. Buying stock of products nobody in Vietnam had tried yet tied up a lot of cash and risked dead inventory.

    How I solved itOpen sales as pre-orders before importing, so demand is proven and paid for before any stock is bought. It worked.

  2. ProblemIn Vietnam, buyers close orders in the inbox and in chat. Every pre-order needed a person to answer questions, quote and confirm, which did not scale.

    How I solved itBuild our own website and move customers from chat onto the web, where they read, decide and check out on their own.

  3. ProblemPeople were committing to products that did not exist in Vietnam yet, so they needed a clear reason to decide now rather than later.

    How I solved itUI/UX designed to move visitors to buy, built around the fear of missing out on a limited launch: clear stages, limited places and a call to action on every page.

  4. ProblemOne product page with a pre-order button could not carry every stage of a launch, from first interest to delivery.

    How I solved itA set of website sales mechanics grew out of this model: showcases to test interest, coming-soon pages to collect demand, group buys that pool many buyers into one batch, and traffic-driven campaigns that pulled the community from Facebook onto the site.

03Where that model lives today

It is the same campaign model I am now building for 9spaceX: showcase, coming soon, launch day, tiered pre-orders and group buys in batches. At Vaithuhay it ran on people answering messages and updating spreadsheets. At 9spaceX it runs on its own, with full payment, hard capacity caps and automatic launch states.

04What I built

Store and backend

  • Storefront UI/UX I designed myself on a Shopify theme, built to move visitors from interest to purchase.
  • Our own backend, so catalogue, campaigns and operations could change without waiting on the platform.
  • Website sales mechanics for the launch model: showcases, coming soon, staged pre-orders and group buys, including products from Kickstarter and Indiegogo.
  • An affiliate partner programme with 8 to 30% commission, and instalment payments on top of the store.

Growth engine

  • Content and community as the main channel: a product blog, Facebook groups and pages, with traffic-driven campaigns moving that community onto the website to buy.
  • At the peak: 200-300k visits a month, a 250k-member Facebook group, 500k community members in total and about 600k page likes across the main and satellite pages.

05The turning point

The website, the marketing and our group-buy sales system worked, and the brand grew fast. Operations could not keep up with that growth, and the business went into a crisis of growth.

When AI took off, I found my path. The e-commerce systems I had wanted to build for years, held back by technology and cost, became simple to build. Today I believe the only real barrier to running e-commerce well is the founder's imagination.

06What I carry into every project

  • Sell before you stock: pre-orders charge in full with hard capacity caps that the platform itself enforces, as in 9spaceX, so a campaign can never sell more than it can deliver.
  • Order alerts, refunds, supplier delays and customer messages are designed to run without a person, with people approving the exceptions.
  • Finance is visible from day one: margin, cash and the real cost of every order.
  • Data is organised so that AI can read it safely and help the business grow.

07About the figures

All figures are founder-reported peaks from 2016 to 2025.

Live since July 2026Own business, co-founded

Là Nắng apartment operations

Fully furnished serviced apartments in Ho Chi Minh City: we lease whole units and rent them out by the room. Before the app, a small team that is not technical ran everything on chat apps and paper. One React and Supabase codebase now serves three groups: visitors on an SEO booking site, staff on an installable app that covers the whole tenancy, and tenants on a portal with their invoices and bank QR codes.

Automate first, hire laterFinance thinking built in
lanang.house
68versions in git
63Playwright spec files gating releases
2.67 s to 1.49 shome page LCP
2,118 KB to 151 KBroom page images
Là Nắng serviced apartments
Là Nắng serviced apartments

01The brief

  • Roadmap of Jul 15, 2026: a real database, a monthly billing cycle, OTP login with permissions on the server, bank-transfer reconciliation, chat notifications, photo upload and OCR, then signatures, PDFs, partial payments and offline use.
  • Product promise for staff who are not technical: remind them of the right task and say exactly what to do.
  • Later needs came from my own field reports: foreign tenants, contracts printed in the right legal entity name, and enough data for a monthly financial report.
  • Business model detail: deposits paid to landlords are recorded as assets, and a margin module compares whole-unit rent to room prices across 20 areas of the city.

02What I built

Public booking site

  • Rooms, location, about and sign-up pages in Vietnamese and English, prices in VND and USD.
  • Server-injected title, description, canonical, Open Graph and breadcrumbs for every room; rented rooms return 404 with noindex.
  • Lead capture with de-duplication, limits per phone and IP, a honeypot and referral links checked against sales profiles; a lead funnel that ends in a move-in checklist.

Staff app for the whole tenancy

  • A floor-plan editor with 15 amenity types that generates sales tags; safe room-code changes that keep the old code as an alias.
  • Tenant intake by ID-card QR, OCR and passport MRZ, co-tenants, and self-fill links that staff approve.
  • A 16-article contract with 2 appendices, house rules, residence forms for foreign tenants, amounts written in words, bilingual handover records, and on-screen signatures logged with SHA-256.
  • Meter readings, prices locked at period close, billing history per tenancy; deposits and move-out settlement; expenses with approval limits.
  • Founder report: KPIs, P&L by building and by room, occupancy, suggested prices and a mini balance sheet.

Getting paid

  • A VietQR code for every invoice and a bank webhook that writes each transfer into a transactions table.
  • Automatic matching of transfer notes to invoices, including old room codes, with partial, over and advance payments.
  • A tenant portal opened by QR or email code with invoices, VietQR, wifi details, call and chat buttons and a USD conversion.

03Hard problems solved

  1. ProblemSeveral devices editing the same data without losing anything.

    How I solved itSync merges by row and pushes only changed rows; invoice and payment history is append-only. A stuck 'pushing' flag that froze everyone in v4.20 led to a 3-minute watchdog, verified with a fake Supabase and two browsers sharing state in Playwright.

  2. ProblemA silent permission bug: a rescue button overwrote a fresh token, requests fell back to the public key, row-level security returned 0 rows with status 200, and the app thought the session had expired.

    How I solved itFour versions treated symptoms before v4.23 found the root cause. It was fixed at 3 layers, with a spec for each layer.

  3. ProblemA deploy once published only 2 of 10 functions without any error, and the bank webhook was down for 21 minutes.

    How I solved itBuild packages are verified by checksum before release, and a deploy-integrity spec now counts the functions.

  4. ProblemProduct promises must match real capability.

    How I solved itA capability registry and a database trigger block blog posts that promise too much; unknown floor, area or amenities are never printed; a spec scans HTML, JSON-LD and strings in both languages for over-promises.

  5. ProblemLocking down an app that started with a public key.

    How I solved itRow-level security rolled out in 2 phases so the team was never blocked, public functions moved from a blocklist to an allowlist after a review found exposure of contract and bank data, a private document bucket and an encrypted session hand-off.

  6. ProblemBank-transfer reconciliation on Vietnamese banking rails.

    How I solved itFixed-syntax VietQR notes, webhook de-duplication by the provider's id, a 500 instead of a fake 200 when saving fails so the provider retries, and longest-match on room codes, old and new.

04How AI agents built it

  • 76 of 78 commits co-authored by Claude. The interface was sketched in Claude Design, then built and deployed with Claude Code.
  • 13 review rounds with an IT reviewer, who wrote evidence-based audits with failing Playwright specs; we fixed, answered each point or pushed back, and the reviewer re-checked on production. Commits carry the finding codes.
  • Reasoned pushback: the lowest test layer that proves the point, SQL dry-runs inside a rolled-back transaction, and declining requests that were not worth building.
  • A weekly AI routine fills the blog draft queue, with forced draft status, an AI disclosure line, source checks and over-promise blocking.
  • Agents enter data through the founder's logged-in browser session instead of writing straight to the database.

05Stack

Frontend
React 18, React Router 6, Zustand, TypeScript strict, Vite with separate site and app bundles
Data
Supabase Postgres, Auth, Storage, row-level security, PostgREST over plain fetch
Hosting
Vercel static, serverless functions and cron
Payments
Bank webhook, VietQR
Tests
Playwright on production on every push and twice a day, SQL tests, race tests in Node

06Not done yet

  • The latest version with a cash book and monthly P&L is committed but not yet confirmed on production.
  • Finance is not a full ledger yet; an early review called the app a controlled pilot.
  • Tenant tickets, chat and reviews exist only in the demo.
  • No conversion tracking, SLA alerts, automatic chat or SMS reminders, or online deposit link yet.
  • No before and after business numbers yet, such as hours saved or on-time payment rate.

Live since Sep 28, 2026Own organisation

AlphaVerse sales-team app

A light edition of the AlphaStudio code for a 13-person sales team selling into the Philippines. Their orders live on a partner's order platform that has no commission, career ladder or team rhythm. AlphaVerse is the same codebase under a product profile that narrows screens, actions, routes and data sources down to the people side: recruiting, an 8-level ladder, targets, commissions, team performance and sales plans.

Revenue first: marketing, funnels, teams, KPIsSystems and data that AI can grow on
11production releases in 12 days
700new tests
8,954partner orders synced by Oct 1
109.9 s to 1.7 sone report, identical output

01The brief, in four steps

  • Sep 21: build it on its own domain, pull orders from the partner platform, make it as complete as AlphaStudio and save AI tokens without trading off data correctness.
  • Sep 24: scope cut to a light edition with three areas: people, career ladder and sales plan. Anything the partner platform already does is hidden and blocked, not deleted.
  • Sep 28: an experience layer over the platform with 4 roles, accounts created from the partner's people list, bottom tabs on phones, and every number linked to the matching page on the platform.
  • Oct 6: basics first. Our numbers and the platform's numbers must match on one shared set of metrics, and the dashboard must be easy to read.

02Decisions I made

  • Cut the scope instead of rebuilding what the partner platform already owns.
  • One codebase plus a product profile instead of a separate repository, on condition that the full AlphaStudio test suite stays green.
  • Missing data stays blank, never zero. Ad cost and profit show 'not connected yet' until ads and cost of goods are wired in, to avoid the green profit chip that ignores ads.
  • Treat the partner's internal API as unofficial: it ignores unknown filter fields and still returns 200, so every filter is checked by whether the total count changes.
  • Leaderboards by percentage of target so small teams can win; streaks with rest days; commission for interns by revenue only, by profit from full staff up; locked periods are never recalculated.

03What I built

Two products from one codebase

  • A product profile gate runs before every permission check and blocks out-of-scope actions, routes, menus and sources.
  • A job merges AlphaStudio's main branch into AlphaVerse every 30 minutes and runs both profiles' tests before pushing. AlphaVerse is never merged back.
  • Its own service, port, database and backups on the same server behind Cloudflare Tunnel, with parameterised ship, release and smoke scripts.

Partner connector

  • Automatic login and a two-phase sync: a network-only phase, then a write-only phase, so a failed pull never leaves partial writes.
  • De-duplicated upserts with personal data removed, a 14-day window plus a full nightly sweep, a data-freshness bar and exception alerts.
  • Accounts created from the partner's people list, temporary passwords that must be changed, and automatic lock after 30 days away.

Team performance and growth

  • 4 roles, a merged menu and bottom tabs on phones; view-as for managers who run several projects.
  • 8-level career ladder, level suggestions from 30 days of data, returns by person.
  • Team targets, monthly rhythm and each person's percentage of target; position-based monthly targets that never overwrite manual edits.
  • One metric set and one exchange rate that match the partner's own reports, with a match or mismatch strip per status group.
  • An isometric 3D overview in plain SVG and WebGL, with no 3D library, for the founder and directors.

04Every feature (33)

33 features in 2 areas, each with its status.

AlphaVerse: product profile and partner platform data13
  • Product profile switchLive

    One codebase runs as a second, lighter product; screens, actions, routes and data sources outside the profile are blocked before any other check.

  • Partner order platform connectorLive

    Logs in automatically with client-side encrypted password, then syncs projects, channels and orders in two phases: network first, writes second.

  • Rolling and nightly full syncLive

    Pulls the last 14 days on each run and the full order history every night, stripping personal data.

  • Projects become companiesLive

    Each partner platform project automatically becomes a company of the same name; older orders move when projects are claimed or merged.

  • Seller accounts from partner dataLive

    Creates staff accounts from the partner platform's people list with temporary passwords that must be changed at first login.

  • Auto-disable absent sellersLive

    Disables accounts that disappear from the partner platform and restores them if they come back.

  • Assign unattributed orders onceLive

    Orders with no seller are grouped by person on the team screen for one-time assignment.

  • Data freshness barLive

    Shows how fresh partner data is at the top of key screens and raises an exception when it goes stale.

  • Count reconciliation with partnerLive

    Snapshots the partner's order counts by status and shows match or mismatch against local data per status group.

  • One rate and one metric setLive

    Uses a single exchange rate and shared metric definitions so numbers match the partner platform's own reports.

  • Deep links to partner pagesLive

    Every number links to the matching page on the partner platform through a configurable link template.

  • Facebook data without bookingLive

    Ad spend and creatives feed the creative zone only, staying in staging with no ledger entries, and are classified in the Facebook drawer.

  • Ads and COGS from partner platformPlanned

    Phase 2: bring ad cost and product cost from the partner platform to compute true profit.

AlphaVerse: team experience and operations20
  • Four roles and merged menusLive

    Founder, project director, HR and seller, with merged menus for journey, my team and game rules.

  • Own branding and dark themeLive

    AlphaVerse wordmark, favicon and dark theme by default on sidebar, mobile header and login.

  • Mobile bottom tabsLive

    Phone layout with the role's first four menu items as bottom tabs and safe-area handling.

  • Career ladder with honest gapsLive

    Eight-level ladder scored on revenue and returns in the business timezone, with the ad cost line greyed as not yet connected.

  • Rewards without a treasuryLive

    Reward payouts follow a simple status flow of open, approved and paid, since this profile keeps no cash ledger.

  • Team performance screenLive

    Team target, monthly pace and each member's progress against target on the shared metric set.

  • Directors over several projectsLive

    One director can oversee several projects through a single scope function used by every check.

  • View as another userLive

    Superadmin opens any user's view directly from the accounts screen, with role labels per profile.

  • Level suggestions from 30 daysLive

    Suggests each seller's starting level from their last 30 days of partner orders.

  • 30-day returns by personLive

    Returns table per person on the team screen and a my-returns card on the daily screen.

  • Targets by positionLive

    Applies targets by position to everyone with a monthly job that never overwrites manual edits.

  • One-button initial setupLive

    Sets starting levels, links directors to projects and fills targets in one step.

  • Organisation config scriptLive

    Applies a confirmed organisation setup (directors, projects, minimum active sellers) with preview and backup.

  • Plan marks missing sourcesLive

    Monthly plan shows ads, purchasing and operations as no source yet instead of zeros.

  • Profile-based public pagesLive

    Careers and interview pages switch brand and legal entity per profile and stay closed until the entity is declared.

  • 3D isometric overview modeLive

    Secondary 3D overview for founders and directors built with SVG and plain WebGL, with compact navigation.

  • Separate service and releasesLive

    Own service, port, database, backups and domain on the same server, with parameterized ship, release and smoke scripts and its own tags.

  • Auto-merge from AlphaStudioLive

    A scheduled job merges AlphaStudio main into the AlphaVerse branch every 30 minutes, runs both test suites and stops on conflicts.

  • Employee income viewBuilt, not released

    Earned commission, daily pace, month-end outlook at current pace, eligibility notes and the gap to the next level.

  • Personal stretch sales plansBuilt, not released

    Sellers set personal monthly plans above their minimum target.

05Hard problems solved

  1. ProblemA commit inside the sync silently released the outer savepoint, so a failed pull could not roll back.

    How I solved itSplit the sync into network-only and write-only phases, and add a static test that fails if any write function commits. The test was proven by planting a commit and watching it fail.

  2. ProblemTwo products from one codebase without breaking the original.

    How I solved itThe profile gate runs before every other check, old screen codes stay alive behind the merged menu, tests pin each profile, and both suites must be green before shipping.

  3. ProblemContinuous merges from main without breaking work in progress. The first version reset a worktree other sessions were editing.

    How I solved itA dedicated worktree for the job, fast-forward only, a lock that releases itself after 40 minutes, and a refusal to run on main.

  4. ProblemThe same order produced two values from two exchange rates, and months had to follow Vietnam time like the partner's reports while orders carried Manila time.

    How I solved itOne rate, one metric definition, reconciliation per status group with a tolerance, and totals left blank when any order lacks GMV.

  5. ProblemSlow production screens.

    How I solved itThe team screen went from 15,436 to 919 SQL queries, and the level table from 109.87 s to 1.72 s, with an identical SHA-256 of the output before and after.

  6. Problem363 historical orders carried a seller from another project.

    How I solved itA repair tool that is read-only by default, backs up with the SQLite backup API before applying, and diffs the whole table afterwards: no rows lost, no field changed outside the payload.

06How AI agents built it

  • Spec, then a 43-task plan, then subagent-driven development test-first. The repository keeps 28 briefs, 37 reports and 51 review diffs.
  • 132 commits co-authored by Claude and 31 made with Codex during Claude's weekly limits, coordinated by a fetch and merge, never rebase, rule.
  • Parallel sessions messaged each other to hold or release main around ship time.
  • Human gates: Tâm types the partner password himself; the AI never receives it.

07Stack

Backend
Python standard library, SQLite, systemd, Cloudflare Tunnel
Frontend
The shared vanilla JavaScript app with role menus, plus an SVG and WebGL overview
Delivery
Release tags, smoke tests, a merge job every 30 minutes

08Not done yet

  • Ad spend and cost of goods are not connected because the partner API does not return them, so real profit is not shown.
  • No campaign-level measurement yet, because partner orders carry no UTM.
  • Employee income and personal sales plans are built but not released.
  • Still a long-lived branch, no backup off the server yet, and it depends on an unofficial partner API.

Live since Oct 2026Client project

Learning platform for a leadership coach

A leadership coach's one-page WordPress landing had one course, a sign-up form on a separate subdomain, a dead menu link and no learner area, so people had no reason to come back. I audited the old site, wrote the brief for Claude Design, then built and shipped a learning platform in 5 days. The programme runs on donations, so the brief banned prices, countdowns and buy-now buttons. The client's name stays private until they agree.

Systems and data that AI can grow onAutomate first, hire later
5 daysfrom prototype to live
37+releases with preflight and auto-rollback
399tests passing
0 pxdifference from the prototype across 17 sections

01The brief

  • Turn a landing page into a learning platform where people have progress and a reason to return every day.
  • Count video that was really watched, at least 90%, plus a required practice checklist.
  • A catalogue in 3 tracks, notes, a reflection journal, questions for the coach before each Zoom session, and a community per course.
  • Keep the no-pressure, donation-based spirit. The main course has 6 chapters, about 23 lessons and 6 Zoom sessions over 6 weeks, unlocked weekly.

02What I built

Learning

  • A lesson player where the watched percentage is separate from the seek position, seeking past the watched part is blocked, completion needs 90% plus the checklist, and a reflection pause appears at 50%.
  • Timestamped notes, questions for the coach, a mood check-in and a small weekly promise; progressive unlocks the coach can open early.
  • Quizzes, games and surveys placed on the video timeline with an 80% pass mark and retries.
  • A learner journey with a progress ring, week x of 6, Zoom countdown, journal, streak, a 6-week map and certificates approved by the coach.
  • Class communities with pinned topics and moderation; assignments, a gradebook and 30, 60 and 90-day transformation tracking.

Admissions and donations

  • A 20-step application with server-side scoring on a 110-point scale, meeting slots with capacity and a waitlist, a mutual decision, a private portal link and versioned rules.
  • Donations by bank QR with a unique transaction code, manual confirmation by the owner or coach, and a snapshot of the payment settings stored with each transaction.

Admin and publishing

  • A full admin console and a 5-step course wizard with resumable uploads up to 20 GiB straight to the video host.
  • A website studio with 5 themes and 10 versions where originals are never edited, 17 drag-and-drop sections, drafts and publish history, and an AI assistant that uses the owner's own Claude, OpenAI or Gemini key, encrypted with AES-256-GCM.
  • Exactly one protected owner enforced by a unique index and 4 triggers; a demo mode that never writes to real data; Vietnamese and English; installable PWA; SEO; a 19-page in-app guide and a 46-page manual.

Releases that roll themselves back

  • Each release takes a deploy lock, checks the package checksum and disk, starts the new build on a side port against a read-only copy of production data and runs API checks.
  • It fingerprints every table, backs up the database, uploads, environment and service unit, swaps a symlink and restarts only this service.
  • It then checks integrity, foreign keys and protected data, confirms the other production system on the same server was not restarted, and rolls back automatically if any step fails.

03Hard problems solved

  1. ProblemPort a Claude Design prototype exactly without running its runtime.

    How I solved itA Python script extracts the template into a JSON tree with a list of bindings, and a React renderer uses only declared attributes and handlers. The 17 home sections match the prototype to 0 px at 3 widths.

  2. ProblemMeasure real watching on a third-party video platform.

    How I solved itThe watched percentage is tracked separately from seeking, offline viewing time is queued per user, and each of the 24 migrated lessons was mapped and checked.

  3. ProblemSafe deploys on a shared 1 GB server next to another production system.

    How I solved itNo builds on the server, plus the release process above. The release notes record the failed releases that rolled themselves back correctly.

  4. ProblemMoving the domain off WordPress hosting without downtime.

    How I solved itA DNS snapshot first, nameservers moved to Cloudflare, temporary records kept on the old nameservers for cached resolvers, old subdomains redirected, and 57 original images moved with SHA-256 checksums.

  5. ProblemAdmissions had to be right before real applicants arrived.

    How I solved itAn audit reproduced 5 bugs in an in-memory database, such as one payment activating two applications and freed slots not promoting the waitlist. All 5 were fixed test-first, and an independent reviewer found 4 more important issues, also fixed.

04Decisions I made

  • A custom build instead of WordPress with an LMS plugin, and self-hosted SQLite instead of Supabase, with the written constraint that no two instances share the file.
  • Video stays on Bunny Stream with direct browser uploads, so a 1 GB server never carries video data.
  • Nothing fake: sample testimonials are not published as real, missing video or Zoom links show 'waiting', invite links are never claimed as emailed, and the demo never writes to real data.
  • Humans stay in the admissions loop: scoring uses only structured answers, never free text, age, location or donation amount, and the coach and applicant decide together.

05How AI agents built it

  • One job per AI tool: Claude audited the old site, inventoried 333 media files and wrote the design brief; Claude Design built the prototype; Codex was the main build agent across 11 chats and about 21.5 hours of agent run time.
  • 7 specs, 15 plans and a ledger of rulings and costs; failing tests first; an independent reviewer with fresh context.
  • AI usage was measured and documented: about 1.08 billion tokens with 97.6% of input served from cache. The log cannot measure human hours, and it says so.

06Stack

App
Next.js 16 App Router, React 19, Tailwind 4, TypeScript
Backend
Node 24 route handlers, node:sqlite, node:crypto
Data
SQLite WAL, 56 tables in production
Video
Bunny Stream with resumable TUS uploads
Delivery
Linux server, systemd, Cloudflare DNS and Tunnel, Bash release scripts, nightly backups

07Not done yet

  • No real learners yet: the class schedule, Zoom links and group chats are waiting on the client.
  • Automatic email is switched off, and donations are confirmed by hand.
  • Backups live on the same server only, and the PWA has not been tested on a real iPhone.
  • Only the main course has content so far; an AI course studio and learning analytics are specs.

From founder to AI-native builder

Founder2016 to 2025

Vaithuhay.com

Built a Vietnamese Shopify brand for new tech and workspace products, where my showcase, coming-soon, pre-order and group-buy model began: 200-300k monthly visits at the peak and a 500k-member community.

Turning point2025

AI changes the math

Vaithuhay had grown faster than its operations. With AI, the e-commerce systems I had wanted to build for years, held back by technology and cost, became simple to build, so I started building them.

Co-founderJul 2026

Là Nắng

Booking site, staff app and tenant portal live, with rent collected by bank transfer and matched automatically.

FounderAug 2026

AlphaStudio

Finance cockpit in production on Aug 19; a grounded AI agent live on Aug 23.

Product leadSep 2026

AlphaVerse

Light edition for a Philippines sales team: 11 releases in 12 days.

BuilderOct 2026

Coaching client

A learning platform for a leadership coach, from prototype to live in 5 days.

FounderOct 2026

9spaceX

Shopify rebuild phase 1: new theme, pre-orders paid in full, automation layer.

AI assistant

Ask my AI about my work

It answers only from the facts on this site, in your language. If something is not covered, like a price or a start date, it says so instead of guessing.

Tâm's assistantConnecting to Claude
Example answer
Can he set up pre-orders on Shopify Basic?
Yes. On his own Shopify Basic store he built tiered pre-orders as selling plans that charge 100% at checkout, and each tier's capacity is enforced by inventory, so Shopify itself refuses an oversell. A test order on a development store was charged $70 with $0 outstanding (13 Oct 2026). That store's new theme is not published yet, so there are no live sales results to quote.

Answers use Claude on your own account, and it asks your permission the first time. Nothing is saved.

How we work together

The same five steps on every job, from a one-day fix to a full system.

  1. 1

    Diagnose

    Read your numbers and your store or system first. Sometimes the right fix is not the feature in the brief.

  2. 2

    Plan

    A short written plan with what 'done' means and the checks that prove it. You approve it before work starts.

  3. 3

    Build

    AI coding agents write code against failing tests, task by task. I review and decide.

  4. 4

    Verify

    Independent review, then checks on a development store, preview or staging copy, never on your live system first.

  5. 5

    Hand over

    What was done, how it was checked, and what is not done yet, in writing.

What I commit to

  • No invented numbers: missing data stays missing, and profit always includes every cost
  • Nothing touches your live store or money without your approval
  • I tell you which AI tools I use and follow your rules on them
  • Secrets stay out of chats; access is scoped and removed at the end
  • A short written update every working day
  • Fixed-price milestones after a small paid audit when the scope is unclear

Paid audit

A short look at your numbers and your store. You get the real bottleneck and a ranked fix list, whether or not we continue.

Fixed-price milestone

One result with acceptance checks agreed up front, such as a pre-order setup, order alerts or a set of theme sections.

Ongoing build

A weekly plan and a written update every working day, for a back office, an automation layer or a store rebuild.

First page of Bùi Sơn Tâm's CV
Resume

Take the short version with you

A two-page CV and a 13-slide capability deck, as PDF or PowerPoint.

Short CVPDF, 2 pages
Capability deckPDF, 13 slides
Capability deckPowerPoint, 13 slides

Got a store or an ops problem? Let's start with your numbers.

Send me your store and the job you want off your plate. I'll tell you what can be automated, what should stay with a person, and what a first fixed-price milestone looks like.

Find me on Upwork as Bùi Sơn Tâm (Bui Son Tam). Fixed-price milestones, written updates every working day.

Case studies
Ask my AI