Skip to content

Vision: Solid Pod on Every Phone #46

@melvincarvalho

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions