
Full-stack platform
WiseGuy.Pizza
Merritt Island, FL · Live since 2025
Quality
Case study
The challenge
A working-class New York-style pizzeria in Florida that takes orders live at the bar wanted a digital surface that matched their operation — not an off-the-shelf cart bolted to a marketing page. The real ask was printer-to-kitchen reliability: get an order from a customer's phone into the kitchen's thermal printer, within 30 seconds of pay, without dropping a ticket during a Friday-night rush.
The approach
A ground-up Next.js 15 stack with four dedicated services: the app (React Server Components for a cold-cached menu), PostgreSQL for orders, Redis for session cache and WebSocket fan-out, and a standalone WebSocket service so the app tier stays stateless. An MCP Print Relay agent paired to the kitchen's network pulls signed jobs from the portal queue and fires Epson ePOS tickets; if the printer goes offline, jobs queue in Redis and retry on reconnect. Everything runs on private infrastructure we own and operate — one operator, one uptime commitment.
Infrastructure
4 dedicated services on private infrastructure.
App
Next.js server
WebSocket
Real-time order stream
Database
PostgreSQL
Cache
Redis
The evidence
Live screenshots, not mockups.

Stack proof
Every claim is verifiable.
- Next.js 15Verified
React Server Components for the menu catalogue. Turbopack bundling — confirmed via /_next/static/chunks/turbopack-*.js in the rendered HTML. Canonical redirect from / to /menu: the menu IS the homepage.
- PostgreSQL
Orders, cart state, menu versions. Runs as a dedicated database service, isolated from the application tier.
- Redis
Session cache and real-time order fan-out, isolated from the application tier.
- WebSocket
Live order-state stream to customer browsers and to the kitchen line screen. Runs as a dedicated service so the app tier stays stateless.
- MoonFactory-hosted
Four dedicated services on private infrastructure we own and operate. We own the uptime commitment.
- Next.js 15
- PostgreSQL
- Redis
- WebSocket

