Noureddine RAMDI / WebSpace: a Flutter app with deep privacy and a Rust adblock engine

Created Sat, 23 May 2026 20:41:14 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

theoden8/webspace_app

WebSpace is a Flutter mobile and desktop app that aims to provide a native container for your favorite websites and web apps, but with a serious focus on privacy. What caught my eye is its deep privacy stack combined with a Rust-powered adblock engine integrated through FFI, all wrapped in a Flutter/Dart codebase targeting iOS, Android, macOS, and Linux. This polyglot architecture and privacy-first approach make it worth a careful look.

What WebSpace does and how it’s built

At its core, WebSpace is a Flutter app that lets you organize and use websites inside named “webspaces.” Think of each webspace as a container for a set of sites, with cookie isolation on a per-site basis. This means cookies, local storage, and other web data don’t bleed between sites, which is an important privacy feature missing from many browser wrappers or webviews.

The app manages per-site language preferences supporting 30+ languages, which is useful for users working with multilingual sites.

Under the hood, the app is written in Dart using Flutter, which gives it cross-platform UI consistency. The privacy stack is where it gets interesting:

  • It uses ClearURLs-based tracking parameter stripping to remove common tracking query parameters from URLs before loading.
  • DNS-level blocking is implemented using Hagezi blocklists with five severity levels, allowing users to tune the aggressiveness of domain blocking.
  • EasyList-based ad and tracker filtering is applied to block known trackers and ads.
  • A LocalCDN feature caches common CDN resources locally, preventing third-party callbacks and reducing tracking surface.

Perhaps the most technically distinctive feature is the optional Rust-powered adblock engine. This is implemented via Brave’s adblock-rust crate, integrated through Dart’s Foreign Function Interface (FFI). The Rust library is compiled and wired into the Flutter build system, involving Gradle (Android), CMake, and Xcode build phases (iOS/macOS). When the native Rust library isn’t bundled or available, the app falls back gracefully to a pure-Dart adblock parser, ensuring functionality without native dependencies.

Proxy support with authentication, customizable per-site user scripts (for injecting custom JS), and home screen shortcuts round out the feature set.

Technical strengths and tradeoffs in WebSpace

The standout technical strength is the Rust-Dart FFI integration for adblocking. This is a non-trivial engineering feat in Flutter apps, which usually only rely on Dart or platform-native code. It requires coordinating Cargo builds of Rust libraries and embedding them properly into Android and iOS/macOS build systems — a complex workflow that the WebSpace repo handles by wiring the native Rust crate into Gradle, CMake, and Xcode phases.

This native integration delivers the performance and accuracy benefits of Brave’s adblock-rust engine, which is battle-tested and maintained by Brave. When the native library isn’t available, the fallback to Dart-based parsing ensures the app remains functional, though with some performance and detection tradeoffs.

The privacy features go beyond typical mobile web containers by combining URL parameter stripping, DNS-level blocking, and local CDN caching. This layered approach reduces tracking and fingerprinting surface substantially. Implementing cookie isolation per site within a Flutter WebView environment is also a meaningful privacy improvement, as most WebView wrappers share cookie stores across sites.

The tradeoff is complexity: maintaining a multi-language build system involving Dart, Rust, and native platform builds increases the project’s complexity and the developer experience overhead. It also means the app’s footprint and build times are larger than typical Flutter apps. The fallback mechanism is a good practical solution but may result in inconsistent adblock behavior depending on platform and build configuration.

Another limitation is the reliance on Flutter’s WebView capabilities, which inherently have some limitations compared to full browsers. Custom JS injection per site offers flexibility but requires users to be comfortable with JavaScript.

Overall, the repo’s code quality is solid given the complexity, and the build orchestration is surprisingly clean considering the involved toolchains.

Quick start

Prerequisites

  • FVM (Flutter Version Manager)
  • Xcode (for iOS/macOS)
  • Android SDK (for Android)

Setup

git clone https://github.com/theoden8/webspace_app
cd webspace_app

# Install Flutter version via FVM
fvm install

The README does not provide further build or run commands, but with Flutter and FVM installed, standard Flutter commands (flutter run, flutter build) can be used within the FVM environment.

verdict

WebSpace is a thoughtfully engineered app for users and developers who want a privacy-first wrapper around web apps with robust tracking mitigation. The Rust adblock integration via FFI is a rare architectural feature in Flutter apps and is worth studying if you work with multi-language mobile builds or need performant adblocking.

Its layered privacy protections and per-site isolation solve real problems missing from many mobile web containers. However, the complexity of the build system and the fallback mechanism’s caveats mean it’s better suited for technically inclined users or developers comfortable managing native builds.

If you need a polished, privacy-conscious web wrapper with advanced adblocking that extends beyond typical WebView apps, WebSpace is a solid option to explore. It also serves as a practical example of combining Flutter, Dart, and Rust in a single mobile app with a clean fallback strategy.

For those focused on simpler setups or pure Dart/Flutter implementations without native dependencies, the fallback adblock parser provides basic functionality, but with less coverage.

In short, WebSpace is a pragmatic, privacy-aware Flutter app with a clever polyglot build system that deserves attention from anyone interested in mobile privacy tooling or Rust-Flutter interop.


→ GitHub Repo: theoden8/webspace_app ⭐ 138 · Dart