WebSpace is a mobile and macOS 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 (adblock-rust) with EasyList-style filter lists
- 📦 LocalCDN - cache CDN resources locally to prevent tracking (Android)
- 📌 Home screen shortcuts for quick site access
- 📜 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's adblock-rust crate (rust/webspace_adblock) auto-builds and bundles as part of each platform build, so a normal fvm flutter build needs nothing extra:
- 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.
To rebuild the crate alone (e.g. iterating on rust/webspace_adblock/) without a full Flutter build:
./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 content blocking no-ops at runtime (there is no Dart fallback; Windows ships without the library).
| Platform | Status | Purpose |
|---|---|---|
| iOS | ✅ Supported | Target |
| Android | ✅ Supported | Target |
| macOS | ✅ Supported | Target |
| Linux | ✅ Supported | Development |
| Platform | Channel |
|---|---|
| iOS | App Store |
| Android | Google Play, F-Droid |
| macOS | Notarized Developer ID build, and the Mac App Store |
macOS release builds are signed after the build by
scripts/sign_macos.sh, driven by the
release-macos.yml workflow; account setup and the submission path are in
docs/releasing-macos.md. The macOS bundle attached
to CI runs is a developer build: it is ad-hoc signed, so it launches but
secure storage (cookies, proxy credentials) and the share extension's app
group do not work, and Gatekeeper quarantines it on download.
WebSpace's own source code 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.
Third-party code in the shipped binary is permissive or file-level copyleft (Apache-2.0, MPL-2.0, BSD, MIT), plus WPE WebKit as a dynamically linked LGPL system library on Linux. Filter lists, blocklists and map tiles under GPL, LGPL, CC BY-SA or ODbL are downloaded at runtime and never bundled. Full attribution is in the app under Settings → Licenses; the licence texts for runtime-fetched data live under assets/licenses/; the rules that keep the composition this way, and the App Store encryption declaration, are in the legal spec.




