XISLABS

Case study · Venues and hospitality · Point of sale

Karaoke Battle App: a karaoke venue in Cambodia, run on four apps we built

We built the software that runs a karaoke venue: a kiosk app in every room, a till for the staff, a web back office for the owner and the backend that connects them. Guests pick songs, order drinks, sing and challenge other rooms, and the room PC scores every note. It has been live since 2 October 2026.

RoomsBusiness day openRoom 1Time left0:45Due$38.50Room 2Time left1:10Due$22.00Room 3FreeRoom 4Time left1:20Due$61.75Room 5Time left0:15Due$17.25Room 6Free
Illustration
Product
Karaoke Battle App
Client
A karaoke venue operator
Market
Cambodia, launched October 2026
What we built
Room kiosk, staff point of sale, back office and backend
Our role
Engineering, infrastructure, launch and support
Runs on
Windows PCs, the web and one Linux server
Status
Live in production since 2 October 2026
  • 4apps that work as one system
  • 3,000+commits since April 2025
  • 280+API routes, plus live events between rooms and the till
  • About 60frames a second for the live singing score

The problem

A karaoke night involves a lot of people at once. Guests in a room want to find a song fast, order food without calling anyone, add time and compete. Staff at the counter need to see every room: who is in it, how long they have left, what they ordered and what they owe. Owners need prices, menus, staff roles and sales reports for each store.

An earlier version controlled a hardware karaoke machine in each room. For the launch in Cambodia, the software had to do the karaoke itself.

What we built

The kiosk in every room.

A full-screen app on the room PC. Guests find a song, sing alone or start a battle, order food, drinks and extra time, call staff, chat with other rooms and view the bill.

Room 41:20 leftFind a songOrderCall staffBill · Chat with other rooms · Battle
Illustration

The till at the counter.

A room map shows each room's time left, orders and amount due. Staff open and close the business day, start a room at a chosen rate, add orders and discounts, take full, partial and split payments, and print receipts.

RoomsBusiness day openRoom 1Time left0:45Due$38.50Room 2Time left1:10Due$22.00Room 3FreeRoom 4Time left1:20Due$61.75Room 5Time left0:15Due$17.25Room 6Free
Illustration

The owner's back office.

A web app for stores, tills, rooms, products, prices and banners, with roles that decide what each staff member can see and change. Sales reports run by store, product, category, employee, payment method and date.

The backend.

The only part that touches the database. It keeps every room session, order and payment, and pushes live events to rooms and tills, so an order placed in a room shows on the till and on the bill straight away.

The parts guests notice

  • Live scoring. The room PC listens to the singer and draws a score ribbon at about 60 frames a second. It stays smooth while a video call runs beside it.
  • Room against room. In a one-against-one battle, both rooms sing the same song with live video between them. The losing room pays for the prize, and it lands on that room's bill.
  • Built for Khmer. Song titles, search and lyrics are in Khmer, with an on-screen Khmer keyboard. Search treats two look-alike letters as the same, so a song is found however it was typed.
  • Songs start at once. Each room PC keeps its own copy of every ready song, so a song plays through a weak internet connection.

Running it

  • Deploys check themselves. A push builds the system, deploys it, waits for a health check and rolls back if the check fails. The database is backed up daily.
  • Apps update themselves. Each room and till app checks for a new version every two minutes and installs it on the next restart.
  • Three problems fixed in the first two weeks. New versions were not reaching the rooms, songs took too long to arrive, and the score showed bars where nobody was singing. Each fix shipped as a new app version and was checked on the live system.

Results

BeforeNow
A hardware karaoke machine in every roomScoring, lyrics and battles run by software on the room PC
Staff walking to rooms to take ordersOrders placed in the room, shown on the till and the bill at once
A technician needed to change anythingThe venue changes menus, prices and prizes from the back office
Apps installed by hand on each PCApps that update themselves in every room
Under the hood: stack

Room app and till: Electron and React, with receipt printing.

Back office: Next.js.

Backend: NestJS, MongoDB and Redis, with live events over sockets and timers for battle starts and session expiry.

Operations: Docker, automatic HTTPS and automated deploys.

Running a venue on a till, a notebook and a walkie-talkie?

Tell us how a night runs today on a 30-minute call. You leave with a plan and a cost, in writing.

Book a discovery call