https://github.com/Posnic/POS
Free offline-first open source POS and billing software for retail and restaurants. AGPL-3.0-only source; packages include separately licensed components.
https://github.com/Posnic/POS
billing-software electron inventory-management linux macos offline-first offline-pos online-offline-pos open-source open-source-pos point-of-sale point-of-sale-system pos pos-software pos-system restaurant retail retail-pos self-hosted windows
Last synced: about 1 month ago
JSON representation
Free offline-first open source POS and billing software for retail and restaurants. AGPL-3.0-only source; packages include separately licensed components.
- Host: GitHub
- URL: https://github.com/Posnic/POS
- Owner: Posnic
- License: agpl-3.0
- Created: 2026-08-07T15:56:04.000Z (3 months ago)
- Default Branch: develop
- Last Pushed: 2026-09-26T19:11:51.000Z (about 1 month ago)
- Last Synced: 2026-09-26T19:15:58.834Z (about 1 month ago)
- Topics: billing-software, electron, inventory-management, linux, macos, offline-first, offline-pos, online-offline-pos, open-source, open-source-pos, point-of-sale, point-of-sale-system, pos, pos-software, pos-system, restaurant, retail, retail-pos, self-hosted, windows
- Language: JavaScript
- Homepage: https://www.posnic.com/
- Size: 53 MB
- Stars: 5
- Watchers: 3
- Forks: 14
- Open Issues: 402
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Citation: CITATION.cff
- Security: .github/SECURITY.md
- Support: .github/SUPPORT.md
- Governance: docs/GOVERNANCE.md
- Roadmap: docs/ROADMAP.md
- Codemeta: codemeta.json
- Agents: AGENTS.md
- Claude: CLAUDE.md
- Cla: .github/CLA.md
Awesome Lists containing this project
- awesome-local-first - Posnic - Free, open-source POS and Billing Software for retail shops and restaurants. Primary data stays on the till for offline checkout, with optional self-hosting for Online/Offline POS workflows. [Website](https://www.posnic.com/) (Applications / Retail & Commerce)
- open-production-web-projects - Posnic - AGPL open-source POS and billing software with offline-first checkout and optional online/self-hosted workflows ([website](https://www.posnic.com/)). (Javascript / Express)
- awesome-foss-alternatives - Posnic POS - Offline-first open source POS and billing software for retail shops and restaurants, with desktop packages, self-hosted setup and optional cloud services. Website: <https://www.posnic.com/>. [JS, GNU Affero General Public License v3.0]. (Business / Point of Sale (Square POS / Clover alternatives))
README

# Posnic
**Free open source POS and billing software with public source, local checkout
and online/offline workflows.**
An offline-first POS for retail shops and restaurants. The primary API and
database run on the shop computer or on a server you control; electronic
payments, optional cloud services, downloads and integrations can still need a
network.
Posnic's own source is AGPL-3.0-only. Release packages also bundle separately
licensed components, including MongoDB Community Server under SSPL-1.0. Review
the [package notices](THIRD-PARTY-NOTICES.md) and
[reproduced package evidence](https://www.posnic.com/assets/posnic-package-license-evidence.json)
before making a package-level licence statement.
[](https://github.com/Posnic/POS/actions/workflows/ci.yml)
[](https://github.com/Posnic/POS/actions/workflows/release.yml)
[](https://github.com/Posnic/POS/releases)
[](https://github.com/Posnic/POS/releases/latest)
[](docs/DEVELOPMENT.md#running-the-tests)
[](docs/DEVELOPMENT.md#running-the-tests)
[](docs/API.md)
[](LICENSE)
[](THIRD-PARTY-NOTICES.md)
[](https://github.com/Posnic/POS/releases/latest)
### [⬇ Download for Windows](https://github.com/Posnic/POS/releases/latest) · [macOS](https://github.com/Posnic/POS/releases/latest) · [Linux](https://github.com/Posnic/POS/releases/latest)
### [▶ Try the live demo](https://demo.posnic.io) — nothing to install, resets on the hour
Log in as `admin` / `admin`, `manager` / `manager` or `cashier` / `cashier` —
the login page has one-tap buttons for all three. It is a real supermarket
shop with a week of sample trading, running the same code as this repository;
ring up sales, break things freely, and the whole shop is restored on the
hour. Outbound email, SMS and password changes are switched off there.
[Website](https://www.posnic.com/) · [Product facts](https://www.posnic.com/posnic-facts) · [Package evidence](https://www.posnic.com/assets/posnic-package-license-evidence.json) · [CodeMeta metadata](codemeta.json) · [Citation metadata](CITATION.cff) · [Roadmap](docs/ROADMAP.md) · [Contributor quickstart](docs/CONTRIBUTOR_QUICKSTART.md) · [User guide](docs/USER_GUIDE.md) · [Developer guide](docs/DEVELOPMENT.md) · [Architecture](docs/ARCHITECTURE.md) · [API](docs/API.md) · [Discussions](https://github.com/Posnic/POS/discussions)
---
## Posnic in use

This synthetic cash sale was completed and reopened during the bounded
[offline workflow verification](https://www.posnic.com/posnic-facts). The published
test notes state what was blocked, what passed and what the result does not
prove.
## Why Posnic
Posnic runs its primary database and API on the till itself. In a bounded
v1.3.0 Windows test, one synthetic cash sale completed and reopened while
external hosts were blocked inside Electron. This does not prove an
operating-system-wide outage, complete shift, payment-terminal path, power-loss
recovery or every workflow. Review the
[versioned evidence and limitations](https://www.posnic.com/posnic-facts).
- **Free local edition.** The v1.3.0 desktop packages have no trial clock and
have a zero software price. Posnic's own source is AGPL-3.0-only; packaged
dependencies retain their own licences. Hardware, support, backups, optional
services and downtime can still create operating costs.
- **Local data path.** The local edition needs no Posnic account, and its
published privacy policy says it sends no analytics or telemetry to Posnic.
See [PRIVACY.md](docs/PRIVACY.md).
- **Posnic source under AGPL-3.0-only.** Read it, change it, self-host it and
fork it under the licence terms. Review each bundled component separately.
### Using Posnic in a real business or pilot?
Share a bounded
[deployment evidence report](https://github.com/Posnic/POS/issues/new?template=deployment_evidence.yml),
including failures, workarounds, or why a trial stopped. The form records the
exact version, relationship, observation window, workflows and limitations while
letting you refuse marketing reuse. Read the
[adoption evidence policy](docs/ADOPTION_EVIDENCE.md) before posting private or
production information.
### Reviewing Posnic independently?
Use the public [review brief](https://www.posnic.com/assets/posnic-independent-review-brief.txt)
and [24-control protocol](https://www.posnic.com/assets/posnic-independent-review-protocol.csv)
with the exact release, package filename and SHA-256 you tested. Review access
does not require payment, positive coverage, a backlink or advance approval.
Publish failures, conflicts and untested areas beside successful results. An
independent evaluator can submit a bounded public result through the
[deployment evidence form](https://github.com/Posnic/POS/issues/new?template=deployment_evidence.yml)
without granting marketing reuse.
## Features
| | |
|---|---|
| **Selling** | Fast keyboard and touch billing, barcode scanning, returns, part payments, held bills, quick sale |
| **Stock** | Items, variants, categories, purchases, supplier returns, inventory logs, low-stock alerts |
| **Customers** | Customer accounts, categories with their own pricing, outstanding balances |
| **Tax** | GST invoices, IGST and CGST/SGST, HSN codes, GST reports for filing |
| **Restaurants** | Kitchen order tickets, table management, kiosk and customer displays |
| **Hardware** | Documented paths for thermal printers, barcode scanners, cash drawers, weighing scales and second displays; verify the exact device in the [hardware matrix](docs/HARDWARE_MATRIX.md) |
| **Reports** | Sales, purchases, inventory, expenses, profit, staff activity — all exportable |
| **Branches** | Multiple outlets, per-branch stock, staff roles and permissions |
## Install
Posnic installs two ways, both free and both the same AGPL-3.0 software.
**Most shops want the desktop app.**
| | **Desktop** | **Your own server** |
|---|---|---|
| Install | Download and run | One command on Ubuntu |
| Used from | That computer | A browser on any till, tablet or phone on the network |
| Data lives | That computer | Your server |
| Needs internet | No | No — your own network is enough |
| Somebody maintains it | No | **You** — updates, backups, certificate |
| Sync between shops | Posnic Cloud | Posnic Cloud |
A server is not a better desktop; it is a machine somebody has to look after. If
one person rings up sales on one computer, the desktop app is the right answer
and always will be.
For a fuller comparison of local desktop, self-hosted network, and managed
operation, read the [Offline POS vs Online/Offline POS deployment
guide](https://posnic.github.io/offline-vs-online-pos.html).
### Desktop
Download the package for your platform from
**[the latest release](https://github.com/Posnic/POS/releases/latest)**, run it,
and follow the wizard. Current v1.6.2 packages include MongoDB Community Server
under its separate SSPL-1.0 licence, so no separate database install is needed
for the bundled setup. See [third-party notices](THIRD-PARTY-NOTICES.md).
Verify your download against `SHA256SUMS.txt`. For releases that provide an
artifact-bound SBOM and provenance, follow the [release verification guide](docs/VERIFY_RELEASE.md).
> Current v1.6.2 Windows installers are signed and timestamped, and macOS
> packages are signed and notarized. If the operating system reports an unknown
> publisher, stop and verify the package against the official release before
> running it. **Linux**: make the `.AppImage` executable, or install the `.deb`.
First launch takes a few minutes while it sets up its database. After that,
seconds. Full walkthrough in the **[user guide](docs/USER_GUIDE.md)**.
### Your own server
Ubuntu 24.04, 2 GB of memory, 8 GB of disk. A 2 GB virtual machine from any
provider runs a single shop comfortably.
```bash
curl -fsSL https://raw.githubusercontent.com/Posnic/POS/main/scripts/install-server.sh -o install-server.sh
less install-server.sh # read it first - you are about to run it as root
sudo bash install-server.sh
```
It installs Node.js 22, MongoDB 8 and Posnic into `/opt/posnic`, generates that
machine's own secrets, and runs it under systemd so it survives a reboot. When
it finishes it prints the address to open. Re-running it updates Posnic and
leaves your secrets and your data alone.
Three things it cannot do for you, none of them optional on a shop taking real
money: **get a certificate** (without one, passwords cross the network in the
clear), **keep port 27017 off the internet**, and **restore a backup once** to
prove it is a backup rather than a file.
**Self-hosting does not include sync between tills or branches.** That is
[Posnic Cloud](https://www.posnic.com/pricing). A self-hosted Posnic is one
database several people use at once — which is what most single-shop setups
actually want — not several databases kept in step.
Full guide, including installing by hand on other systems:
**[docs/SELF_HOSTING.md](docs/SELF_HOSTING.md)**.
## Build from source
```bash
git clone https://github.com/Posnic/POS.git
cd POS
npm install
npm --prefix api install
npm start
```
Needs Node 22.12+. The build tooling fetches MongoDB Community Server 7.0.14 and
the desktop process chooses a port derived from the app name to reduce collision
risk. Review [the architecture](docs/ARCHITECTURE.md) and package licences before
building or distributing an artifact.
```bash
npm run build # Windows installer
npm run build:mac
npm run build:linux
```
New contributors should start with the
**[contributor quickstart](docs/CONTRIBUTOR_QUICKSTART.md)**. See the
**[developer guide](docs/DEVELOPMENT.md)** for deeper tests, linting and
conventions.
## Editions
The desktop packages have a zero software price and no trial clock. Posnic's own
source is AGPL-3.0-only, while bundled components keep their separate licences.
**Posnic Cloud** is a paid service for shops that want more than one till.
| | Posnic (this repo) | Posnic Cloud |
|---|---|---|
| Selected local workflows and local operational records | ✅ | ✅ |
| Local database and backups | ✅ | ✅ |
| Documented printer, scanner, drawer and scale paths | ✅ | ✅ |
| GST invoicing and reports | ✅ | ✅ |
| Runs on your own server, used from a browser | ✅ | ✅ |
| Sync across tills and branches | | ✅ |
| Off-site backups, remote dashboard | | ✅ |
| Installer under your own brand | | ✅ |
Both ways of running Posnic — [desktop and your own server](#install) — sit in
the left column. Neither is a trial and neither expires.
**We do not move features from the left column to the right.** What is free
today stays free. Cloud has to earn its price by being useful, not by making
the free edition worse. This is written down in [GOVERNANCE.md](docs/GOVERNANCE.md).
## Documentation
| | |
|---|---|
| [User guide](docs/USER_GUIDE.md) | Running a shop with Posnic, first sale to closing the till |
| [Contributor quickstart](docs/CONTRIBUTOR_QUICKSTART.md) | Local setup, test commands, issue map, PR flow and safety rules |
| [Developer guide](docs/DEVELOPMENT.md) | Setup, tests, conventions, good first issues |
| [Architecture](docs/ARCHITECTURE.md) | How it fits together, and the parts that bite |
| [REST API](docs/API.md) | 799 endpoints, generated from the routes |
| [Hardware](docs/HARDWARE_MATRIX.md) | Printers, scanners, drawers, scales — and how far each claim is checked |
| [India e-invoicing](docs/INDIA_EINVOICING_DESIGN.md) | Research, readiness inventory and design for GST e-invoicing as an optional feature; no live IRP submission is built |
| [India GST return gaps](docs/INDIA_GST_RETURNS_GAPS.md) | What the GST reports compute today, measured against GSTR-1, 3B and 9 |
| [India government integration](docs/INDIA_GOVERNMENT_INTEGRATION.md) | How software is registered with the GST system, what each route requires, and when to apply |
| [Backups](docs/BACKUP_POLICY.md) | What is backed up, when, and what it does not protect you from |
| [Disaster recovery](docs/DISASTER_RECOVERY.md) | Getting back to working, with RPO and RTO as numbers |
| [Open source POS evaluation checklist](https://posnic.github.io/open-source-pos-evaluation-checklist.html) | Verify licensing, offline checkout, hardware, recovery and maintenance before rollout |
| [Offline POS backup and restore checklist](https://posnic.github.io/offline-pos-backup-checklist.html) | Turn routine copies into a tested recovery process for local and self-hosted deployments |
| [Restaurant POS opening and closing checklist](https://posnic.github.io/restaurant-pos-opening-closing-checklist.html) | Test tills, menus, printers, offline operation, reconciliation and handover for each shift |
| [Retail POS inventory cycle count checklist](https://posnic.github.io/retail-pos-inventory-cycle-count-checklist.html) | Control stock cutoffs, blind counts, offline synchronization, variance investigation and approvals |
| [Retail POS end-of-day cash reconciliation checklist](https://posnic.github.io/retail-pos-end-of-day-cash-reconciliation-checklist.html) | Close tills, reconcile each tender, investigate variances and preserve a reviewable shift handover |
| [Retail POS incident response checklist](https://posnic.github.io/retail-pos-incident-response-checklist.html) | Contain billing outages, preserve evidence, prevent duplicates, recover service and reconcile affected records |
| [Retail POS receipt printer troubleshooting](https://posnic.github.io/retail-pos-receipt-printer-troubleshooting.html) | Protect completed sales, isolate printer and cash-drawer faults, recover safely and prevent duplicate billing |
| [Retail POS user access review checklist](https://posnic.github.io/retail-pos-user-access-review-checklist.html) | Review staff roles, sensitive actions, leavers, offline enforcement, integrations and retained evidence |
| [Retail POS returns, refunds and voids checklist](https://posnic.github.io/retail-pos-returns-refunds-voids-checklist.html) | Verify original sales, approvals, payment reversals, stock disposition, offline queues and reconciliation |
| [Release runbook](docs/RELEASE_RUNBOOK.md) | How a release goes out, and four ways to take one back |
| [Release verification](docs/VERIFY_RELEASE.md) | Match a package to its checksum, CycloneDX inventory, provenance and component licences |
| [Support lifecycle](docs/SUPPORT_LIFECYCLE.md) | Which versions get fixes, and for how long |
| [Incident response](docs/INCIDENT_RESPONSE.md) | Who decides, who is told, and when |
| [Terms of use](docs/TERMS_OF_USE.md) | Customer terms for Posnic Cloud |
| [Subprocessors](docs/SUBPROCESSORS.md) | Who else can touch your data. For the local edition: nobody |
| [Cloud operations](docs/CLOUD_OPERATIONS.md) | What the paid service is made of, and what is still to be decided |
| [Data processing addendum](docs/DATA_PROCESSING_ADDENDUM.md) | For customers who need a written DPA |
| [Contributing](.github/CONTRIBUTING.md) | How to get a change merged |
| [Public roadmap](docs/ROADMAP.md) | Current priorities, evidence gaps and structured ways to help |
| [Citation metadata](CITATION.cff) | Human and tool-readable citation identity for exact releases or commits |
| [Adoption evidence](docs/ADOPTION_EVIDENCE.md) | How real deployment reports are scoped, reviewed, cited, corrected and kept privacy-safe |
| [Support](.github/SUPPORT.md) | Where to ask, and what happens to your issue |
| [Governance](docs/GOVERNANCE.md) | Who decides what, and what we have promised |
| [Privacy](docs/PRIVACY.md) | What the app collects, and what it does not |
| [Security](.github/SECURITY.md) | What Posnic protects, what it cannot, and reporting a vulnerability |
| [Third-party notices](THIRD-PARTY-NOTICES.md) | Separately licensed software included in release packages |
| [CodeMeta](codemeta.json) | Machine-readable product, publisher, source, licence and platform identity |
| [Code of conduct](.github/CODE_OF_CONDUCT.md) | How we treat each other |
## Contributing
Bug reports, fixes, translations, hardware quirks from real shops, documentation
— all welcome, and none of it requires permission to start. The
[contributor quickstart](docs/CONTRIBUTOR_QUICKSTART.md) gives the local setup,
test commands and public feature-ticket map.
Good places to begin are listed in the
[developer guide](docs/DEVELOPMENT.md#good-first-issues): 19 known-failing tests,
21 real latent bugs the linter found, and two very large files that want
splitting.
Read [CONTRIBUTING.md](.github/CONTRIBUTING.md) first. Security issues go to
[SECURITY.md](.github/SECURITY.md), privately — never a public issue.
## Buy the team a chai ☕
Posnic is built by a small team in Tamil Nadu, India, and given away because a
shop should not have to rent its own till. If it saves you money, sending a
little back is what keeps the next release coming.
| | |
|---|---|
| ☕ **[Buy us a chai](https://github.com/sponsors/Posnic)** | one-off or monthly, from a dollar up |
| ☁️ **[Posnic Cloud](https://www.posnic.com/pricing)** | sync, off-site backups, remote dashboards — the paid service that funds this one |
| 🏢 **Commercial licence** | keep your modifications private — **info@posnic.com** |
Sponsors are named in releases unless they would rather not be.
### For businesses
**Posnic Innovations**, Tamil Nadu, India.
| | |
|---|---|
| Sales and licensing | **info@posnic.com** |
| Support | [SUPPORT.md](.github/SUPPORT.md) · [Discussions](https://github.com/Posnic/POS/discussions) |
| Security | **info@posnic.com** — privately, never a public issue ([SECURITY.md](.github/SECURITY.md)) |
| Web | [www.posnic.com](https://www.posnic.com/) |
Paid setup, migration from an existing till, hardware selection, custom
reporting and white-labelled installers are all available. The software stays
free either way — see [GOVERNANCE.md](docs/GOVERNANCE.md) for what we have promised
never to move behind a paywall.
## Source and package licences
Posnic's own source is [GNU AGPL-3.0-only](LICENSE). Use, change, self-host and
redistribute that source under the licence terms. Release packages also include
separately licensed components; read [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md)
and the licence material shipped with the exact artifact. This summary is not
legal advice.
The **Posnic name and logo are trademarks** and are not covered by the AGPL —
see [GOVERNANCE.md § Trademark](docs/GOVERNANCE.md#trademark-and-reserved-rights).
Companies needing to keep modifications private can buy a commercial licence:
**info@posnic.com**. Such a licence covers the code Posnic owns. Contributors
keep the copyright in what they write and there is no CLA, so community code can
only be relicensed with its author's agreement — a deliberate limit on our own
power, set out in [GOVERNANCE.md § Contributor
copyright](docs/GOVERNANCE.md#contributor-copyright).