POS and back-office for the shops nobody else builds for.
Avyra POS is the operations brain for variety, tobacco, and convenience stores — the places running on three spreadsheets and a notepad. Bulk inventory by Excel, physical counts with live value tracking, sales analytics, and the hardware integrations that actually work at the till.
What it does in production.
Excel upload for inventory
Drop in an .xlsx with hundreds of products. Auto-detects duplicates by PLU, barcode, or name. Auto-generates PLUs and a 30% markup price when fields are blank.
Physical inventory count
Side-by-side system-vs-counted quantities with live value impact. Color-coded surplus / shortage. Notes per line. Batch update with full audit trail.
Sales analytics
Category, item, and time-of-day breakdowns. Spot shrinkage, restock timing, and the items that actually move.
Smart category rules
Grocery is non-taxable, everything else taxable — out of the box. Override per category as needed.
Hardware integrations
Barcode scanners, receipt printers, scales, cash drawers, and customer displays. We size and ship the hardware, not just the software.
Role-based access
Admin, manager, and clerk roles. Sensitive actions (bulk upload, counts) require manager+; the floor sees only what they need.
Grouped views
Tobacco and lottery inventory grouped by family — count cartons and singles separately without losing the totals.
Auditable by default
Every count, upload, and price change writes an immutable log entry. Every shrinkage question has a paper trail.
How it's built.
- Frontend: React 19 + Material UI v7 + Vite + React Router v7.
- Backend: Node + Express + Mongoose, JWT-authenticated, Multer for uploads, XLSX for parsing.
- Windows till app for in-store hardware (separate spec).
- Zero schema migration to enable bulk upload — works with the existing Product model.
- Calculations: `Difference = counted − system`, `Value impact = difference × cost`.
- Production-tested at Anytime Variety (Ontario, 2026).
┌────────────────────────────┐
│ admin-panel-v2 (React) │ ← managers + clerks
│ MUI v7 · Vite · Router7 │
└──────────────┬─────────────┘
│ /api
▼
┌────────────────────────────┐
│ back-end (Node/Express) │
│ JWT auth · Multer · XLSX │
└──────────────┬─────────────┘
▼
MongoDB (Mongoose)
│
└─► windows-app (Electron till)
+ scanners, printers, scalesWho runs it today.
Variety & convenience
The original use case. Tobacco, lottery, snacks, beverages — categorized correctly, taxed correctly, counted easily.
Specialty retail
Any single-location shop where the owner is also the operator. Replaces the spreadsheet, the notepad, and the dread of inventory night.
Small franchises
Multi-store rollouts share a back-office and consolidate reporting without forcing each store onto the same SKU list.
Questions we get asked.
Why not just use Square or Lightspeed?+
Try doing tobacco-pack-vs-carton inventory counts on either, with proper Canadian tax categories and a paper audit trail. We built this because there wasn't a good answer for shops under 2,000 SKUs that still need real controls.
Can my staff actually use it?+
Yes. Inventory count uses color-coded surplus/shortage cells with live dollar impact. The Excel upload supports template download and reports every row's outcome.
Does it run offline?+
The Windows till app survives short network drops. The admin panel needs network — it's where managers work, not the floor.
Can you add barcode scanning to counts?+
It's on the v2 roadmap. The current build supports it via scanner-as-keyboard input. Voice input and photo documentation are coming.
Got a product to build? Tell us what you have in mind.
We kick off in days, not months. Working software in weeks. If we're not the right fit, we'll tell you up front.