The Challenge
Restaurant digitalization goes beyond a simple QR code. Owners need menu management, order routing to the kitchen, payment collection, and business analytics—all working together seamlessly. Deminut aimed to be the all-in-one solution for restaurants of any size.
Our Approach
We built Deminut as an ecosystem of interconnected applications:
- API Backend — Node.js/Express with MySQL and 72+ Sequelize migrations for robust data modeling
- Admin Dashboard — Next.js 14 with Redux Toolkit for state management and Axios for API communication
- Customer Menu — PWA that loads menus instantly via QR codes
- Printer Bridge — Desktop app that receives orders and prints tickets on thermal printers
Technical Architecture
Backend (deminut-api)
- Express 5 with ES modules and Passport JWT authentication
- Sequelize ORM with MySQL for complex relational data (menus → sections → items → options)
- AdminJS panel for superadmin operations
- Swagger/OpenAPI documentation for all endpoints
- Pino structured logging for production debugging
Frontend (deminut-spa)
- Next.js 14 with App Router
- Redux Toolkit with async thunks and automatic status/error tracking
- Redux Persist for offline-capable state
- Custom hooks like
useActionStatusfor loading states
Key Features
- Bulk Menu Import/Export — Upload/download entire menus via Excel with Zod validation
- Payment Integration — MercadoPago OAuth flow and dLocal for enterprise payments
- Thermal Printing — Native printer bridge for order tickets
- Email Notifications — Resend integration for order confirmations and marketing
- Multi-Timezone — Stores operate in their local timezone
- Image Optimization — Sharp-based processing for menu item photos
The Results
Deminut powers restaurant operations with:
- 72+ database migrations — Battle-tested, evolving data model
- 2 payment gateways — MercadoPago and dLocal support
- Real-time orders — Instant kitchen notifications
- Printer integration — Native thermal printer support
- Production deployment — Running on Coolify with MySQL