WebSpace is a mobile app that brings all your favorite websites and web apps together in one organized, streamlined interface.
Features
- 📱 Organize sites into multiple webspaces
- 🔒 Per-site cookie isolation with secure storage
- 🌍 Per-site language preferences (30+ languages)
- 💾 Import/export settings for backup
- 🔄 Proxy support with authentication (Android, iOS 17+, macOS 14+, Linux)
- 🧹 Tracking parameter removal via ClearURLs rules (LGPL-3.0)
- 🛡️ DNS-level domain blocking via Hagezi blocklists (GPL-3.0, 5 severity levels)
- 🚫 Ad & tracker filtering via EasyList filter lists (GPL-3.0 / CC BY-SA 3.0), including EasyList, EasyPrivacy, Fanboy's Social Blocking List, and Fanboy's Annoyance List
- 📦 LocalCDN - cache CDN resources locally to prevent tracking (Android)
- 📌 Home screen shortcuts for quick site access (Android)
- 📜 Per-site user scripts (custom JavaScript injection)
- 🎨 Light/dark mode with accent colors
- FVM (Flutter Version Manager)
- Xcode (for iOS/macOS)
- Android SDK (for Android)
git clone https://github.com/theoden8/webspace_app
cd webspace_app
# Install Flutter version via FVM
fvm install
# Get dependencies
fvm flutter pub getThe content blocker can be backed by Brave's adblock-rust engine via rust/webspace_adblock. Off by default; opt in from App Settings → Content Blocker → "Use Rust adblock engine". Adds support for $domain=, regex network rules, generic class/id cosmetic lookups, and every other rule shape adblock-rust accepts.
The Rust crate auto-builds as part of the platform build:
- Android — Gradle
buildRustAdblocktask runs beforemergeJniLibFolders. Requirescargoon PATH andANDROID_NDK_HOME(or NDK installed under the SDK). Skip with-PskipRustAdblock=true. - Linux — CMake
webspace_adblock_sotarget runs before linking the runner. - iOS / macOS — Xcode "Build adblock-rust" Run Script Phase added by the Pods post_install hook.
# Just build the app — the .so is built and bundled automatically.
fvm flutter build apk --flavor fdroid --release
fvm flutter build linux --release
fvm flutter build ipa --release
fvm flutter build macos --release
# Or invoke the script directly when you want to rebuild without the
# full Flutter build (e.g. iterating on rust/webspace_adblock/ alone):
./scripts/build_rust.sh linux # or: android <abi> | android-all | ios | macosWithout cargo on PATH the Flutter build still succeeds — the Rust step prints a "skipping" notice and AdblockEngine.load() returns null at runtime, leaving the legacy Dart parser engine as the fallback.
Toggle the engine in the app, no rebuild required after the .so is bundled. Flipping the toggle off restores the legacy engine instantly.
| Platform | Status | Purpose |
|---|---|---|
| iOS | ✅ Supported | Target |
| Android | ✅ Supported | Target |
| macOS | ✅ Supported | Development |
| Linux | ✅ Supported | Development |
This project is licensed under the MIT License - Copyright (c) 2023 Kirill Rodriguez.
Assets: Icons and images in the assets/ directory are licensed under CC BY-NC-SA 4.0 - Copyright (c) Polina Levchenko. See assets/LICENSE for details.




