DEV Community

ChaiLifeOTFT
ChaiLifeOTFT

Posted on

I compressed 60 Android apps into one 108KB runtime — here's how

I'm an ADHD developer running everything on a single RTX 4070. Over the past few months, I built 60+ web apps wrapped as Android APKs using Capacitor. Each one was 15-30MB — mostly duplicated runtime.

The problem: 60 × 97MB node_modules = 5.8GB of pure duplication.

The solution: One shared Android runtime + tiny JSON manifests per app.

The Architecture

Instead of shipping 60 separate APKs, I built:

  • One OhananahO Runtime APK (~20MB) — shared WebView + Capacitor core
  • 48 JSON manifests (~50KB total) — each describes one app (name, icon, entry point, permissions)
  • A manifest converter that transforms existing Capacitor apps into manifests

The Numbers

Before After
60 APKs × 15-30MB each 1 runtime + 48 manifests
331.9 MB of app data 0.04 MB of manifests
8,086x compression ratio 100% space saved

How It Works

  1. Runtime loads on phone
  2. Reads manifest directory from /sdcard/OhananahO/apps/
  3. Renders app grid (launcher)
  4. Tap an app → loads its web assets into the shared WebView
  5. JS bridge exposes native capabilities (camera, GPS, storage)

Each app is just HTML/CSS/JS — the runtime provides everything else.

The Manifest Format

{
  "name": "BrickWorthy",
  "version": "2.0",
  "entry": "index.html",
  "icon": "icon.png",
  "permissions": ["camera", "storage"],
  "description": "Lego inventory with photo recognition"
}
Enter fullscreen mode Exit fullscreen mode

Why This Matters

If you're building multiple PWAs/web apps and wrapping them for mobile:

  • Stop duplicating the runtime. Ship one shared APK.
  • Manifests are hot-swappable. Update an app without rebuilding the APK.
  • 108KB launcher. The grid that loads 48 apps is smaller than a favicon.

Built With

  • Android SDK (command-line tools, no Android Studio)
  • Java 17 (no Gradle for the lightweight path)
  • Python manifest converter
  • HTML/CSS/JS for all app frontends
  • Single RTX 4070 running Ollama + ComfyUI + the mesh simultaneously

What I Learned

The ADHD brain wants to build 60 things. The engineering brain says "but they all share 97% of their code." The compression brain says "extract the common, vary the unique." That's what this is.


If you're running multiple local AI tools, web apps, or utilities and wrapping them for mobile, this pattern saves massive space and simplifies updates.

The full toolkit (7 builds including this one) is documented with video tutorials: AI Creator's Toolkit on Gumroad

Happy to answer questions about the architecture or share the manifest converter.

Top comments (0)