// the find
bailabs/tailpos
TailPOS an Offline First Open Source POS for ERPNext
TailPOS is a React Native Android app that acts as a mobile POS terminal for ERPNext, syncing sales data bidirectionally to a Frappe/ERPNext backend. It's aimed at small retail or F&B businesses already running ERPNext who need a tablet-based till that keeps working when the internet drops.
The offline-first architecture using local storage with background sync is the right call for retail — a POS that requires a live connection is a liability. MobX for state management fits the complexity of a POS flow (cart, payments, shifts, sync status) better than Redux would. The separation of UI components into a storybook-style `src/stories/components` directory means you can develop and test UI in isolation. ESC/POS receipt printing and Bluetooth barcode scanner support via native modules means it can drive real hardware, not just a phone screen.
The project hasn't been touched since October 2022 and targets React Native with Android SDK 23 and Node 8 — both ancient. The build instructions require you to manually patch six different node_modules files (camera, maps, bluetooth, device-info, localization, NFC), which means `yarn install` followed by running it will not work without those patches applied first; there's no postinstall script to automate this. iOS support exists in the directory tree but is effectively undocumented and likely broken. There are no tests anywhere in the repo.