‹ Featured WorkKRING! cashier screen with the product grid, running cart and payment panel
OPEN SOURCEOpen Source

KRING!

Full-Stack Developer

KRING! is a multi-tenant cloud point-of-sale SaaS for Indonesian warung and cafe, built with Next.js, TypeScript and PostgreSQL. Each tenant gets its own isolated warung with owner and cashier roles, a fast single-screen terminal, table and stock management, shift reconciliation with physical cash counts, and 80mm receipts — every checkout running inside an ACID-compliant database transaction so stock never drifts, even under concurrent taps. An owner-only AI layer, KRING! Insight, answers questions about the business and writes daily summaries strictly from deterministic numbers.

Visit Site

Key features

KRING! Insight — AI grounded in your own numbers

An owner-only assistant that answers questions about the warung and drafts a daily sales summary in plain Indonesian, without ever inventing a figure. A keyword router maps each question to one of seven deterministic query tools, runs it server-side with the tenant id injected from the session, and hands the model only the aggregate result to phrase into a sentence. Anomaly thresholds (large discounts, cash variance, off-hours sales, revenue drops, checkouts without a shift) are plain code, not guesses. If the provider is down the answer degrades to a deterministic number template instead of an error, monthly token usage and estimated cost are metered per warung, and WhatsApp alerts are queued from the insight rather than sent by the model.

Multi-tenant SaaS with self-serve sign-up

A single deployment serves many warung. Sign-up provisions a fresh tenant — its own warung, owner account, default settings, ten tables and one opening transaction — with strict per-tenant data isolation enforced on every query, and owner/cashier roles scoped by server-side sessions.

ACID-compliant atomic checkout & stock ledger

Every checkout runs inside an isolated database transaction ($transaction) that validates stock and applies atomic decrements to prevent overselling under concurrent clicks, recording immutable StockMove ledger entries as the audit trail.

Single-screen POS terminal for rapid service

The cashier screen unifies live catalog search, category filters, frequently-bought shortcuts, cart steppers, inline discounts, automatic 10% tax, and a cash numpad with change calculation — switching between Tunai and QRIS without a page change.

Shift reconciliation, tables & 80mm thermal receipts

The shift engine tracks each cashier from opening float to drawer close, auditing surplus or deficit against the physical count. Table management runs dine-in bills per table, and receipts use @media print rules enforcing an 80mm container that outputs clean, marginless ESC/POS slips.

Screens

A walk through the key screens in KRING!, one at a time.

KRING! cashier screen with the product grid, frequently-bought shortcuts and the running order panel

Kasir

The screen a cashier lives in. The product grid sits beside the running order, with frequently-bought shortcuts, category filters, discount, automatic tax, a cash numpad and a Tunai/QRIS switch all reachable without leaving the page.

KRING! tables screen with a grid of ten table cards and an add-table action

Meja

Dine-in floor management. Every table is a card with its own bill state, and new tables are added from the same screen — so a warung can grow its seating without touching settings.

KRING! product management screen with an add-product form and the live product table

Produk

Product management. New items are added beside the live table with an icon picker, and stock is nudged with inline steppers while the total value of stock on hand updates as it changes.

KRING! transaction history with a receipt detail drawer showing items, tax and change

Transaksi

Sales history, newest first, each row opening a full receipt drawer with items, tax, cash tendered and change — the fastest way to reprint a slip or void a sale.

KRING! shift screen with cash drawer reconciliation, expected cash and physical count

Shift

End-of-day reconciliation. Opening float, cash and QRIS totals and the expected drawer figure sit beside the physical count, and the difference is audited before the shift is closed.

KRING! reports dashboard with revenue totals, a seven-day chart, best sellers and low-stock list

Laporan

The reports dashboard: revenue, transaction count and average sale up top, a seven-day revenue chart, best sellers and a low-stock list — all filterable by date and exportable to CSV.

KRING! Insight dashboard with a generate-summary action, monthly AI token usage and a list of insight cards

Insight

The owner’s AI dashboard: a one-tap “ringkasan hari ini” summary, a running list of insights (each linking back to the numbers that produced it), and a per-warung meter of monthly AI token usage and estimated cost.

KRING! Tanya Insight chat answering a question about revenue with a sourced, formatted reply

Tanya Insight

Ask the warung anything in plain Indonesian — revenue, trends, best sellers, low stock, cashier performance, anomalies. Answers stream token-by-token, are assembled only from the numbers the deterministic tools returned, and carry a badge showing which tool sourced them.

Stack

Next.jsTypeScriptTailwind CSSPostgreSQL