Hey everyone ![]()
I’ve been building Easy POS — a free, open-source POS front-end for ERPNext/Frappe — and wanted to share it here since it’s now at a stage worth showing off.
What it is
Easy POS replaces the standard ERPNext POS screen with a purpose-built retail checkout experience: a fast cart-and-payment terminal, shift-based cash management, invoice/returns handling, and admin screens for POS Profiles, Price Lists, and Discounts. It’s built as a modern React 19 SPA, packaged as a normal installable Frappe app — no separate database, it reuses ERPNext’s own Sales Invoice, Customer, and POS Profile doctypes as the system of record, so everything you ring up shows up natively in ERPNext’s own reports and ledgers.
Target users: small/mid-size retail counters — shops, cafés, multi-terminal stores — already running ERPNext, who want a snappier cashier-facing UI without giving up their existing accounting/inventory/reporting stack.
Some of what’s in it today
-
POS Terminal — cart checkout, live item search, line/invoice discounts, split (multi-mode) payments
-
Barcode scanning — hardware scanner (keyboard-wedge, works without clicking into search) or device camera
-
Held/draft sales — park a cart as a Draft, pull it back later
-
Product Bundles — added like any item, ERPNext explodes it into packed items on checkout
-
Customer-facing second screen — live mirror of the cart for a dual-monitor till setup
-
Payment gateways — Razorpay live checkout today, built as a pluggable registry so more gateways can be added without touching the checkout screen
-
Pricing Rules / Item Prices / Price Lists — full admin screens, applied automatically in-cart
-
Loyalty Program — enroll customers, redeem points in-cart against the invoice total
-
Invoice Register + returns — searchable invoice list, cancel, credit notes with recomputed taxes
-
Shift management — opening/closing entries, per-payment-mode reconciliation, everything scoped to the shift (not just the profile) so numbers can’t leak across shifts sharing a till
-
Installable PWA — add-to-home-screen, precached app shell, update-prompt banner
-
Light/dark theme
It’s being built toward a fully offline-first PWA — today’s release is the complete online checkout-to-close workflow plus PWA installability; RxDB-backed local storage and background sync are next on the roadmap.
Screenshots
(attach a few from easy_pos/public/screenshots/ here — terminal, invoice-detail, reports, dark-mode are good picks)
Try it
cd $PATH_TO_YOUR_BENCH
bench get-app https://github.com/aashishvashisht6/EasyPOS --branch develop
bench install-app easy_pos
-
License: MIT
Would love feedback, bug reports, or feature requests — issue templates are set up on the repo for both. If you’re running ERPNext for retail and this is useful (or missing something you need), let me know here or open an issue!