Shoebox — Bill Photo to GST Ledger, Offline
Problem
Small shops in India keep supplier bills in a pile until the accountant asks. Typing them in is slow, and the bills carry mistakes nobody checks: a GSTIN copied wrong, CGST that doesn't match SGST, a handwritten total with two digits swapped, IGST charged on a same-state purchase. Each one can cost input tax credit.
Business Impact
Input tax credit is real money for a trading shop, and it is lost to boring errors: a misread GSTIN, a wrongly charged tax type, a bill entered twice. Shoebox catches those before the accountant sees the register, runs on the shop's own laptop with no subscription, and keeps every bill photo on that machine.
System Approach
- Local vision model (qwen3.5:9b via Ollama) reads the photo into a fixed JSON schema; fields stream into the UI as it writes
- Plain TypeScript checks: GSTIN pattern, state code and Luhn mod-36 checksum; quantity × rate − discount = amount; tax against the printed rates; CGST = SGST; tax type by supplier state vs place of supply; grand total; date, 16-character invoice number, GST rates, HSN length
- Duplicate guard against the ledger: same supplier GSTIN and invoice number can't be claimed twice
- Review sheet in a modern bahi-khata style: red-pencil underline on the exact wrong field, stamped verdicts (Checked / Look again / Not ready), one-tap GSTIN fixes
- Ledger with input-tax-credit ready to claim vs on hold, and a purchase-register CSV with one row per GST rate
- Eval script scores the model against generated sample bills with known truth, including a handwritten bill book
Key Decisions & Trade-offs
- The model never judges a bill — only arithmetic and published GST rules produce verdicts, so the same bill always gets the same answer
- Copy, don't correct — the prompt forbids fixing numbers, so the checks see the bill as printed
- Offline by default — a shop's purchase data stays on its own laptop; no API key, no account
- One-tap fixes only when exactly one look-alike swap makes a GSTIN valid; ambiguous cases list every candidate instead of guessing
- Framework-free check library with 35 unit tests, so the rules are testable without a model
Current Status
Public and open source (MIT) at github.com/rohitguta2432/shoebox. Reads, checks, fixes, saves and exports end to end on a laptop; eval on four sample bills: 188/192 fields exact, 4/4 verdicts right, ~17 s per bill on an M5 Pro.
Roadmap
- Tally XML voucher export alongside the CSV
- Photo-from-phone on the same Wi-Fi, straight into the pile
- A WhatsApp intake so a supplier bill photo becomes a ledger entry
What I'd Improve Next
- Per-HSN rate hints so an item billed at the wrong slab gets flagged
- Tax-inclusive retail receipts handled as their own bill type
Explore More
- MyFinancial — Personal Financial Advisor — Financial planning in India is fragmented across banks, insurance, and tax documents.
- PropCheck — AI Property Trust Score for India — Indian property buyers lose lakhs to fraudulent listings on Magicbricks, 99acres, Housing.
- StellarMIND — Chat-to-SQL with RAG — Business users need to query databases without knowing SQL.
- ClinicAI — WhatsApp AI Clinic Assistant — India has 12 lakh+ small clinics running on phone calls and paper diaries.
- MicroItinerary — AI Travel Planner — Travel apps optimize for proximity and ratings.
- SanatanApp — Hindu Devotional App — Devotional users in India juggle 5+ separate apps for Chalisa, Gita, Aarti, Ramayan, and Mahabharat.
- SynFlow — Enterprise Intelligence Platform — Private deal networks rely on manual introductions and spreadsheets.
- FinBaby (Jama) — Personal Finance Tracker — Indian middle-class families track expenses across UPI apps, bank statements, and paper notebooks.
- RetailOS — Multi-Tenant Retail SaaS — Indian kirana stores and small retailers use paper registers or basic billing software with no inventory tracking, no GST compliance, and no offline support.
- TripHive — Offline-First Collaborative Trip Planner — Group trip planning is fragmented across WhatsApp, Google Docs, Maps, Splitwise, and email.
- ScamRakshak — On-Device AI Scam Detector — Indians lose thousands of crores annually to digital scams via WhatsApp, SMS, and social media.
- PaisaGuard — Family Budget Survival App — Middle-class families worldwide track expenses inconsistently — UPI apps show transactions but don't enforce budgets.
- rohitraj.tech — Engineering work is often invisible.
- Agent Autopsy — Forensic Debugger for Failed AI Agent Runs — Most AI agent failures are silent — the run completes, the status code is green, and the result is still wrong.
- tinyvoice — Fine-Tune a Model in Your Own Voice in an Afternoon — Training your own language model sounds like a PhD job that needs a GPU cluster, so most developers never try.
- snap3d — One Photo In, an Editable 3D Model Out — A photo shows you one side of an object; the other five sides are a guess.
- Agentic OS — Force-Directed Map of a 387-Skill Claude Code Setup — An agent setup grows one plugin at a time until it has hundreds of skills, and nobody can see what it actually contains.
- claude-autodev — Autonomous 8-Stage Dev Pipeline for Claude Code — Agentic coding tools stop at a diff.
- KisanSathi — Six AI Farm Experts, Keyless and Local — Farmer-facing AI tools die at the API-key step, answer in English, and hand back generic advice with no live numbers behind it.
- MarginChef — AI Agent That Finds a Restaurant's Margin Leaks — Restaurants run on 3-5% net margins while food costs are up roughly 35% since 2019, and most owners never see per-dish economics.
- Quorum — Deep-Research Agent Swarm with a Shared GraphRAG Brain — Most AI research tools are one model in a loop.
- RegexForge — Plain English to a Regex You Can Trust — Regex is not hard because the syntax is exotic.
- Skillet — Turn Any Docs Page Into an Installable Claude Code Skill — Agent skills are the fastest way to teach a coding agent a new tool, but writing a good SKILL.
- Ladle — Open-Source Prep Forecasting and Food-Cost Leak Detection — Restaurants throw away 4-10% of the food they buy before it reaches a plate, and most owners find out at month end from a food-cost percentage that moved the wrong way, with no idea which ingredient did it.
- Casita — Design Your Home in 3D in the Browser — Home design tools want an install, a login, or a CAD background.
- VoxelForge — A Voxel Sandbox Engine Built Properly — Voxel sandboxes are the demo everyone builds with a coding agent right now, and almost all of them are a throwaway single HTML file that hitches on chunk generation, ships a texture pack, and cannot be read or extended.
- prompt-ocean — Type a Sea, Watch It Exist — Generative interfaces usually hand a model the wheel and hope.
- HEXAPOD — Inverse Kinematics and Gait Simulator — Hexapod gait and leg IK are usually explained with equations and a video, or hidden inside a robotics library.
- avatar-sync — Real-Time Face and Hand Tracking in One HTML File — Face and hand tracking demos come wrapped in a build step, a server, and usually an API key — which puts a wall in front of anyone who just wants to see what the models actually output before building on them.
- TableTalk — Scan, Order, Eat: QR Ordering for Dine-In — Dine-in ordering still means flagging a waiter, squinting at a laminated menu with no photos, and repeating your order across the noise.
- Reliability & Production Readiness — Load testing, observability, and API contracts.
- Open Source Repos — Browse the source code behind these projects.