Transform your restaurant operations with a lightning-fast, real-time Point of Sale system built on cutting-edge web technologies.
Running a restaurant is hard enough. Your software shouldn't make it harder.
TanStack POS was built by people who understand the chaos of dinner rushβthe server who needs to fire an order in seconds, the kitchen staff juggling a dozen tickets, the manager who needs real-time visibility into what's happening on the floor.
This isn't just another POS system. It's a complete restaurant operations platform designed for how modern restaurants actually work:
- π Blazing fast β Sub-second order entry, instant kitchen updates
- π± Works everywhere β Desktop, tablet, or TV displays
- π Real-time sync β WebSocket-powered updates via Socket.IO, everyone sees the same data instantly
- π― Role-optimized β Each staff member gets exactly what they need
Comprehensive insights into sales, active orders, and staff performance
Intuitive product grid with one-tap ordering, table management, and custom notes support
Real-time order queue with item-level tracking, audio alerts, and touch-friendly controls
| Feature | Description |
|---|---|
| Quick Order Entry | Tap-to-add products, quantity modifiers, and special instructions |
| Table Management | Visual floor plan with real-time status (available, occupied, reserved) |
| Order Types | Dine-in, takeaway, and delivery β each with tailored workflows |
| Send to Kitchen | Fire orders immediately or hold for coordinated service |
| Flexible Payments | Cash, card, and digital wallet support with split-check options |
| Add to Open Orders | Keep adding items to tables without closing the check |
| Feature | Description |
|---|---|
| Real-Time Queue | Orders appear instantly with item-by-item preparation tracking |
| Item-Level Status | Mark individual dishes ready β perfect for "as-ready" service |
| Food vs Beverage Filter | Focus on what matters β split kitchen and bar displays |
| Audio Notifications | Never miss a new order with configurable sound alerts |
| Server Attribution | See who ordered what, with timestamps for accountability |
| Cancel Pending Items | Remove items before preparation starts |
| WebSocket Updates | Real-time status sync between kitchen and POS via Socket.IO |
| Feature | Description |
|---|---|
| Unified Dashboard | See all active orders, table status, and daily revenue at a glance |
| Staff Management | Create accounts, assign roles, and manage permissions |
| Sales Analytics | Track revenue by day, product, or category |
| Order History | Complete audit trail with payment records |
| System Settings | Configure tax rates, receipt formats, and business details |
Every staff member gets a streamlined interface built for their job:
| Role | What They See | What They Can Do |
|---|---|---|
| Admin | Everything | Full system configuration and all interfaces |
| Manager | Dashboard + Reports | Oversight, refunds, and staff management |
| Server | POS (Dine-in) | Create and manage table orders |
| Counter | POS (All types) | All orders + payment processing |
| Kitchen | Kitchen Display | View orders and update preparation status |
- Docker installed and running
- That's it. Seriously.
# Clone the repository
git clone https://github.com/yourusername/tan-pos.git
cd tan-pos
# Start everything with Docker
docker-compose up -d
# Or if you prefer npm
npm install
npm run devAccess the app: http://localhost:3000
| Role | Username | Password |
|---|---|---|
| Admin | admin |
admin123 |
| Manager | manager1 |
admin123 |
| Server | server1 |
admin123 |
| Counter | counter1 |
admin123 |
| Kitchen | kitchen1 |
admin123 |
This project leverages a modern, production-ready stack:
Frontend
- TanStack Start β Full-stack React framework with file-based routing
- React 19 β Latest concurrent features and server components
- TanStack Query β Smart caching and real-time data synchronization
- TanStack Router β Type-safe routing with automatic code splitting
- Tailwind CSS v4 β Utility-first styling with lightning CSS
- shadcn/ui β Beautiful, accessible component primitives
Backend
- tRPC β End-to-end type safety between client and server
- Socket.IO β Real-time WebSocket communication for instant updates
- Drizzle ORM β Type-safe database queries with zero overhead
- PostgreSQL 15 β Battle-tested relational database
- Zod β Runtime validation with static type inference
Infrastructure
- Docker Compose β One-command development environment (Frontend, PostgreSQL, Socket.IO)
- Vite β Sub-second HMR and optimized production builds
tanstack-pos/
βββ src/
β βββ components/ # Reusable UI components
β βββ routes/ # File-based routing (TanStack Router)
β β βββ dashboard/ # Protected dashboard routes
β βββ integrations/ # tRPC client and server setup
β βββ db/ # Drizzle schema and database utilities
β βββ lib/ # Shared utilities and auth context
β βββ hooks/ # Custom React hooks
βββ database/
β βββ init/ # SQL initialization scripts
βββ docker-compose.yml # Container orchestration
βββ drizzle.config.ts # Database migration config
We welcome contributions! Whether it's:
- π Bug reports β Found something broken? Let us know
- π‘ Feature requests β Have an idea? Open a discussion
- π§ Pull requests β Ready to code? Check out open issues
- π Documentation β Help others get started faster
This project represents countless hours of development, design, and testing. If it's helped you:
- β Star the repo β It helps others discover the project
- π¦ Share it β Tell other restaurant owners and developers
- β Buy me a coffee β Fuel the late-night coding sessions
MIT License β Use it, modify it, ship it. Just give credit where it's due.
Built with β€οΈ for restaurants that refuse to settle for outdated software