Offline POS Software

Micro-SaaS
Point of sale software for multiple businesses including pharmacies, general retail, hotels and restaurants
Published on
August 7, 2026
Main Metrics
$135
ARR
1
Customers
2026
Launched

$24,000

Asking Price
Already Sold
Main Metrics
$135
ARR
1
Customers
2026
Launched

Overview

<p><b>Startup description</b></p><p>My product is a complete offline-first point-of-sale and business management platform for small and medium businesses, shipping on Windows, macOS and Android, already localised for eight countries across three continents.</p><p>This is a finished commercial product, not a prototype. It installs, it sells, it has paying users, and it is supported by a registered company, professional documentation and live cloud infrastructure.</p><p>The architectural bet that makes it competitive: it works with no internet. Competing systems in emerging markets are browser-based, so a shop stops trading during a power cut or an outage — a daily reality across Africa, South Asia and Latin America. It runs the entire accounting engine and database locally on the shop's own hardware. Cloud shops, dashboards and backup are optional layers, never requirements. In a demo you can pull the network cable mid-sale and keep selling. No web-based competitor can do that.</p><p>It is seven products in one codebase. The application reshapes itself by business type — salon/barbershop, retail shop, restaurant/bar, pharmacy/clinic, guesthouse/hotel, multi-till supermarket, and mobile-money agent — showing only the modules that apply. One product addresses seven verticals, so a buyer's sales team can walk into almost any small business on the street.</p><p><b>Key highlights</b></p><ul> <li>Platforms shipped: Windows, macOS, Android — one shared engine</li> <li>Countries pre-localised 8 — Uganda, Kenya, Tanzania, Rwanda, Nigeria, South Africa, USA, UK — plus custom mode for any other</li> <li>Business verticals: 7, from one codebase</li> <li>Engine 191 functions, ~4,200 lines, shared unchanged across all clients</li> <li>Total distinct code ~20,000 lines of Python</li> <li>Licensing RSA-signed keys with expiry support — sells as perpetual or annual subscription</li> <li>Cloud Owner dashboards, encrypted backup, fleet view — built, deployed, running in production</li> <li>Gross margin ~100% — software only, no hardware, no per-customer hosting cost</li> <li>Revenue to date USD ~135 (first licence). Commercial launch is recent — see Revenue</li> <li>Marketing channels live Website, TikTok (paid), LinkedIn, Facebook, direct local sales</li> </ul> <p><b>Team</b></p><p>The business is led by a registered Ugandan company, verifiable on the public URSB register.</p><ul> <li>Director / CEO, Company direction, commercial strategy, customer and partner relationships, product requirements</li> <li>CTO: Product design and engineering — architecture, the shared accounting engine, the three client applications</li> <li>COO: Operations —sales, onboarding, training, support, admin.</li> </ul> <p><b>Tech Stack</b></p><p>Deliberately dependency-light, which is a maintenance advantage rather than a limitation: no npm or pip supply chain to police, no framework upgrade treadmill, no third-party runtime fees, ever. A buyer inherits code that will still build in five years.</p><ul> <li>Accounting engine: Python 3, standard library only core.py— 191 functions, ~4,200 lines. Single source of truth, shared unchanged by every client.</li> <li>Database: SQLite One file per business, on the business's own device. No server dependency.</li> <li>Desktop: Tkinter — ~6,400 lines, one file serving both Windows and macOS.</li> <li>Cloud server: Python stdlib http.server, Docker~1,100 lines, no web framework. Live on a VPS behind Cloudflare.</li> <li>Licensing: RSA signature verification Public key in the client, private key held by the vendor. Keys cannot be forged. Supports lifetime and dated licences, machine-ID bound, with a server-side trial registry that survives reinstall.</li> <li>Localisation: Currency, revenue authority name, VAT rate, payroll bands, and default tax list per country. Every tax is editable in-app — "just a name, a rate and a period" — so any jurisdiction is configurable without code.</li> <li>Packaging: PyInstaller → signed DMG; Inno Setup → .exe; buildozer via GitHub Actions → APK. All three pipelines working and reproducible.</li> </ul> <p><b>Marketing and growth</b></p><p>Marketing is live across five channels, run by a three-person team alongside other commitments:</p><ul> <li>Paid TikTok advertising</li> <li>LinkedIn — ongoing product marketing</li> <li>Facebook and other social platforms</li> <li>Direct local sales in Uganda — shop-to-shop and referral</li> <li>Website — with a product page carrying an interactive in-browser demo</li> </ul> <p>Supporting collateral, all produced and in use:</p><ul> <li>A 5-minute narrated demo video — genuine screen recording of the working software, not slides</li> <li>A 34-page illustrated user manual with 31 screenshots (PDF and DOCX)</li> <li>WhatsApp-ready price list, sales sheet and objection-handling scripts</li> <li>Pricing researched and positioned against the local market leader</li> </ul> <p>The honest shape of it: the product reached commercial release recently and the channels are young. Sales activity is constrained by team bandwidth, not by product readiness or market interest. A buyer with an existing sales force or merchant base is acquiring a product that is finished and proven to install, and pointing it at distribution that already exists.</p><p><b>Revenue and profit</b></p><ul> <li>Revenue to date: USD ~135 — first perpetual licence, paid and banked.</li> <li>Recurring revenue: Not yet switched on. The infrastructure is built and deployed</li> <li>Costs: One shared VPS. No per-customer hosting cost</li> <li>Gross margin: ~100% on licences</li> <li>Churn / LTV: Insufficient history to report honestly</li> </ul> <p>Two revenue engines already built, neither switched on:</p><ul> <li>Annual licensing. The licence system supports dated keys with expiry — license_expiry_days() is in production code and the UI already displays "expires [date], N days left". A buyer can move the entire base to annual renewals with no engineering work, converting one-time sales into recurring revenue.</li> <li>Cloud subscription tier. Owner dashboards with full trading history, encrypted cloud backup and a vendor fleet view are built and deployed. Intended pricing UGX 25,000–30,000/month. Billing has never been enabled.</li> </ul> <p><b>Return on investment</b></p><p>Licence sales at ~USD 135 average; 75 licences repay a $10,000 purchase. One reseller in one city clears that in a year.</p><p>Convert to annual 200 shops × USD 60/year =USD 12,000 recurring, annually, using the expiry system already in the code.</p><p>Cloud tier 200 shops × USD 8/month =USD 19,200/year, on infrastructure already deployed.</p><p>Regional expansion Kenya, Tanzania, Rwanda, Nigeria and South Africa aready localised in code. Entering them is a sales decision, not a development project.</p><p>That is roughly a third to a quarter of the replacement cost for a product that is finished, documented, selling, and localised for markets containing over 400 million people.</p><p><b>Startup assets<b></b></b></p><ul> <li>Complete source code — engine, desktop client,, Android client, cloud server, vendor admin app</li> <li>All three build pipelines — PyInstaller + macOS codesigning + DMG, Inno Setup Windows installer, GitHub Actions Android APK workflow</li> <li>Signed, distributable installers for Windows, macOS and Android</li> <li>RSA licensing system — key generator, private signing key, machine-ID binding, trial registry</li> <li>Cloud platform — server source, Dockerfile, deployment configuration, customer onboarding tool</li> <li>Eight-country localisation — currency, tax authority, VAT and payroll presets, plus arbitrary custom tax definition</li> <li>34-page illustrated user manual (PDF + DOCX, 31 screenshots)</li> <li>5-minute narrated demo video (1920×1080)</li> <li>Sales collateral — price list, sales sheet, objection-handling scripts, product page with live browser demo</li> <li>Feature set: supermarket-lane POS terminal with barcode scanning and F-key shortcuts, inventory with batch and expiry tracking, stock-take and dead-stock reporting, multi-till LAN operation, debtors and invoicing, staff commission, restaurant table service, hotel room management, expenses, VAT, balance sheet, Z-reports and cash-up, mobile-money agent float module with 54 pre-loaded commission bands, offline Bluetooth receipt printing, automatic local backup, encrypted cloud backup, and owner dashboards with uncapped trading history.</li> </ul> <p><b>Risks</b></p><ul> <li>Early revenue. One paying customer to date</li> </ul> <p>The product reached commercial release recently and the team sells part-time. The engineering risk — usually the expensive unknown in an acquisition — is already retired: it is built, packaged, signed and installed on three platforms.</p><ul> <li>Small team, key-person exposure</li> </ul> <p>Plain-stdlib Python with no exotic frameworks; any competent Python developer can maintain it.</p><ul> <li>Desktop distribution rather than a URL</li> </ul> <p>Deliberate: it is the reason the product works offline, which is the core differentiator. An in-app update checker is already built.</p><ul> <li>Tkinter and Kivy are unfashionable</li> </ul> <p>And extremely stable. No breaking changes, no migration treadmill, no dependency rot. Fashion costs maintenance; this doesn't.</p><ul> <li>SME support load</li> </ul> <p>Manual, demo video and training materials exist precisely for this. A buyer with a support desk absorbs it at near-zero marginal cost.</p><ul> <li>Competitive market</li> </ul> <p>Nearly every competitor is web-based. Offline operation is demonstrable in thirty seconds and is not something they can retrofit cheaply.</p><p><b>Summary</b></p><p>A finished, multi-platform, multi-country commercial product, available for a fraction of what it cost to build — and a small fraction of what it would cost you to build.</p><p>Three specific reasons it wins where it competes:</p><ul> <li>It works without internet or reliable power. Every significant competitor in these markets is browser-based and stops when the connection does. This is not a marketing claim — you can verify it by unplugging the network during a demo.</li> <li>It is pay-once in a market of annual subscriptions — a decisive total-cost argument with price-sensitive SMEs — while retaining built-in support for dated licences, so the buyer can move to recurring revenue whenever they choose.</li> <li>It already speaks eight countries' tax systems, including Nigeria and South Africa, Africa's two largest economies. Expansion is a sales decision, not a development project.</li> </ul> <p>Who should buy this: anyone who already has distribution and nothing to sell through it — a POS reseller, an IT services firm, a payments company with merchants on its books, a bank pushing SME merchant acquiring, or an operator entering African SME software who would rather start eighteen months ahead than at zero.</p><p>The expensive half of this business is customer relationships. If you already own those, this is the other half — finished, documented, and priced to move.</p><p>✅ $135 TTM revenue</p><p>✅ 1 customer</p><p>✅ Business model: One-time sales</p><p>✅Built with Docker, GitHub, Cloudflare</p>

$135

Annual Revenue

1

Number of Customers

Expenses

Expenses, $: ~3,400/yr; Engineering/development tooling & maintenance: ~$3,200/yr [Non-recurring]; Server hosting (Hetzner VPS): ~$120/yr; Storage: included in VPS (~0); Domain + Cloudflare (free tier): ~$10/yr.

Business Model

One-time perpetual licence, priced per device by business type: (~$95) salon to (~$325) supermarket. Licence also supports dated keys, so it can sell as annual subscription. A built cloud tier (dashboards + backup) is designed at ~$8/mo recurring.

Target Audience

SMEs in emerging markets — shops, supermarkets, pharmacies, restaurants, salons, hotels, mobile-money agents. Primary market East Africa; ships pre-localised for 8 countries.

Asking Price Reasoning

Priced on replacement cost, not revenue. ~20,000 lines of production Python — engine, 3 platform apps, cloud backend, RSA licensing, 8-country localisation, signed build pipelines — is 9–15 months and $30–80k+ to rebuild. $24k is a quarter of that.

Reason for Selling

We have other product that is concentrating on its accounting and data-licensing lines. Business Manager is a finished standalone product that deserves a dedicated owner with the distribution to scale it.

Growth Opportunity

Four levers, no new engineering: sell through existing distribution; switch on the built cloud subscription; convert licences to annual renewals (expiry system already in code); expand to Kenya/Tanzania/Rwanda/Nigeria/South Africa — all already localised.

30 days free support from seller

Competitors

UgaPOS, Wiza, EzyPOS, ROBIPOS, Loyverse. Nearly all are cloud-based and die in a power/network outage — our software runs fully offline.

Tech Stack

Docker, GitHub, Cloudflare, Python, SQLite, Claude.

Traffic Metrics

Revenue Metrics

How it works

Main Metrics
$135
ARR
1
Customers
2026
Launched

$24,000

Asking Price
Already Sold
Founder Details
Read the story
Main Metrics
$135
ARR
1
Customers
2026
Launched

Profitable startups straight to your inbox

Join 10,000+ entrepreneurs and investors looking for their next startup acquisition opportunity.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.