WPE WebKit + Cog: a kiosk UI stack

Embedded software lives in a world of hard constraints:

  • Boot fast
  • Run for months
  • Recover from faults
  • Keep the UI responsive even when the device is busy doing real work.

For a lot of products that have embedded elements the UI is mostly a dashboard plus a few critical workflows. Things like:

  • Status
  • Configuration
  • Alarms
  • Device control

This is where WPE WebKit + Cog comes in, It lets you build a UI with web based technologies, but deploy it like an application.

What is WPE WebKit and Cog?

WPE WebKit is an open-source WebKit port designed for Linux-based embedded devices, built with flexibility and hardware acceleration in mind.

Cog is the “launcher”. It’s a small, kiosk-friendly shell that you can run on the device that embeds the WPE WebKit engine.


Why this stack fits an embedded UI

Modern UI without turning your device into a desktop PC

Most embedded systems need a clean layout, an often need touch-friendly widgets, charts or even video. Web tech is excellent at solving this UI challenge.

A kiosk model that matches workflows

Embedded software usually wants one UI that always comes back after a reboot and doesn’t “wander off” into tabs, menus, or the address bar. Cog is built around that kiosk-style “single app” approach.

A clean split between “control” and “UI”

This is a pattern that scales well for modern systems splitting the logic into 2 or more parts:

  • Backend control service (Go/Rust/C++): talks to hardware, buses, sensors.
  • UI (web app in WPE/Cog): shows state, guides workflows, sends commands through a local API.

This keeps privileged hardware logic out of the browser process and makes your UI restartable or tolerant to crashes without destabilizing the device.


Practical benefits for control software teams

Faster iteration without risking control stability

You can update UI logic (workflows, validation, display rules) more frequently than the underlying control software. The control service can stay conservative and heavily tested while the UI evolves at a faster rate.

Better observability and support tooling

Web UIs make it easy to add:

  • A hidden diagnostics screen (“versions, uptime, network, last error, service health”)
  • Remote support pages that display logs/telemetry snapshots
  • Feature flags to enable or disable specific features



Categories: Developer Chat, Embedded

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Leave a comment