Many retail, F&B, and small business owners in Indonesia need a POS system that works offline, stays lightweight, and is easy to set up — yet most solutions on the market require a constant internet connection or a separate database server, which makes installation difficult for non-technical users. That's why LaciPOS was built: a complete yet lightweight desktop cashier app that store owners can run without any technical knowledge.
User-friendly authentication & onboarding. Owner registration with auto-login, a 6-step setup wizard for store configuration (name, address, timezone, logo, receipt footer), plus an offline password recovery system based on security questions and 10 one-time recovery codes.
Fast, responsive POS checkout. Product grid with real-time search (300ms debounce), category filtering, multi-level product variants, an editable cart panel (quantity, item notes, per-item discounts), a cash calculator with automatic change, and support for 4 payment methods including QRIS with sub-methods and MDR handling.
Reliable transaction processing. Every checkout is wrapped in a database transaction to keep stock and records consistent even if something fails mid-process. Receipts print directly to thermal printers via the NativePHP print API, or export as 58mm/80mm PDFs.
Complete product, stock, and discount management. Product CRUD with photos and variants, automatic margin calculation, automatic stock logs on every transaction, and a discount engine with auto-activation based on quota, date range, and happy hour.
Ready-to-use business reports. Revenue, Profit & Loss, Best Sellers, and Tax Summary reports — all exportable to PDF or CSV — help store owners understand their business performance without a separate accounting tool.
Role-based access for data security. Owners get full access to every menu, while cashiers can only reach the POS and their own transaction history, enforced through role middleware on every route.
LaciPOS follows a modern monolithic architecture: Laravel 11 as the internal backend API, Vue 3 (Composition API) + Inertia.js as the frontend SPA without needing a separate REST layer, and NativePHP Electron as the wrapper for packaging the Windows desktop build. For the database, I chose SQLite — embedded, so users don't need to install or configure a separate database server; they just run the installer and the app is ready to use. The whole system was built in 1.5 months, split across a foundation phase (auth, onboarding, roles), a core POS phase (checkout, transactions, product management), and a reporting/settings/desktop build phase.
| Category | Technology |
|---|---|
| Framework | Laravel 11 |
| Frontend | Vue 3 (Composition API) + Inertia.js 3 |
| Styling | Tailwind CSS 3 |
| Desktop | NativePHP Electron |
| Database | SQLite |
| PDF Generator | DomPDF |
| Charting | Unovis |
| UI Components | shadcn-vue, Reka UI |
LaciPOS is now available as an open-source project under the MIT license, packing 81 features across 33 pages, backed by 21 controllers, 11 models, and 60+ Vue components. It shows that a full-featured POS — from checkout to financial reporting — can still be lightweight, offline-first, and easy enough for non-technical users to run on their own.
🔗 Live website: https://www.lacipos.my.id 🔗 Source code: https://github.com/yogaarrd/LaciPOS 🎥 Demo video: https://youtu.be/smipcU3-IMw