Skip to content

Kitchen Display (KDS) App

Overview

The Kitchen Display (KDS) app is the tablet your kitchen and floor staff use to receive orders, prepare them, and bump them off the screen — replacing printed kitchen chits. Orders flow in live from your POS, kiosk, and online ordering as they happen.

The same app serves two roles, decided by the account you log in with:

RoleWho uses itWhat they do
kdsKitchen / station staffSee incoming orders, mark items as they're cooked, mark the whole order done.
waiterRunners / serversSee orders the kitchen is finishing, mark items served, run them to the table.

This is the device side

This page covers operating the KDS tablet. The display accounts, station filters, and eSignage options are created in the admin console — see Kitchen Display (CommerceOS).

The app is built for Quick Service and Full Service outlets. It isn't used on Retail outlets, which have no kitchen flow.

Signing in

Each KDS tablet logs in with its own username and password — the credentials are the pairing. There's no QR or pairing code to enter.

  1. On the Welcome / Rewardly KDS screen, type the Username and Password. The eye icon on the password field toggles visibility.
  2. Tap Login.

Only accounts whose type is kds or waiter can sign in. Any other account type is rejected with an Invalid User toast and stays on the login screen. On success you see a Login Success toast and land on the order board.

One login per station

A KDS account can be scoped to certain product categories or tags, so each kitchen station gets its own login — a Drinks screen and a Hot Kitchen screen, for example. Set this up in Kitchen Display (CommerceOS).

Staying signed in

The tablet stays signed in across restarts. The app saves the login token on the device and silently re-validates it on every startup, so a reboot mid-service doesn't force a fresh login. The only way to sign out is the LOG OUT button on the History screen (see History & recall).

Installer-only: environment & updates

Installer setting — leave it alone

Long-pressing the Rewardly logo on the login screen opens a hidden configuration modal. This is for whoever first sets up the tablet — your staff should never need it.

The hidden modal switches which backend the tablet talks to and which update channel it follows:

OptionWhat it does
ProductionPoints the tablet at the live Rewardly servers. This is the default on a fresh install.
DevelopmentPoints the tablet at the staging servers — for Rewardly's own testing only.
codepush(production) / codepush(development)Immediately pulls the app's latest over-the-air bundle from the chosen channel and remembers that channel.

Switch the environment before logging in. Changing it doesn't sign anyone out, but mixing environments mid-shift will confuse the board.

Automatic updates

The app updates itself over the air. On every cold start and every time it returns to the foreground, it checks for a new version. While downloading or installing, the whole screen is replaced by a splash reading Downloading latest version.. or Installing.., then an Update installed successfully toast.

The app may restart itself mid-service

In production builds updates install immediately — the tablet can restart on its own when a new version ships. It comes back to the board within seconds; nothing is lost, but don't be alarmed by it.

KDS vs waiter: the two roles

The account type decides the theme, which orders appear, and how taps behave.

kds (kitchen)waiter (runner)
ThemeGrayTan
Orders shownEverything not completed, cancelled, or servedEverything not cancelled or served — including orders the kitchen has finished
Action buttonsINFORM · CALL # · DONE · MISSEDINFORM · CALL # · SERVED · MISSED
Tapping an itempreparingdone (tap again to revert to preparing)doneserved (tap again reverts to its previous status)

So the kitchen prepares and bumps items to done; the waiter then picks up those done items and marks them served as they run them out.

Waiter order locking

A waiter normally can't open or serve an order until the kitchen has marked at least one of its items done (or the order is already completed or served). Locked orders are dimmed and can't be tapped.

Override: serve preparing orders

A waiter account can carry the access all orders and serve preparing permission (set admin-side). With it, the waiter can open any order regardless of kitchen progress and mark items served straight from preparing, skipping the kitchen's done step. Without it, tapping a still-preparing item does nothing for a waiter.

Station filtering

If a KDS account has categories and/or tags assigned (admin-side), the station only treats matching items as its work:

  • Matching items sort to the top of every ticket.
  • Non-matching items render dimmed (20% opacity) and can't be bumped — or are hidden entirely when Auto Close Order Tab is on (see Display settings).
  • Orders containing no matching items are hidden from the board (when Auto Close is on).

Matching applies to top-level items and to sub-products inside bundles. An account with no categories or tags sees and can bump everything.

This is how a multi-station kitchen is wired — one login per station, each scoped by category or tag.

The ticket board

There are two ways to lay out the board, chosen in Display settings. The board auto-selects the newest applicable order when nothing is selected, and an empty board reads Empty.

Single mode

The default layout. The left third is one expanded ticket — full order detail with the four big action buttons in a 2×2 grid beneath it. The right two-thirds is a grid of small order tiles; tap a tile to swap which ticket is expanded. Above the tiles sit a gear (settings) button and a HISTORY button.

The selected tile is black with white text. Tiles a waiter can't act on yet are dimmed and disabled.

All-expanded mode

Every ticket shows fully expanded in a grid (1–2 rows × 4–6 columns per page). A right sidebar holds page controls — FIRST / NEXT / PREVIOUS / LAST (dimmed at the ends) — plus the HISTORY button, the four action buttons, and the gear.

Tap a card's header to select it. The order number and dining-mode label render at 1.8× size for reading across the kitchen, and each card's item list scrolls on its own.

Batch cooking: tap a total

In all-expanded mode, long-press any product name to highlight every occurrence of that product across all cards and show a running total quantity in the sidebar — "how many laksa total?". Tap the X to clear it. (Long-press does nothing in single mode.)

Splitting big orders

When Max items per card is set (5/8/10/15/20; off by default), an order with more items than the limit is split into multiple virtual cards, numbered .0, .1, and so on after the order number (e.g. 1042.1). With Auto Close on, a split card disappears on its own once all its visible items are done.

What a tile shows

Each order tile carries its identifier and a set of overlay badges:

ElementMeaning
IdentifierOrder number — or the Grab ID for Grab orders, or the table number for FSR outlets — with the pager or batch number underneath when present.
Dine-in / delivery iconA circled fork-and-knife for dine-in, a circled scooter for delivery.
Missed badge (yellow, top-right)The order was marked missed.
Call (n) badge (white, top-right)The order has been called, with the call count.
Informed badge (bottom-right)The customer has been notified.
Red borderThe order has been processing for over 7 minutes — a chase prompt, recalculated every minute.

What a ticket shows

The expanded ticket header shows the order number (or Grab ID), the status in small italics, the customer name if any, the dining-mode label (TAKEOUT / DINEIN / DELIVERY / GRAB), Table: N or Pager: N when present, the order time, and a live elapsed-minutes counter that refreshes every minute.

Item lines show product name and quantity, with modifier values listed in gray beneath. Bundle items list their sub-products indented, each independently bumpable. Item remarks appear as Remarks: … under the line. Item status is colour-coded:

Item stateAppearance
preparingBlack
doneGreen
servedStrikethrough
Voided (quantity 0)Red strikethrough, marked ×0, not tappable

Item names show in English

Product and modifier names render from the English (en_US) name only, regardless of the tablet's language.

Display settings

Tap the gear to open the settings popup. Every change applies instantly, jumps back to page 1, and is saved on the device, so it survives restarts. These settings are per-device, not per-account.

SettingWhat it doesDefault
Display modeSingle or All expanded.Single
RowsCard rows per page — all-expanded only.
ColumnsCard columns per page (4 / 5 / 6) — all-expanded only.
Font sizeSMALL / MEDIUM / LARGE, scaling all ticket text — all-expanded only.
Max items per cardOff / 5 / 8 / 10 / 15 / 20 — splits big orders — all-expanded only.Off
Auto Close Order TabHide finished work automatically (see below).On

Auto Close Order Tab

On a kds station, when Auto Close is on (the default): items that don't belong to this station are hidden from tickets entirely, fully-done sub-products inside bundles are hidden, and any order (or split card) whose visible items are all done drops off the board automatically.

When it's off, foreign items stay visible but dimmed, and finished orders stay on the board until you press DONE.

kds stations only

Auto Close only affects kds accounts. Waiters always see the full list per the waiter filtering rules.

Working a ticket

Bumping items

Tap an item (or a bundled sub-product) to advance its status — preparingdone on a kds station, doneserved on a waiter. Tapping again reverts it. Every change syncs live to every other connected screen.

Order action buttons

With an order selected, the four buttons act on the whole order:

ButtonWhat it does
INFORMSends the customer an SMS or email that their order is ready. Shows an Order informed toast, adds the Informed badge, and then stays disabled.
CALL #Sets the order to call — putting its number on the customer eSignage board with an audio call-out — and bumps the visible call counter.
DONE (kds)Marks the whole order completed, removes it from the board, and selects the previous order.
SERVED (waiter)Marks the whole order served, removes it, and selects the previous order.
MISSEDSets the order to missed — a yellow badge here, and moves the number to the MISSED column on the eSignage.

Buttons are disabled while a request is in flight or when no order is selected.

DONE and SERVED ignore item bumps

DONE and SERVED complete the entire order regardless of whether each item was individually bumped. Bump items as you cook for an accurate board, but the order button is what clears it.

History & recall

Tap HISTORY to open the blue history screen — finished orders listed as tiles, with the selected one expanded on the left and a large RECALL button beneath it. A kds station sees completed and served orders; a waiter sees served only. The top bar holds LOG OUT (left), the app version (centre), and BACK (right). Empty reads Empty.

RECALL returns the selected order to the active board — a kds recall sets it back to processing; a waiter recall sets a served order back to completed so it reappears in the waiter queue. Use it when you bump an order too early.

LOG OUT clears the saved login, disconnects, and returns to the login screen. This is the app's only sign-out point.

Sounds & alerts

A chime plays at full volume whenever a new order arrives — it sounds even when the tablet is on silent. A kds station chimes (with a New order - #<number> toast) when a new processing order lands; a waiter chimes when an order becomes ready to run.

No volume control in the app

There's nothing to set up for sounds, and no in-app volume — the chime is fixed at full volume. Use the tablet's own hardware volume.

Other toasts appear at the top of the screen for two seconds: green for success, plus info and error toasts. A failed action shows the server's error message, or Something went wrong if there's none.

Real-time sync & going offline

The board updates live over a socket connection to Rewardly. New orders prepend to the board, status changes land in place, and on every reconnect the app re-pulls the full order list and the latest station configuration — so category changes made admin-side take effect without a sign-out.

A status strip sits above the whole app:

StripMeaning
InvisibleEverything's healthy.
Red — "You are offline. Check your connection."No network at all.
Gray — "Socket disconnected. Tap to reconnect."Network's up but the live link is down. Tap it to reconnect; it reads "Socket connecting..." while it tries.

Offline means stale

While the live link is down the board stops updating and shows old data — there's no local queue. Bump and action attempts simply fail with an error toast until the connection returns. Get the tablet back online before relying on the board.

Full-service (FSR) outlets

On a full-service outlet (the account's operation type is fsr), order tiles lead with the table number as the big identifier instead of the order number, with the batch number (fire batch) underneath. Other outlets show the order number with the pager number beneath when present. Everything else — roles, bumping, the action buttons — works the same.