The Problem
Most Point of Sale (POS) systems are either bloated enterprise software or outdated legacy apps. I wanted to build something lightweight, modern, and containerized that could handle real-time data efficiently.
The Solution: My Restaurant POS
I've spent the last few months building a full-stack Restaurant Point of Sale system. My goal was to leverage the power of SurrealDB—a multi-model database—to handle the complex relationships between orders, inventory, and staff without the overhead of a traditional relational DB.
🛠 The Tech Stack:
Frontend: React with Tailwind CSS
Backend/Database: SurrealDB (using WebSockets for real-time updates)
Infrastructure: Docker & Docker Compose
State Management: Jotai
🚀 Key Features
Real-time Synchronization: Since it's built on SurrealDB's WebSocket layer, order updates are instant across all connected devices.
Container-First: The entire environment is orchestrated via Docker Compose, making it easy to move from development to a production-ready manual reverse proxy setup.
Persistent Storage: Integrated secure storage for mobile/web environments using Jotai and custom hooks.
💡 What I Learned (and the Struggles)
The biggest challenge was definitely the infrastructure networking. I spent a lot of time debugging Docker bridge issues and configuring Nginx/Caddy to handle the SSL traffic for the SurrealDB WebSocket connections. Managing the db-init profiles in Docker Compose was another hurdle that taught me a lot about orchestration workflows.
📦 Check out the Repo
I’ve open-sourced the entire project. I’d love for you to take a look, try running it with Docker, and let me know what you think of the architecture!
Top comments (0)