WorkRestaurant & retail
POS Suite
A till that keeps working through the dinner rush.
Two point-of-sale products for restaurants and retail: iRestrack and Zettaz Cloud POS. They share the same hard problems, namely ordering, receipts and kitchen tickets, retail inventory and the hardware at the till, and are built on different stacks: PHP and CodeIgniter for iRestrack, Node.js and React for Zettaz Cloud POS.

- Domain
- Restaurant & retail · Payments · Device integration
The products
iRestrack
Point-of-sale for restaurants and retail.
PHP · CodeIgniter · MySQL
Visit irestrack.com (opens in a new tab)Zettaz Cloud POS
Zettaz's cloud point-of-sale for restaurants and retail: a Node.js API and a React single-page app, with a native print agent for the hardware at the till.
Node.js · Express · MySQL · React · TypeScript · Vite · Tailwind CSS · Go print agent
Visit cloud.zettaz.com (opens in a new tab)
What it does
- 01
Multi-cuisine ordering
A modifier and cart system for how real menus work: options, extras and combinations.
- 02
Receipt and kitchen printing
Tickets reach thermal and kitchen printers over ESC/POS through a small print relay and bridge.
- 03
Device enrollment
Hardware-bound enrollment, so only approved devices can use a tenant's POS.
- 04
Per-device tokens
Each device holds its own token (JWT), and every action traces back to a device in the audit log.
- 05
Retail register
Inventory, an active cart and checkout, kept in sync from the cloud.
- 06
Revenue analytics
Daily revenue figures that update from the same sales record.
Mobile apps
iOS · Android
iRestrack POS
The iRestrack point-of-sale in a native app, published on the App Store and Google Play. It wraps the hosted web POS and adds what a browser cannot do: printing straight to thermal printers on the store network over TCP, in-person card payments through Stripe Terminal, and a screen that stays awake during service.
Expo · React Native · TypeScript · WebView · TCP print bridge · Stripe Terminal
App Store (opens in a new tab)Google Play (opens in a new tab)
The problem
POS is where web software is least forgiving. Receipt and kitchen printers speak a hardware protocol, networks drop, devices are shared, and a failed print during a dinner rush is a business problem rather than a bug.
The constraints
- Thermal and kitchen printers use ESC/POS, which a browser cannot talk to directly.
- Devices that can reach a cloud POS must be known and trusted.
- Menus vary widely, especially in multi-cuisine ordering, with modifiers, options and combinations.
How it was built
- 01
Replace the local web stack with a bridge
A fragile dependency on a locally installed stack (MAMP) gave way to a relay plus a lightweight print bridge, so printers work through a small, well-defined component.
- 02
Make devices earn trust
Hardware-bound enrollment, per-device JWTs and audit logging, so every action traces back to a device.
- 03
Carry the bridge into a native app
The iRestrack POS app delivers print jobs straight to thermal printers over the store network, so a tablet at the till does not depend on a browser to reach the printer.
- 04
Design ordering for real menus
A modifier and cart system built for multi-cuisine food ordering rather than a single fixed menu.
- 05
Keep the foundation boring where it counts
iRestrack runs on PHP (CodeIgniter) and MySQL, a deliberately dependable base. Zettaz Cloud POS takes a different route, with a Node.js and Express API on MySQL, a React and TypeScript front end, and a small Go agent for printing.
Printing from the cloud: the reasoning behind the print bridge →
Where it stands
iRestrack and Zettaz Cloud POS both serve restaurants and retail, carrying the same printing, device-trust and ordering approach on their own stacks, with the iRestrack POS app on iOS and Android.