Case study

KitaTracker

Inventory, point of sale, and business intelligence for small businesses in the Philippines: sari-sari stores, cafes, salons, and food businesses. It began as a weekend project for my sister's food business and is now a Flask API, a React PWA, and an Expo app. Version 2.0 brings Sell, Stock, Money, and Team workspaces, a staff time clock, cash-in/cash-out wallets, and Kitay, a Claude assistant that answers questions about the business.

KitaTracker — Every peso. In view. The Sell, Stock, Money, and Team workspace illustrations surround an iOS checkout preview with sample shop data.

What it is

A shop owner rings up sales from a phone or a browser, even offline, prints a receipt on the cheap thermal printer the store already owns, scans barcodes to add products, tracks suki credit and loyalty points, and sees where the money went. Version 2.0 groups everything into four workspaces, Sell, Stock, Money, and Team, lets each business switch optional modules on or off, and adds a staff time clock with photo clock-in and cash-in/cash-out wallets for stores that trade pesos for e-wallet balance. There is a free tier and a Pro plan sold through the app stores.

What I built

  • Offline-first mobile POS. The app keeps the catalog in SQLite, queues sales while offline, and uploads them with idempotency keys so a retried request can never create a duplicate sale. The server recognizes a repeated request and replays the original result instead of charging twice.
  • Receipts on whatever printer the store has. A hand-written ESC/POS builder drives Bluetooth and USB printers from the browser and Bluetooth printers from the phone, with reconnection and backoff when a printer drops.
  • Barcodes without a data-entry job. Camera scanning and keyboard-wedge scanner guns feed a lookup that checks the store's own products first, then a UPC service, and caches the answer either way.
  • Food costing that reflects real restocks. Ingredients carry a moving-average cost, products are built from them, and a sale deducts ingredients automatically, with reversal on void.
  • Money that adds up in the store's own time zone. Receivables with credit limits and oldest-first payments, loyalty points redeemed at checkout, and analytics bucketed by the business's local day rather than the server's.
  • Kitay, the assistant. A Claude tool-use loop that can query sales, products, customers, expenses, and reports for the signed-in business and stream answers to the web and the app. A daily insight push and win-back email drafts use the same models, and drafts are reviewed before they send.
  • The rest of a product. Multi-business accounts with roles and permissions, a public storefront with sold-out gating, a community feedback board, email campaigns, a staging environment with its own app variants, and a design system shared by web and mobile.

Where it started

It began as a weekend project for my sister's food business, which she was running out of notebooks. Small food businesses across the Philippines have the same problem, and most inventory and POS software is priced and designed for much larger companies.


Focus & stack