BusyMobile: GST bookkeeping for small Indian shops, with an AI that never leaves the shop A developer built BusyMobile, an offline-first Android/iOS GST bookkeeping app for small Indian shops that pairs invoice, ledger, stock and GSTR-1/3B features with an AI assistant running Google's open-weight gemma3:4b via Ollama on a laptop on the shop's local network. Splitting the model's work into small single-task prompts fixed misaligned bank-line categorizations and cut processing time roughly in half (53 s vs 116 s on CPU), with the app also supporting any OpenAI-compatible server such as llama.cpp or LM Studio. This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle https://dev.to/challenges/hacktoberfest-week2-2026-10-12 My father runs a small cement trading business. Like millions of Indian shopkeepers, he keeps GST books, and every month he does the same tedious job: going through the bank statement line by line. UPI/DR/412345678901/RAMESH KUMAR/YESB/ramesh@ybl/Payment -5,000.00 NEFT CR-HDFC0000123-MODERN HARDWARE STORE-INV 12 +26,880.00 ACH D- BAJAJ FINANCE LTD-P400XXXX -8,450.00 For each line he works out who paid whom, whether it was a customer, a supplier, a loan EMI or the electricity bill, and types it in as a voucher. Then he does the same for every supplier's paper bill. BusyMobile is an offline-first Android/iOS app for GST bookkeeping: invoices with CGST/SGST/IGST, party ledgers, stock, GSTR-1/3B summaries, and PDF invoices to share on WhatsApp. It has an AI assistant built on an open-weight model that runs on a laptop in the shop : Who would pay for it: small traders, kirana and hardware shops, and the accountants who keep books for twenty of them. They already pay for desktop software like BUSY or Tally, and they pay with hours every month for data entry. They won't upload their bank statements to a foreign AI service, and they won't accept a per-call bill they can't predict. A flat monthly fee for an app that runs on hardware they already own is an easy sell. The whole video is real: a Pixel 6 emulator talking to gemma3:4b in Ollama on my laptop over the local network. Waits for the model are sped up and labelled with the real time. | AI Quick Entry | Bank Import — Categorised | Local AI Configuration | |---|---|---| src/services/ai.js : the local model client Ollama /api/chat with a JSON schema, or any OpenAI-compatible server , plus the rule layer around it src/utils/bankParser.js : CSV parsing for HDFC, SBI, ICICI, Axis, Kotak and others, and the rules for deterministic lines src/utils/ledger.js : balances computed from entries, so they can't drift tests/ : npm test runs 22 logic tests, and npm run test:live runs the real prompts against your own model server Stack: React Native + Expo on the phone, and Ollama https://ollama.com serving Google's open-weight gemma3:4b on any laptop on the shop Wi-Fi. One 3.3 GB model handles both text and bill photos. The app also speaks the OpenAI-compatible API, so llama.cpp's server or LM Studio work too. ollama pull gemma3:4b OLLAMA HOST=0.0.0.0 ollama serve then: Settings → Local AI → http://