4 min readNodedr Team

What NodeDR POS Actually Does: An Offline-First Register for Small Retail

NodeDR POSPOSRetailOpen SourceOffline

Introduction

NodeDR POS is a free, open-source point-of-sale and inventory system built for a specific counter setup: a barcode scanner, a receipt printer, and a shop that doesn't want its sales data leaving the premises. It's offline-first by design — once installed, nothing about the checkout flow depends on an internet connection, and the app makes zero external calls at runtime. The source is on GitHub at github.com/Raktim94/nodedr-pos under the MIT license.

Scan, sell, print

The register is built around the barcode scanner, not around clicking through menus. Scan an item to add it to the cart, scan it again to bump the quantity, and press Enter to check out. If a barcode doesn't match anything in inventory, the app surfaces a toast and lets you keep working instead of freezing the register.

If a product doesn't have a barcode yet, NodeDR POS generates a valid EAN-13 on the spot and lets you print or download the label as a PNG or JPG — no external barcode service involved, no internet required.

Receipts come out three ways: Print opens a formatted receipt through the browser's own print dialog, so it uses whatever printer the OS has configured, thermal or otherwise. Download PDF always produces a real PDF file. Print via USB skips the dialog entirely and writes raw ESC/POS bytes straight to a USB thermal printer. An auto-print setting can fire the receipt the moment a sale completes.

Billing that matches how Indian retail actually works

Prices in NodeDR POS are entered as MRP — GST-inclusive, as the law requires — and the app breaks tax out as CGST/SGST on the receipt for compliance rather than adding it on top of the price a second time. GST can be toggled off entirely in settings for shops that don't need it. GSTIN and PAN fields get live format validation, and HSN/SAC codes, GST rate slabs, and per-product units (UQC) are all built in.

Discounts work two ways: a percentage or flat amount applied at checkout, and a standing per-product discount percentage set once in Inventory that applies automatically every time that item sells.

Loyalty, dues, and returns

Customers are tracked by phone number and earn loyalty points on every purchase, redeemable at checkout with a tap of Use all. The dashboard ranks top customers by current point balance.

For shops that carry customers on credit, a sale can be settled short of the total when a customer is attached — the shortfall becomes a running udhaar due you can record payments against later, with full payment history.

Returns work by looking up any past invoice directly from the register, queuing one or more lines to return, and either settling it as a refund or folding it into a new sale as an exchange. Returned stock goes back into inventory automatically, and the same unit can never be returned twice, even across multiple partial returns. A refund can also be kept as store credit — tracked separately from udhaar and spendable on any future purchase.

Multi-currency, multi-user, multi-device

Over 20 currencies are supported and switchable in settings, with the symbol flowing through the whole app and onto receipts. An admin account can create any number of cashier logins — admins manage staff and settings, cashiers run the register. The interface collapses to a slide-out nav below desktop width, so a counter tablet or phone works as well as a desktop browser.

Getting it

There are three ways to install NodeDR POS, all built from the same code and all served at http://<machine>:1994:

  • Windows 10/11 (64-bit)download the installer and run it. No Docker, no Node.js — it installs as two Windows services that start automatically, no login required.
  • Debian / Ubuntusudo apt install ./nodedr-pos-latest-amd64.deb, installed as a systemd service with an nodedr-pos doctor|backup|restore|logs CLI included.
  • Docker Compose (any OS) — clone the repo and run ./install.sh.

Full install docs, screenshots, and the complete feature list live on the marketing site and in the GitHub README.

FAQ

Does NodeDR POS need an internet connection to run?

No. Once installed, it runs entirely on the local machine or LAN and makes no external calls at runtime — it's built for shops that want their sales data to never leave the premises.

Can I use NodeDR POS without a barcode scanner?

Yes, but it's built around one. Without a scanner you can still add products manually from Inventory, but scan-to-sell is the fastest path through checkout.

Is NodeDR POS free to use commercially?

Yes — it's released under the MIT license, so shops and resellers can install, modify, and use it commercially at no cost.

Does it handle GST correctly for Indian retail?

Yes. Prices are treated as GST-inclusive MRP by law, and the app breaks out CGST/SGST on the receipt without adding tax on top of the listed price.

Share:

Planning a new website?

Let's talk about how a fast, SEO-ready Next.js site can help your business grow.

Start Your Project