Back to the portfolio
Case study · Tylliq POS

A till that keeps selling
when the internet doesn't.

Tylliq is our own point-of-sale app for small shops in Zimbabwe. This page shows how we took it from a one-line brief to a signed Android release: the decisions we made, a prototype you can tap through, and how we keep it updated.

Who it's for
Independent shops, one install per shop
Runs on
Android phones & tablets; Windows in progress
Built with
Flutter, on-device SQLite
Status
In active development, started Sept 2026

01 — The problem

Cloud tills assume things small shops don't have.

Most point-of-sale systems keep the shop's data on a server somewhere. That means a monthly subscription, and a till that stalls when the data bundle runs out or the network drops, which in many shops is every day.

The owners we had in mind already have Android phones, sometimes a cheap Bluetooth receipt printer, and often more than one person selling at once. They needed:

  • Selling, stock and receipts that work with no internet at all
  • No monthly cloud bill, and shop data that stays in the shop
  • Two or three phones that agree on stock without a server in the middle
  • A way for us to license and update the app without a support visit

02 — How we built it

The same six steps we use for every client.

Tylliq is our own product, so we were the client too. Here's what each step looked like on this project.

  1. 1

    Brief

    We wrote down who it's for and what it must never need: no account, no cloud database, no internet for daily selling. Everything else was measured against that.

  2. 2

    Design decisions

    Before any screens, we decided how the data works: each phone keeps its own database, stock is a list of movements, and phones sync with each other over Wi-Fi. These choices are explained below.

  3. 3

    Clickable prototype

    We mapped the screens a cashier actually touches (sell, stock, history, sync, settings) as a clickable prototype, so the flow could be checked before it was built. Try it below.

  4. 4

    Build in small pieces

    Each feature shipped on its own: checkout with barcode scanning, Bluetooth receipts on 58 mm and 80 mm paper, restocking and low-stock lists, cash and change, a profit summary, CSV export and encrypted backups.

  5. 5

    Test and harden

    Automated tests cover the database, the backup file format and the update check. We added crash reporting, and closed a loophole where winding the phone's clock back could stretch a licence.

  6. 6

    Ship and support

    A release workflow builds a signed Android app and publishes it. The app checks for new versions itself, and shop owners get a plain-English licence handbook.

03 — Try it

Tap through the prototype.

This is the clickable prototype, running live on the page. It uses sample products and prices, and it may be a step behind the real app.

  • Add a few products to the cart and check out
  • Open Stock to restock an item or see what's running low
  • Look at Sync to see how a second phone pairs by QR code

04 — Key decisions

Four choices that make it work offline.

In plain English, without the jargon.

Every phone keeps its own records

Products, stock and sales are saved in a small database on the phone itself. There's no server to pay for or to go down, and the shop's figures never leave the shop.

Stock is a list of movements

Instead of storing "12 left", Tylliq records every change: +24 restocked, −1 sold, −2 sold. Current stock is the total. Two phones can sell the same item at once and nothing gets overwritten when they sync.

Phones sync to each other, not to the cloud

One phone starts hosting and shows a QR code; the other scans it and they swap changes over the shop's Wi-Fi or a phone hotspot. Shop name, logo and receipt footer travel the same way.

Only the licence needs the internet

Activation happens online once, with a signed licence the phone can check by itself. After that a till can run up to 7 days offline before it needs to check in again.

Smaller touches came from the same thinking. Every receipt carries a barcode, so staff can scan it later and confirm it's a real sale from this shop. Backups are encrypted files the owner can keep, because a single-phone shop has no other copy if that phone is lost.

05 — Tech stack

What it's made of.

App

Flutter (one codebase for Android and Windows), Provider for state

Data

SQLite on the device through Drift, with event-sourced stock

Sync

A small HTTP server on the hosting phone (Shelf), QR pairing

Hardware

Camera barcode scanning, ESC/POS Bluetooth thermal printers

Licensing

Ed25519-signed licences issued by our own licensing control centre

Release

Signed builds from a release workflow, in-app updates, Sentry crash reports

06 — What's next

Still being built.

Tylliq is in active development. These are on the roadmap but not built yet:

  • Staff accounts with their own permissions
  • End-of-day till reconciliation
  • Finishing the Windows desktop version, so a laptop can be the main till

Running Tylliq already? The licence handbook covers setup, plans and troubleshooting.

Your project

Want something like this for your business?

We follow the same steps for every client, and you see a clickable prototype before you pay for the build.

Book a free consultation → See more of our work