ComingUp ComingUp
Finance & Inventory App for LatAm Shops

Finance & Inventory App for LatAm Shops

Offline-first PWA + Android app: voice entry, FIFO costing, Drive backup.

Aug 19, 2026 Finance & Accounting
finance inventory latam offline_first small_business

Gallery

Finance & Inventory App for LatAm Shops

About

What it isA finished, production-deployed finance app for micro and small businesses: the corner shop, the reseller, the one-person importer. It replaces the notebook. Sales, purchases, expenses, income, credit (fiado), loans, contacts and inventory in one mobile app that works with or without internet.It is local-first: each user data lives on their own phone (IndexedDB). No central database, no per-user server cost, no account required to start. It installs as a PWA and there is a signed Android APK/AAB ready for the Play Store. Bilingual Spanish/English, 10 LatAm currencies + USD/EUR.Three things that make it different from every expense tracker1. Voice entry that understands a shopkeeper. Two modes. A guided mode with a 100% local parser (zero AI cost) that understands amounts, quantities, payment methods, yes/no and contact names in Spanish. And a call mode: a real-time spoken conversation powered by Gemini Live with an audio-reactive orb that pulses with the assistant voice. Neither one saves anything without a spoken yes first.2. Real profit, not fantasy profit. Inventory uses FIFO batch costing as the single source of truth: every purchase is its own batch, with its own invested amount and its own final profit when it runs out. The product screen shows the real selling price range (min/max/average actually charged), not an invented margin from the list price. Per-product statistics: profit by period, sales pace, rotation, sleeping money, product comparison, and honest guardrails: with fewer than 5 sales or less than 30 days of history it shows the real numbers but refuses to project a trend.3. Business and personal are two parallel systems, not a filter. Two axes are modelled: what was it for (business / personal) and where did the money come from (business till / own pocket). Paying a business bill with your salary shows up as a personal contribution; buying something personal with the till shows up as a withdrawal. No double counting anywhere. Business view, Personal view, and All (stacked, never summed).Feature listMoney. Sales, purchases, expenses, income, inventory adjustments, payments on credit. Credit (fiado) in both directions with per-contact balances. Loans as their own module (cash in + debt, never income) with interest prorated per instalment and a loan-fund tracker. Loans you give out, treated as an asset, with collection tracking. Salary tracking with expected pay dates. Expense categories with real icons, business and personal. CSV export.Inventory. Catalogue with kardex, product variants, SKU/barcode with camera scanner, FIFO batches, physical stock count, restock tab with low-stock badge, copy-for-WhatsApp product sheet, per-product statistics and a product comparison screen.Intelligence. A Financial Checkup: health traffic light, expense-leak detector, snowball vs avalanche debt payoff plan with adjustable extra payment, and savings goals. All the maths is local and unit-tested. The AI only writes the advice text and is forbidden from inventing numbers, so with no quota and no internet the checkup still runs end to end.Platform. Installable PWA, fully offline (service worker precache), signed Android APK + AAB, backup to the user own Google Drive, local file export/import that does not need Google, dark premium UI with custom option menus, Android back button integrated, automatic data repair on startup.How the backup works, and why it costs the owner nothingBackups go into the user own Google Drive, in the hidden appDataFolder, using only the drive.appdata scope, which Google classifies as non-sensitive (basic OAuth verification: no demo video, no annual security audit). The app cannot see the rest of the user Drive, and the operator never stores customer data on any server. Backup cost is therefore 0 at any scale: 10 users or 100,000 users, each one pays with their own free Drive quota.It is a full snapshot system, not a two-way sync: 5 rotating backups, and restore is never silent (it compares local vs backup, takes an automatic safety copy first, runs transactionally, and refuses a backup from a newer schema version). OAuth uses the authorization-code flow with a refresh token, and the code-to-token exchange happens inside the Cloudflare Worker, so the client secret never reaches the browser.Tech stackReact 19 + TypeScript, Vite 8, Tailwind 4, lucide-react. Dexie 4 over IndexedDB with 5 additive schema versions and migrations. vite-plugin-pwa for offline. One Cloudflare Worker as the only server (Gemini proxy + Google OAuth token exchange, protected by a shared app secret). Google Gemini for voice and advice. Hosted on Cloudflare Pages.334 unit tests across 26 files (Vitest), all green. About 25,100 lines of TypeScript over 125 files, of which roughly 4,200 lines are tests. Custom i18n with 926 keys per language, type-safe: a missing translation breaks the build.What is includedFull source code (frontend + Cloudflare Worker) with git history and inline documentation. The complete test suite. The Android signing keystore and the build pipeline that produced the signed APK/AAB. Handover of the Cloudflare Pages project and the Worker. The privacy policy page as a template. Reasonable email support during the transfer.What is NOT includedThe brand. The current name, logo, app icon and intro video stay with me, they belong to my other business. The buyer rebrands: new name, icon and splash. It is a straightforward swap (icons are generated from a single SVG by a script that is included, and the intro video is one file you replace or remove). Nothing else is held back: product, code, tests and infrastructure all transfer.Honest status, please read before making an offerNo users and no revenue. The app is live and finished, and I use it daily for my own shop. It has never been marketed and has never charged anyone.Not on the Play Store yet. The signed .aab is ready; creating the developer account and the store listing is the buyer step.The buyer needs their own Google Cloud project (OAuth client ID + secret for the Drive backup) and their own Gemini API key. Both are quick; the code reads them from environment variables.The call mode costs real money per minute of audio (Gemini Live, roughly 0.02 to 0.03 USD per minute combined at current public pricing, verify before planning around it). The guided voice mode and everything else cost nothing to run. Any pricing model on top of this app should account for that.Running costs today: Cloudflare Pages and Workers free tiers plus pay-as-you-go Gemini. Effectively 0 per month at current usage. The UI is Spanish-first (that is the target market); English is fully translated and switches instantly.Why I am sellingI built it for my own shop and it does everything I need. Turning it into a business (Play Store publishing, marketing, support, billing) is a full-time job and I do not have the time. I would rather it goes to someone who will actually push it.Best fit for a buyer who......wants a finished LatAm-market fintech product to launch instead of building from zero; or wants a serious React/TypeScript codebase to white-label for shops; or already has an audience of small merchants in Spanish-speaking markets and needs a product to sell them.LinksLive demo with sample data: https://demo.finanzas-app-6n0.pages.dev  |  Live app (real, empty install): https://finanzas-app-6n0.pages.dev  |  Privacy policy: https://finanzas-app-6n0.pages.dev/privacidad

Comments (0)

No comments yet. Be the first to comment!