Build Embedded Debian Web Runtime with the Power of Isar
When most people think about building something for embedded devices, Yocto is the first tool that comes to mind. It is not the only option, though. There is another approach worth considering, one that combines the stability of Debian with the flexibility of BitBake.
In this post I walk through how I used Isar (Integration System for Automated Root filesystem generation), Debian Bookworm, and WPEWebKit to create an experimental embedded web runtime running on a Raspberry Pi 5 and an Intel NUC, and why the approach might be worth trying in your own projects.

Why Isar?
The build process in Isar will feel familiar if you have worked with Yocto. Each component is defined in a BitBake recipe, and you can express dependencies between components in the same way.
The main difference is that Isar is built around Debian tooling and packaging. By default it assembles the system from pre-built binary .deb packages fetched directly from the upstream Debian repositories, which gives you stable, well-tested components out of the box. When you need more control, Isar can also build individual components from source, customize their configuration, and integrate your own packages alongside the Debian ones.
I have been using Isar for some time on a client project, building and maintaining Debian platforms for a fleet of industrial PCs. That experience made me think it would also be a good fit for an embedded web runtime, so I decided to try it and write up the process in case others find it useful.

The Demo Setup
For this demo I used:
- Debian Bookworm as the base platform
- A slightly customized Weston IVI-shell
- WPEWebKit, built from source (version 2.48.3)
- Hardware: a Raspberry Pi 5 and an old Intel NUC that had been sitting in its box for years
For configuration I used kas, a tool that simplifies the setup of BitBake-based projects, together with kas-container to run the build inside a container. This avoids installing Isar and its dependencies on the host.
One thing worth setting expectations on: although Isar assembles most of the system from binary .deb packages, WPEWebKit is built from source in this setup. Compiling a full web engine is a substantial job, so the overall build still takes a fair amount of time. The benefit of using binary packages for the rest of the system is that only WPEWebKit carries that cost, rather than the entire image.
Implementation
I started by creating a configuration structure for the project, along with BSP layer recipes for the Raspberry Pi 5 and the Intel NUC.
I then implemented a few Weston modules to give the system UI a more polished look than the default Weston setup.
Next I wrote the recipes to build the Weston modules and WPEWebKit. I wanted Weston to run as a dedicated webruntime user, which required some additional configuration and PolicyKit rules.
Getting WPEWebKit up and running took several iterations, a few quirks, and some patching along the way, but it eventually came together.
Results
The result is a configuration screen where you can select the build configuration you want:

Once you start the build, you see the familiar BitBake process running in the terminal:

And finally, after flashing the image to the Raspberry Pi 5:
Note: This is a technology demo rather than a production-ready web runtime. Each application launches its own WPEWebKit instance, and there is no runtime manager to coordinate them.
If you would like to try it, the project’s README includes setup instructions.
The project is available on GitHub as webruntime-debian.