# Tangram: a GNOME browser for web apps, one persistent sandboxed tab each

> Tangram is a GNOME application that runs web applications as persistent, independent, sandboxed tabs, so you can run the same service under several accounts and keep the window arrangement you left. It is a GTK4 and GJS application with its own Flatpak permissions, a commented out roadmap, and a last release in 2022 that is still the version on Flathub.

**sonnyp/Tangram** — Browser for your pinned tabs

- Repository: https://github.com/sonnyp/Tangram
- Website: https://apps.gnome.org/app/re.sonny.Tangram/
- Stars: 1,006 · Forks: 49
- Language: JavaScript
- License: GPL-3.0
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/sonnyp-tangram

## A browser whose tabs are applications, not pages

Tangram describes itself as a new kind of browser designed to organize and run your Web applications, and the distinction from a browser is in the sentence about tabs. Each tab is persistent and independent, and you can set multiple tabs with different accounts for the same application. The use cases the README lists make the intent clear, staying up to date with your favourite communities, merging all your chat applications into one, grouping your organisation tools under a single application, and having one stop for multiple sources of documentation or information. So the model is closer to a workspace of applications than to a session of browsing, and the persistence is the feature that makes it work, because a tab that comes back with your session and your scroll position is an application you can treat like a native program. The screenshot on the README shows the result, which is a window of tiles rather than a strip of titles.

## The feature list, and what it leaves out

The features are grouped and short, which is a sign of a narrow product. You can set up and manage web applications, and each tab is persistent and independent. Tabs can carry a custom title, can be re-ordered and can have their position changed, and there is navigation, shortcuts, smart notifications and downloads. The last item is the one with a link rather than a name, touchpad and touchscreen gestures, with the README pointing at a GNOME blog post on the subject. The commented out roadmap shows what the author considered next, and it is a good indicator of the current limits. A custom icon and custom applications were in progress, exposing WebKitGTK settings, a search provider, custom CSS and JavaScript for better integration and WebExtensions were all to do. The custom applications idea is still in the tree but disabled behind the `TANGRAM_ENABLE_CUSTOM_APPLICATIONS=true` environment variable, with the README's own warning to use it at your own risk.

## Sandboxing, and the two ways to get it

The security section is short and is the most important part of the README for anyone considering running a third party web service in it. Tabs are independent and sandboxed from each other, and both the Flatpak and the non-Flatpak versions of Tangram provide sandboxing for the web applications. The two mechanisms are different. The Flatpak build gets it through the restricted permissions declared in the project's own manifest, which is the file `re.sonny.Tangram.json` that the README links to, so you can read exactly what the application is allowed to reach. The non-Flatpak build relies on WebKitGTK's own sandboxing, and that path requires WebKitGTK 2.26 or newer. The per-tab isolation matters as much as the outer sandbox, because the point of the application is running several instances of the same service at once, and an account in one tab should not be able to read the session of another.

## Building it, and the two toolchains in the tree

The development section points at the GNOME tools, so you can use Builder or Foundry, and it gives you the commands for the three recurring tasks.

The two commands that matter day to day:

```sh
make test
gsettings set org.gtk.Settings.Debug enable-inspector-keybinding true
GTK_DEBUG=interactive
```

 Testing is `make test`, and the Makefile shows what that actually runs, executing two GJS test modules, one for the web app and one for the utilities, and then the lint step. Inspection uses the GTK inspector, by enabling the inspector keybinding in the GSettings schema and running with `GTK_DEBUG=interactive`. The release procedure is documented as a checklist, bump the version in `meson.build`, tag it, push the tag, and then send a pull request to the Flathub manifest. The build itself is meson with ninja, with a `run-host` target that builds into a local install prefix and launches the binary against the local GSettings schema directory, and separate `flatpak` and `bundle` targets that go through flatpak-builder against the Flathub remote. The JavaScript side carries eslint with the babel parser, prettier with an XML plugin, husky and lint-staged, and the GNOME introspection type definitions for GTK4, libsoup and WebKit2.

## Translations, packaging and a Flathub presence

Tangram is published as a GNOME application, with a listing on apps.gnome.org under the identifier `re.sonny.Tangram`, and it is distributed through Flathub with a badge in the README. That means the ordinary installation route is a Flatpak from Flathub, and the sandbox model described in the security section is the one you get by default rather than an opt-in hardening mode. The project also keeps a `Tangram.doap` file, the desktop entry description format used for distribution metadata, and a `po/` directory with the translation catalogues. Translation is handled on Weblate, and the README invites contributors to head there, with a widget showing the translation status per language. The repository is a mix of GJS, GTK4, meson and flatpak metadata, with an eslint configuration, a prettier configuration, husky hooks, a foundry directory and a `jsconfig.json` for editor type checking rather than a TypeScript build.

## The gap between the last release and the last commit

The release history is where a reader should slow down. The tags are 1.4.0 from November 2021, 1.4.1 from April 2022 and 1.4.2 from 23 April 2022, while the last push to the branch was on 2026-10-02, which is more than four years later. So the source is being touched and the published artefact is not. That is the pattern you would expect from a project whose upstream platform, the GNOME and WebKitGTK stack, moved on around it, and it is worth checking whether the version on Flathub still runs on your distribution. The press coverage listed in the README runs from 2020 to 2024, with a howtogeek piece in September 2024 on Linux apps turning websites into apps and an omglinux review in January 2023, which tells you the idea had attention even as the releases slowed. The credits name the icon designer and Igalia and the contributors to WebKitGTK, and the inspirations are GNOME Web, Rambox and Franz, with Wavebox and Station listed as things to see. The honest summary is that Tangram found a real niche and stopped shipping releases into it.

## Conclusion

Adopt Tangram if you use GNOME on Linux and your working day is a set of web applications you keep open, especially if you need the same service under more than one account or you want the tab layout to survive a restart. Do not adopt it as a general purpose web browser, because the design assumes pinned, persistent tabs rather than browsing, and do not expect current features, since the roadmap in the README is commented out and the last release is from April 2022. Before you rely on the sandboxing, read the security section and check that the WebKitGTK version on your system is at least 2.26 if you are not using the Flatpak build, because the non-Flatpak path depends on WebKitGTK's own sandbox. The licence is GPL-3.0, the last push was on 2026-10-02, and the newest tag is v1.4.2 from 2022-04-23.

## FAQ

### What is Tangram?

It is a GNOME application described as a new kind of browser, designed to organize and run web applications. Each tab is persistent and independent, so you can run the same application with several different accounts, and the window of applications survives a restart.

### How are Tangram tabs sandboxed?

Tabs are independent and sandboxed from each other, and both the Flatpak and the non-Flatpak builds provide sandboxing for the web applications. The Flatpak version uses the restricted permissions in the project's own `re.sonny.Tangram.json` manifest, and the non-Flatpak version relies on WebKitGTK sandboxing, which requires WebKitGTK 2.26 or newer.

### How do I build and test Tangram?

Use GNOME Builder or Foundry, or the Makefile. `make test` runs two GJS test modules, one for the web app and one for the utilities, followed by the lint step, and `make build` configures meson and installs with ninja. To inspect the widget tree, enable the inspector keybinding in the GSettings schema and run with `GTK_DEBUG=interactive`.

### Is Tangram still maintained?

The source is being worked on, with the last push on 2026-10-02, but the newest tag is v1.4.2 from 2022-04-23. The roadmap in the README is commented out, and the custom applications feature is disabled behind an environment variable, so check whether the Flathub build still runs on your distribution before adopting it.

## Sources

- [License: GPL-3.0](https://github.com/sonnyp/Tangram/blob/main/LICENSE)
- [Project website](https://apps.gnome.org/app/re.sonny.Tangram/)
- [README](https://github.com/sonnyp/Tangram/blob/main/README.md)
- [Releases](https://github.com/sonnyp/Tangram/releases)
- [sonnyp/Tangram on GitHub](https://github.com/sonnyp/Tangram)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/sonnyp-tangram
