Case study / 05

Onda Browser

Our own client: a browser for Linux

Onda is a web browser for Linux that we design and build on top of Helium: 77 patches, a sidebar interface and every release measured against Helium.

Year
2026
Location
Pombal, Portugal
Services
Product design · Browser engineering · Brand & website
Stack
Chromium 157 · Helium 0.21 · C++ patch series · Python and shell tooling
Services used: Development · Branding · Web Design
Onda window in the dark theme with the sidebar on the left: Essentials tiles, the workspace “Coast trip”, a feed folder, a folder and three open tabs below a dividing line, next to a travel article from a demo page
TANO / 05 / 2026

01 / Challenge

The challenge

Most days we build websites, brand identities and online shops for other companies, and we spend those days inside a browser. None of the browsers we used felt like something we would have shipped ourselves. The ones that looked good were heavy, and the fast ones were plain. For Onda we are our own client. The brief was a browser for Linux that keeps Helium's speed and privacy and puts a vertical sidebar, workspaces and a floating command bar on top, without the interface costing speed.

02 / Approach

The approach

The first decision was to stay a real browser. Onda is a fork of Helium, which imput builds from Chromium and ungoogled-chromium, and its interface changes are C++ patches inside the browser itself. Moving to Electron, to a web interface or to another base is ruled out in the project's rules. Onda's changes sit in their own patch series after Helium's, one thing per patch, and they never modify a Helium patch, so each new Helium release can be followed. Every decision that shapes the browser, from the floating command bar to the layout of the sidebar, is written down as an architecture decision record.

03 / Build

The build

Chromium 157 and Helium 0.21 are pinned to fixed versions. The build script unpacks the source, applies Helium's series, the Linux series and Onda's 77 patches with quilt, then builds with GN and siso. The patches are grouped by area: 24 in core, 52 in the interface and one for Linux. Shell and Python scripts drive the build, the packaging and the tests, and 36 UI test scripts check the interface. A performance claim is only made with numbers from the benchmark script, which runs Onda and the Helium release underneath on the same machine, five runs per release. One decision record removes work that Helium does at start-up and on every tab switch. The project website was designed alongside the browser and makes no external requests.

  • Chromium browser built on Helium 0.21
  • Patch series of 77 patches for core and interface
  • Sidebar, workspaces, command bar, Glance, split view and notes
  • Benchmark runs against the Helium release underneath
  • 27 architecture decision records
  • Packages as AppImage, tarball, .deb and Arch package
  • Brand and project website

04 / Result

The result

77
patches on top of Helium
27
written design decisions
36
UI test scripts
207.6 ms
until the window is visible, vs 213.1 ms for Helium

Onda is not released. What exists is a working browser, version 0.9.5, in private testing on Linux x86-64. Against Helium 0.21.1.1 it shows its window after 207.6 ms instead of 213.1 ms and switches tabs in 2.3 ms instead of 2.6 ms; both differences are within the measurement noise. With 50 tabs open it uses 1760.9 MB against Helium's 1662.5 MB, 5.9 % more, and that number is published like the others. Still missing before a public release: signed builds, automatic updates, and versions for Windows and macOS. There is no sync between devices, because there are no accounts. The source code and patches go public under the GPL-3.0 together with the first download.

05 / Measurements & technology

Measurements & technology

Base
Chromium 157.0.8103.38, ungoogled-chromium and Helium 0.21.1.1 by imput
Languages
C++ in the patches, shell and Python for build and tests, HTML, CSS and JavaScript for the website
Patch series
77 patches in quilt format, one thing per patch: 24 core, 52 interface, 1 Linux; Helium's patches stay untouched
Build system
GN and siso, quilt for the patch series, upstream versions pinned
Tests
36 UI test scripts; 229 Python and 138 C++ tests for the mod system
Benchmarks
Each release against the Helium release it is built on, same machine, n=5 per release, medians
Licence
GPL-3.0
Website
No external requests: no CDN, no remote fonts, no analytics