// CASE STUDY

Matatu Digital Signage

IoT-driven digital signage system for Kenyan public transit (matatu) fleets, delivering route and ad content over MQTT.

  • Raspberry Pi
  • Python
  • Linux
  • MQTT
  • Mosquitto Broker
  • Node.js
  • TypeScript
  • PostgreSQL

// THE PROBLEM

The problem

Matatu operators wanted dynamic digital screens inside vehicles — showing routes, fares, and advertisements — without a reliable internet connection or technical staff to manage devices.

// APPROACH & KEY DECISIONS

Approach & key decisions

  1. Deployed Raspberry Pi units as edge nodes running a lightweight display client with offline-first content caching.

  2. Built an MQTT broker-based messaging layer for low-bandwidth content pushes and device telemetry reporting.

  3. Designed a fleet management dashboard for operators to schedule content, monitor device health, and push updates OTA.

  4. Implemented heartbeat + reconnect logic to handle intermittent 3G/4G connectivity common in Kenyan urban routes.

// ARCHITECTURE

System architecture

Operator Dashbo…Fleet API (Node…PostgreSQLMQTT BrokerRaspberry Pi No…Display Screen
Operator DashboardFleet API (Node.js)PostgreSQLMQTT BrokerRaspberry Pi NodeDisplay Screen

// STACK

Technology stack

Edge

  • Raspberry Pi
  • Python
  • Linux

Protocol

  • MQTT
  • Mosquitto Broker

Backend

  • Node.js
  • TypeScript
  • PostgreSQL

Dashboard

  • React
  • Tailwind CSS

Infra

  • Docker
  • VPS

// METRICS

Key metrics

  • Devices deployedsample
  • Content update latencysample
  • Uptimesample

// GET IN TOUCH

Have a similar problem?

If your system needs the same kind of thinking — architecture, integrations, scale — I'd like to hear about it.

Open a ticket →
Enter the world