Skip to content

theoden8/webspace_app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

408 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

WebSpace is a mobile app that brings all your favorite websites and web apps together in one organized, streamlined interface.

Screenshots

All Sites Sites Drawer Work Webspace Workspace Sites

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

Development

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

# Get dependencies
fvm flutter pub get

Optional: Rust adblock engine

The 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 buildRustAdblock task runs before mergeJniLibFolders. Requires cargo on PATH and ANDROID_NDK_HOME (or NDK installed under the SDK). Skip with -PskipRustAdblock=true.
  • Linux — CMake webspace_adblock_so target 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 | macos

Without 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 Support

Platform Status Purpose
iOS ✅ Supported Target
Android ✅ Supported Target
macOS ✅ Supported Development
Linux ✅ Supported Development

License

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.

About

Your favorite web apps, now on your phone.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Contributors