v-va*

VA.2026.002 · Floor 01 · hall 02

Yue

collection Software Concepts Collection
accession VA.2026.002
classification Android Web Browser · Kotlin · Jetpack Compose · Open Source
floor Floor 01
status on view
condition active · open source · 20+ source files · remote adblock server
acquired Jun 2026
revision in development
drawing DWG-002
room 01 curator sheet 01 / 09 · rev in development

“a browser built to give you ultimate control — not the other way around.”

Yue is a premium Android web browser built on Jetpack Compose and the Android System WebView engine. It was designed around a simple premise: the browser should give you control — over your privacy, your browsing, and your screen — not take it away.

Open source since day one, Yue combines a dozen standout features: universal dark mode, background media playback, anti-app-hijacking, hold-to-speedup video acceleration, biometric private browsing, encrypted backup with AES-256-GCM, multi-threaded downloading, and built-in adblocking with Indonesian gambling (judol) filtering. Each feature is implemented with code kept under a strict 600-line limit for clarity and testability.

The adblock engine was originally embedded directly in the browser. In August 2026, it was extracted into a standalone remote server — Yue AdBlock — built with Elysia on Bun and deployed on Vercel. This separation allows rule updates without app releases, remote policy management, and a cleaner browser codebase. The server exposes a REST API that the browser queries on startup to fetch the latest policy profile and cached filter rules.

Yue AdBlock serves four policy profiles: balanced (default), aggressive, minimal, and anti-judol (Indonesian gambling filter). Each profile defines which categories of elements to block — from third-party cookies and trackers to specific gambling domains prevalent in Indonesia. Rules are sourced from community-maintained lists (EasyList, ABPIndo) and a custom ad_domains list. The browser caches rules locally for offline use and checks for updates periodically.

The server architecture follows a modular design: health checks for uptime monitoring, metadata endpoints for engine versioning and rule hashes, and adblock endpoints for policy profiles and rule file downloads. All responses follow OData conventions for consistency. The entire system is type-safe with Zod-validated environment config and TypeScript throughout.

VA.2026.002

Yue

Android Web Browser · Kotlin · Jetpack Compose · Open Source


artist / curator
v-va
date
Jun 2026 — present (ongoing, open source)
status
on view
condition
active · open source · 20+ source files · remote adblock server
medium
universal dark mode · background playback engine · anti open-in-app hijacking · hold-to-speedup video · lock orientation fullscreen · interactive element picker · remote adblock policy server (Yue AdBlock) · multi-thread downloader · encrypted settings backup (AES-256-GCM) · biometric InPrivate lock · password manager · tab grouping
source files
20+
features
12
threads
1–16
encryption
AES-256-GCM
code limit
600 lines/file
adblock profiles
4
acquired
Jun 2026
revision
in development
origin
sketched inside a browser, 2026
room 02 evolution of this work sheet 02 / 09
Jun 2026

First Window

Core architecture laid down: Jetpack Compose + WebView engine, modular package structure (data/domain/presentation), strict 600-line per file limit.

Jun 2026

Feature Foundation

Universal dark mode, biometric InPrivate lock, tab grid switcher, password manager, and basic adblock go live.

Jul 2026

Playback & Power

Background media playback engine (MediaSessionManager), hold-to-speedup 2x video, lock-orientation fullscreen, and offline pages added.

Jul 2026

Advanced Downloader

Multi-thread parallel downloader (1–16 threads, configurable), byte-range chunking, SAF folder destination, and pause/resume support.

Aug 2026

Encrypted Vault

AES-256-GCM encrypted settings backup & restore with PBKDF2 key derivation (100k iterations). Full browser configuration exportable and portable.

Aug 2026

Open Source

Released on GitHub at github.com/fazza-abiyyu/Yue-Browser. Anti-judol (gambling) domain blocking added for Indonesian users.

Aug 2026

Yue AdBlock — Remote Policy Server

Adblock system extracted into a standalone remote server (Yue AdBlock). Deployed on Vercel with Elysia on Bun. Serves policy profiles (balanced, aggressive, minimal, anti-judol) and filter rules (EasyList, ABPIndo, ad_domains) via REST API. The browser fetches policies on startup and caches rule files locally for offline use.

Ongoing

Actively developed. New features in progress: interactive element picker improvements, enhanced tab grouping, expanded cosmetic filtering, and remote rule synchronization.

concepts — kept & discarded

kept — the browser as a tool that serves you, not the other way around

rejected — toolbars and chrome that interrupt intent

held — privacy as a first-class feature, not an afterthought

open — open source from the first commit

archive ref — VA.2026.002/CON

cross ref — timeline fig. 01

room 03 original sketches sheet 03 / 09

curator annotations

on control

the browser should never hijack your intent — not to an app, not to an ad, not to itself.

on privacy

private browsing should be truly private — biometric lock or it is not private enough.

on speed

parallelism is a feature. one thread is a compromise.

on elegance

dark mode is not a toggle — it is a way of seeing the web at night.

on adblock

adblocking is not about blocking ads — it is about deciding what loads on your device. remote policy servers make that decision updatable without reinstalling the browser.

fig. 01 — VA.2026.002.a the dark mode engine render· SystemWebViewSession.kt forceDark dynamically on any webpage — even sites that don't support it
fig. 02 — VA.2026.002.b encrypted backup vault schema· AES-256-GCM PBKDF2 100k iterations — settings, passwords, bookmarks sealed and portable
fig. 03 — VA.2026.002.c multi-thread downloader flow diagram· 1–16 threads byte-range chunking with parallel HTTP connections, range-probe fallback
fig. 04 — VA.2026.002.d the privacy stack architecture· biometric · WebLock · password three layers: biometric InPrivate, domain-level WebLock, password manager
room 04 interface reviews sheet 04 / 09
fig. 05 — VA.2026.002.e the dark page render any webpage, in dark — even if the site refuses
fig. 06 — VA.2026.002.f 2x playback, in motion render hold to speed up — the HUD tells you when you are
fig. 07 — VA.2026.002.g the biometric lock render InPrivate tabs, guarded by your fingerprint — auto-locks when you leave
room 05 catalog record sheet 05 / 09
materialsuniversal dark mode · background playback engine · anti open-in-app hijacking · hold-to-speedup video · lock orientation fullscreen · interactive element picker · remote adblock policy server (Yue AdBlock) · multi-thread downloader · encrypted settings backup (AES-256-GCM) · biometric InPrivate lock · password manager · tab groupingdimensionssource files — 20+ · features — 12 · threads — 1–16 · encryption — AES-256-GCM · code limit — 600 lines/file · adblock profiles — 4
conditionactive · open source · 20+ source files · remote adblock serveracquiredJun 2026
revisionin developmentarchive locationDWG-002 · floor Floor 01
internal referenceVA.2026.002/Moriginsketched inside a browser, 2026
room 06 the archive sheet 06 / 09

failed experiments

✕ 2026

PIP video not yet working

Picture-in-Picture mode cannot be implemented yet — Android WebView has limited support for enterPictureInPictureMode, and system media session integration is still problematic. Pending fix.

✕ 2026

hold-to-speedup not universal

2x playback acceleration works on most services, but fails on some video players that use custom players (e.g., custom video players from certain providers). JavaScript DOM injection cannot always override native playbackRate.

✕ 2026

app crash in certain scenarios

reported crashes when: opening external tabs with specific gesture combinations, restoring sessions with too many tabs, and switching from InPrivate to normal tabs while media is still playing. Further investigation needed.

✕ 2026

ad optimization still coarse

current adblocking is rule-list based (EasyList + ABPIndo) — no machine learning or heuristic yet to distinguish ads from content. Some new ad sites bypass. Needs improvement on cosmetic filtering and element picker integration.

draft concepts

  • dark mode injection sketch
  • biometric lock flow
  • multi-thread chunking algorithm
  • encrypted backup pipeline
  • element picker overlay

research notes

— forcing dark mode on arbitrary webpages is a nontrivial CSS injection problem — solved via WebView settings.forceDark + dynamic style injection.

— background media playback requires mocking navigator.mediaSession and binding to Android's MediaSessionManager — a bridge between web and native audio lifecycles.

— AES-256-GCM with PBKDF2 at 100k iterations provides a reasonable security ceiling for local backup without making the restore flow unbearably slow.

— anti-judol (gambling) filtering serves a specific geography — Indonesian users need protection that generic adblock does not provide.

— extracting adblock into a remote server solves the version coupling problem: rule lists evolve faster than app releases. The browser fetches policies on startup, caches rules locally, and falls back to cached versions when offline.

— Elysia on Bun was chosen for the adblock server for its type-safe route definitions and native TypeScript performance. Deployed on Vercel with zero-config serverless, the system scales horizontally without infrastructure management.

room 07 architecture · technical drawing DWG-002 · rev in development
DWG-002 · in development · floor plan — Yue curator annotation — zones 03–05 are load-bearing; the presence layer must remain unshaded.
room 08 design statement sheet 08 / 09

I. Control, not convenience

A browser should give you choices, not make them for you. Anti open-in-app, hold-to-speedup, element picker — all features that put the user back in the driver's seat.

II. Privacy is not optional

Biometric InPrivate lock, encrypted backup, password manager — privacy is the default, not a toggle. The browser earns trust by protecting it.

III. Open by design

Yue is open source because a browser handles your most intimate data. Transparency is not a marketing word — it is a security requirement.

IV. Code as craft

Every file under 600 lines. Modular architecture. Clean separation of data, domain, and presentation layers. Code you can read is code you can trust.

room 09 related works & future vision sheet 09 / 09

future vision

Yue continues active development. Roadmap includes: refined element picker for cosmetic filtering, enhanced tab grouping with automatic organization, translation engine improvements, deeper integration with Material Design 3 dynamics, and expanded remote adblock rule synchronization with community-maintained filter lists. Visit yue.abiyyu.xyz to experience the live build.