Lightning-Powered Point of Sale System & Business OS
Built on Nostr Protocol | Decentralized | Sovereign | Offline-First
BNOS is a modern, decentralized Point of Sale (POS) system designed for sovereign businesses. Built on the Nostr protocol for data storage and Bitcoin Lightning Network for instant payments, it provides a privacy-focused alternative to traditional POS systems.
- π Data Sovereignty - Your data stays on Nostr relays you control
- β‘ Instant Payments - Accept Bitcoin via Lightning Network
- π΄ Offline-First - Works without internet using local storage & sync
- π Decentralized - No central server, no vendor lock-in
- π° Zero Fees - No monthly subscriptions or transaction fees
- π End-to-End Encrypted - NIP-04/44 encryption for sensitive data
- Product Grid - Visual product selection with categories
- Cart Management - Add, remove, adjust quantities
- Multiple Order Types - Dine-in, takeout, delivery
- Table Management - Assign orders to tables
- QR Code Ordering - Customer self-ordering via QR scan
- Multi-currency - LAK, USD, THB, BTC, SATS
- Cash Payments - With change calculation
- Bitcoin Lightning - LNbits, Alby Hub, NWC, Blink
- QR Payments - Local bank QR codes (BCEL, LDB, etc.)
- Split Payments - Combine multiple payment methods
- Order Queue - Real-time kitchen display
- Status Tracking - Pending β Cooking β Ready β Served
- Receipt Printing - Thermal printer support
- Order History - Complete transaction logs
- Stock Tracking - Real-time inventory levels
- Low Stock Alerts - Automatic notifications
- Purchase Orders - Supplier management
- Batch/Lot Tracking - FIFO/LIFO inventory
- Stock Adjustments - Manual corrections with audit trail
- Cycle Counts - Physical inventory verification
- Recipe Builder - Create recipes with ingredients
- Cost Calculation - Automatic food cost tracking
- Ingredient Stock - Auto-deduct on sale
- Portion Control - Standardized portions
- Customer Profiles - Contact info, preferences
- Order History - Past purchases per customer
- VIP Status - Special customer designation
- Loyalty Points - Reward programs
- Subscription Plans - Day, monthly, yearly
- Check-in System - Quick member validation
- Expiry Tracking - Renewal notifications
- Access Control - Member-only features
- Sales Reports - Daily, weekly, monthly
- Product Performance - Top sellers
- AI Insights - Smart business analytics
- Export to Excel - Data export
Support for various business templates:
- π½οΈ Restaurant/CafΓ©
- π€ Karaoke/Entertainment
- ποΈ Gym/Fitness
- π§ Auto Garage
- π Retail Store
| Technology | Purpose |
|---|---|
| Nuxt 4 | Vue.js meta-framework |
| Vue 3.5 | Reactive UI framework |
| TypeScript | Type-safe JavaScript |
| Nuxt UI v4 | UI component library |
| Nostr | Decentralized data protocol |
| nostr-tools | Nostr client library |
| Dexie.js | IndexedDB wrapper for offline |
| ECharts | Data visualization |
| Pinia | State management |
| @nuxtjs/i18n | Internationalization |
| Vite PWA | Progressive Web App |
| Zod | Schema validation |
- Node.js 18+
- Yarn (recommended) or npm
- A Nostr key pair (generated on first run)
# Clone the repository
git clone https://github.com/bitspace/bitspace-pos.git
cd bitspace-pos
# Install dependencies
yarn install
# Start development server
yarn devThe app will be running at http://localhost:3002
# Build the application
yarn build
# Preview production build
yarn previewCreate a .env file in the root directory:
# Cloudinary (optional - for image uploads)
NUXT_CLOUDINARY_CLOUD_NAME=your_cloud_name
# Custom relays (optional)
NUXT_PUBLIC_NOSTR_RELAYS=wss://relay.example.com,wss://relay2.example.comBNOS supports multiple Lightning backends:
| Provider | Configuration |
|---|---|
| LNbits | Node URL + Admin/Invoice Key |
| Alby Hub | Access Token |
| NWC | Connection String (nostr+walletconnect://...) |
| Blink | API Key + Wallet ID |
| Lightning Address | name@domain.com |
Configure in: Settings β Lightning
Default relays are configured in use-nostr-relay.ts:
const DEFAULT_RELAYS = [
"wss://relay.bnos.space",
"wss://relay.damus.io",
"wss://nos.lol",
// ...
];Add/remove relays in: Settings β Relays
Currently supported languages:
| Language | Code | Status |
|---|---|---|
| π±π¦ Lao | lo-LA |
β Complete |
| πΊπΈ English | en-US |
β Complete |
Language files are located in: /i18n/locales/
bitspace-pos/
βββ app/
β βββ assets/ # CSS, images
β βββ components/ # Vue components
β βββ composables/ # Vue composables (56 modules)
β βββ layouts/ # Page layouts
β βββ middleware/ # Route middleware
β βββ pages/ # Route pages
β βββ plugins/ # Nuxt plugins
β βββ types/ # TypeScript types
βββ docs/ # Documentation
βββ i18n/
β βββ locales/ # Translation files
βββ public/ # Static assets
βββ server/ # Server routes (API)
βββ tests/ # Unit & E2E tests
βββ nuxt.config.ts # Nuxt configuration
| Composable | Purpose |
|---|---|
use-nostr-data |
Nostr data storage with encryption |
use-nostr-relay |
Relay connection management |
use-lightning |
Lightning payment integration |
use-products |
Product CRUD operations |
use-orders |
Order management |
use-inventory |
Inventory tracking |
use-customers |
Customer management |
use-pos |
POS cart & checkout |
use-auth |
Authentication |
use-encryption |
NIP-04/44 encryption |
# Run unit tests
yarn test:unit
# Run E2E tests
yarn test:e2e
# Run all tests
yarn testbnos.space is a Progressive Web App with full offline support:
- β Installable on mobile/desktop
- β Works without internet
- β Background sync when online
- β Push notifications (planned)
- Open in Chrome/Safari
- Click "Install" or "Add to Home Screen"
- Launch from your device
- NIP-44 encryption for sensitive data
- Company Code encryption for cross-device sync
- All data encrypted before publishing to relays
- Nostr Keys - Cryptographic authentication
- NIP-07 Extensions - Alby, nos2x, Nostr Connect
- Staff PIN - Quick cashier login
- Password Auth - Traditional option
We welcome contributions! Please read our contributing guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Nostr Protocol - Decentralized social protocol
- Bitcoin Lightning - Instant Bitcoin payments
- Nuxt - The Intuitive Vue Framework
- Nuxt UI - Beautiful UI Components
- π¬ Nostr: Nostr bnos.space
- β‘ Lightning:
bnos@blink.sv - π§ Discord: Discord Server
Built with β‘ by the BitSpace Team
Sovereign Business. Decentralized Future.