Skip to content

Vision: Solid Pod on Every Phone #46

Description

@melvincarvalho

The Vision

Every smartphone could be a personal Solid pod - giving billions of people sovereign control over their data without relying on cloud providers.

Proof of Concept

We've successfully demonstrated JSS running on Android via Termux:

  • Hardware: Standard Android phone
  • Runtime: Node.js v24 via Termux + PM2
  • Resources: ~95MB RAM, ~0% CPU idle
  • Connectivity: SSH reverse tunnel via autossh
  • Result: https://phone.solid.live/ - a fully functional Solid pod

What Works Today

Component Status
JSS on Termux ✅ Works (with bcryptjs swap)
PM2 process management ✅ Works
Auto-reconnecting tunnel ✅ Works (autossh)
Survive reboot ✅ Works (Termux:Boot)
Public HTTPS endpoint ✅ Works (via relay + haproxy)

The Gap: From Proof-of-Concept to "One Click Install"

Current Setup (Technical Users)

1. Install Termux + Termux:Boot
2. pkg install nodejs openssh autossh
3. npm install -g pm2
4. git clone JSS, swap bcrypt→bcryptjs
5. Generate SSH keys, configure relay server
6. Setup PM2, configure boot script
7. Configure relay server (haproxy/nginx + certs)

Goal: Anyone Can Do It

1. Install "PhonePod" app from Play Store
2. Tap "Create My Pod"
3. Done - your phone is now a Solid server

Technical Roadmap

Phase 1: Installer Script (Low Effort)

Single bash script for Termux users:

curl -sL https://jss.solid.live/install.sh | bash

The script would:

  • Install dependencies (Node.js, PM2, autossh)
  • Clone and patch JSS
  • Configure PM2 and boot persistence
  • Guide user through relay setup

Effort: 1-2 days
Audience: Technical users comfortable with Termux

Phase 2: Hosted Relay Service (Medium Effort)

Provide a public relay so users don't need their own VPS:

  • Wildcard domain: *.phonepod.app or similar
  • Auto-provisioned subdomains: alice.phonepod.app
  • Let's Encrypt wildcard cert
  • Simple registration (could even be WebID-based)

Architecture:

Phone (JSS) → autossh → relay.phonepod.app → https://alice.phonepod.app

Effort: 1-2 weeks
Audience: Users who can install Termux but don't have a VPS

Phase 3: Native Android App (High Effort)

Full Android app with embedded runtime:

  • Bundle Node.js for ARM64 (or explore alternatives like aspect-build)
  • Native UI for setup and monitoring
  • Handle Android battery optimization properly
  • Background service with proper lifecycle
  • Optional: Integrate with relay service

Effort: 1-3 months
Audience: General public

Phase 4: P2P/Decentralized Relay (Ambitious)

Remove the need for centralized relay infrastructure:

  • WebRTC hole-punching for direct connections
  • DHT for peer discovery
  • Fallback relay network run by community nodes
  • Integration with existing projects (libp2p, IPFS, etc.)

Effort: 3-6 months
Audience: Everyone, fully decentralized

Challenges to Solve

1. Android Battery Optimization

Android aggressively kills background apps. Mitigations:

  • Termux wakelock (termux-wake-lock)
  • Guide users to disable battery optimization
  • Native app could handle this better

2. Native Modules

bcrypt fails to compile on Android. Solutions:

  • ✅ Already solved: Use bcryptjs (pure JS)
  • Consider making this the default or auto-detecting

3. Connectivity

Phones change networks, go offline, etc. Solutions:

  • ✅ autossh handles reconnection
  • Native app could be smarter about network state
  • Consider offline-first with sync when connected

4. Domain/HTTPS for Everyone

Every user needs a URL. Options:

  • Hosted relay with subdomains (Phase 2)
  • DID-based addressing (no DNS needed)
  • Integration with DynDNS-style services
  • .onion addresses (Tor)

5. Discovery

How do others find your pod? Options:

  • WebID profile links
  • DID resolution
  • QR codes for local sharing
  • Integration with Solid ecosystem directories

Why This Matters

  1. Data Sovereignty: Your data lives on hardware you physically control
  2. Zero Cost: No monthly hosting fees, uses existing device
  3. Resilience: No single point of failure, survives provider shutdowns
  4. Accessibility: Billions have smartphones, few have VPS skills
  5. Environmental: Reuse old phones instead of e-waste

Call to Action

We're looking for contributors interested in:

  • Writing the Phase 1 installer script
  • Setting up a public relay service (Phase 2)
  • Exploring native Android app approaches (Phase 3)
  • Research on P2P connectivity (Phase 4)
  • Documentation and user guides
  • Testing on various Android devices

Resources


This started as a "can it run on my phone?" experiment and turned into a working proof of concept in a single session. The technology is ready - we just need to package it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions