Studio software

kafić.hr

2026 · serverless PWA and Chrome side-panel POS/order sync tool · hospitality operations software

Kafić.hr is a local-first P2P ordering app that synchronizes waiters, bartenders, and managers in real time.

Kafić.hr je lokalna P2P aplikacija koja u stvarnom vremenu sinkronizira konobare, šankere i voditelje bez servera.

kafić.hr — production still

This project credentials: Product & software development

Notes from the producer

I built kafić.hr the way I build everything: vanilla JavaScript, no framework, no backend to babysit, one small dependency (Trystero) doing the WebRTC work so the devices in a bar talk straight to each other. The point was to solve an actual floor-to-bar problem without saddling a small cafe with a server, an account system, or a monthly bill. It ships as both a PWA and a Chrome side-panel extension at 1.0.0, it works offline on the local network, and it is bilingual because that is the reality of who would use it.

I want to be straight about where it stands. What exists is a finished, documented product with a real privacy policy dated 4 February 2026 and public source on GitHub, all under Aning Film. What does not yet exist is proof of adoption: no venue counts, no numbers, no revenue. It is a tool that is ready and waiting for operators rather than one I can claim is running everywhere. I would rather say that plainly than dress it up.

- Matija Radeljak

The story

Every bar runs on the same small, invisible failure. Taking an order is trivial; getting it from the floor to the person making the drink, reliably, on a busy night, is not. Kafić.hr is Aning Film's answer to that gap, and it is built as a working tool rather than a pitch: a real-time order system that keeps waiters, bartenders, and managers pointed at the same live state while service is happening.

The interesting decision is what it refuses. There is no central database and no backend to maintain, no accounts to create, no subscription to renew. One device hosts a session and generates a six-character code; the others join by typing the code or scanning a QR. From there the devices talk to each other directly over a WebRTC mesh through the Trystero library, so an order tapped on a waiter's tablet lands on the bartender's screen without ever passing through a server. It is written in plain vanilla JavaScript with no framework, state kept in localStorage and menu images in IndexedDB, and a service worker that keeps the app working on the local network even when the internet drops. This is scarcity treated as a design principle: strip out the infrastructure that a small cafe cannot afford to run or trust, and what remains is faster and cheaper to keep alive.

The product ships in two forms from the same code: an installable PWA and a Chrome side-panel extension packaged at version 1.0.0 on Manifest V3, with dedicated interfaces for the three roles and full Croatian and English localization out of the box. The commercial and legal frame is deliberate rather than incidental. A privacy policy with an effective date of 4 February 2026, published under Aning Film d.o.o., states the local-first position plainly: orders, menu data, and settings stay on the operator's own devices, moved only peer to peer. The source is public on GitHub and the app is served from the live kafić.hr endpoint.

What the record proves at this point is a finished, documented, self-hostable product with a coherent privacy posture, not a market. There are no adoption numbers, transaction volumes, or revenue lines in the archive, and the honest read is that this is a shipped tool waiting on operators rather than a scaled deployment. As a portfolio entry its value is specific: it is evidence of product development and tool-building done end to end in-house, from the operational problem to the deployed, bilingual, offline-capable software that addresses it.

Milestones

  • 2026 — Chrome side-panel extension and PWA packaged at version 1.0.0 (Manifest V3, bilingual EN/HR)
  • 2026-02-04 — Privacy policy published under Aning Film d.o.o., stating local-first data handling and WebRTC peer transfer

Outcomes

  • Finished product shipped — Real-time P2P order system delivered as both an installable PWA and a Chrome side-panel extension (v1.0.0, Manifest V3), with waiter, bartender, and manager roles.
  • Serverless architecture — No backend or database; devices sync directly over a WebRTC mesh via Trystero, with local storage in localStorage/IndexedDB and offline-first service-worker support.
  • Public endpoints — Live app served at kafić.hr and full source published on GitHub (github.com/matijarma/kafic.hr).

Credits

  • Matija Radeljak — Developer / Producer
  • Aning Film d.o.o. — Publisher / Rights holder

Related work: Cjenik.app · Radi.li?

Aning Film