Flo Desktop is a free, open-source, offline-first Point of Sale (POS) system designed for restaurants, cafes, salons, and retail shops. Runs on your own computer with no internet required - perfect for small businesses in India and Southeast Asia.
- π° Completely Free - No subscriptions, no licenses, no hidden costs
- π΄ Works Offline - Full functionality without internet connection
- π Your Data, Your Server - Self-hosted on your own machine
- π½οΈ Restaurant Ready - Table management, KDS, thermal printing
- π Retail Ready - Product catalog, inventory, billing
- π₯οΈ Cross-Platform - Windows, macOS, Linux
| Platform | File | Description |
|---|---|---|
| macOS (Intel) | Flo-1.5.1.dmg |
For Intel Macs |
| macOS (Apple Silicon) | Flo-1.5.1-arm64.dmg |
For M1/M2/M3 Macs |
| Windows | Flo Setup 1.5.1.exe |
Windows installer |
| Linux (AppImage) | Flo-1.5.1.AppImage |
Portable Linux binary |
| Linux (Debian) | flo-desktop_1.5.1_amd64.deb |
Debian/Ubuntu package |
Latest Version: v1.5.1
- Fast order entry with product search
- Multiple order types (Dine-in, Takeaway, Delivery)
- Table management with real-time status
- Cart with modifiers and addons
- Billing with multiple payment methods (Cash, UPI, Card)
- GST-compliant invoice generation
- Kitchen Display System (KDS)
- Kitchen Order Tickets (KOT) printing
- Table tracking and management
- Multi-station kitchen support
- Real-time order updates
- ESC/POS thermal receipt printing
- USB printer support
- Network/Bluetooth printer support
- Auto-detect printers (Epson, Xprinter, Star, etc.)
- Multiple bill templates (Classic, Compact, Detailed)
- Configurable character widths (58mm/80mm paper)
- Product catalog with categories
- Addon groups for modifiers
- Staff management with roles
- Customer database
- Low stock alerts
- WhatsApp bill sharing
- Thermal printer support
- Network printing
- Runtime: Electron 31
- Backend: Express.js + TypeScript
- Frontend: Next.js 16 (React 19, TypeScript)
- Database: SQLite (better-sqlite3)
- Styling: Tailwind CSS + shadcn/ui
- Real-time: WebSocket for KDS updates
- OS: Windows 10+, macOS 11+, Ubuntu 20.04+
- RAM: 4GB
- Disk: 500MB
- Node.js: 20+ (for development only)
- Thermal Printer: ESC/POS compatible (Epson TM series, Xprinter, Star, etc.)
- USB: For USB-connected printers
Download the appropriate installer from the Releases page.
On first run, the app will:
- Initialize the SQLite database
- Load demo data (optional)
Default credentials:
| Role | Password | |
|---|---|---|
| Admin/Owner | admin@flo.local |
admin123 |
| Kitchen (KDS) | chef@flo.local |
chef123 |
- Go to Settings β Printers
- Click Detect Printers
- Select your thermal printer
- Test the connection
# Clone the repository
git clone https://github.com/FreeOpenSourcePOS/FloDesktop.git
cd FloDesktop
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build:mac # macOS
npm run build:win # Windows
npm run build:linux # Linux
npm run build:all # All platformsCreate a .env file for production:
JWT_SECRET=your-secure-secret-key-here
PORT=3088(Coming soon)
FloDesktop/
βββ main/ # Electron main process
β βββ db.ts # SQLite database setup
β βββ routes/ # API routes
β βββ printers/ # Thermal printing logic
β βββ services/ # Business logic
βββ frontend/ # Next.js frontend (submodule)
β βββ src/
β βββ app/ # Next.js App Router
β βββ components/ # React components
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utilities
βββ release/ # Built applications
Flo Desktop uses SQLite for local storage:
business- Business profileproducts- Product catalogcategories- Product categoriestables- Restaurant tablesorders- Order recordsbills- Billing/paymentsprinters- Printer configurationsstaff- Employee recordscustomers- Customer database
| Project | Description | Tech |
|---|---|---|
| FloPOS | Full-featured cloud POS with multi-tenancy | Laravel + Next.js (SaaS) |
Contributions are welcome!
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_NAME/FloDesktop.git - Create a branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Ensure the printer is connected and powered on
- Check USB connection
- For network printers, ensure they're on the same network
- Delete the database file and restart (data will be lost)
- Check logs in the application directory
- Verify printer supports ESC/POS protocol
- Test with the built-in print test page
- Check paper and ribbon/thermal head
This project is open source under the MIT License.
Built with β€οΈ using:
- Electron
- Next.js
- SQLite
- Tailwind CSS
- shadcn/ui
- GitHub Issues: https://github.com/FreeOpenSourcePOS/FloDesktop/issues
- Community: Discord | Telegram
Bringing professional POS software to every small business!
β Star us on GitHub | π Report bugs | π‘ Suggest features | π’ Share with others