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
- Data Sovereignty: Your data lives on hardware you physically control
- Zero Cost: No monthly hosting fees, uses existing device
- Resilience: No single point of failure, survives provider shutdowns
- Accessibility: Billions have smartphones, few have VPS skills
- Environmental: Reuse old phones instead of e-waste
Call to Action
We're looking for contributors interested in:
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.
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:
What Works Today
The Gap: From Proof-of-Concept to "One Click Install"
Current Setup (Technical Users)
Goal: Anyone Can Do It
Technical Roadmap
Phase 1: Installer Script (Low Effort)
Single bash script for Termux users:
curl -sL https://jss.solid.live/install.sh | bashThe script would:
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:
*.phonepod.appor similaralice.phonepod.appArchitecture:
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:
Effort: 1-3 months
Audience: General public
Phase 4: P2P/Decentralized Relay (Ambitious)
Remove the need for centralized relay infrastructure:
Effort: 3-6 months
Audience: Everyone, fully decentralized
Challenges to Solve
1. Android Battery Optimization
Android aggressively kills background apps. Mitigations:
termux-wake-lock)2. Native Modules
bcryptfails to compile on Android. Solutions:bcryptjs(pure JS)3. Connectivity
Phones change networks, go offline, etc. Solutions:
4. Domain/HTTPS for Everyone
Every user needs a URL. Options:
5. Discovery
How do others find your pod? Options:
Why This Matters
Call to Action
We're looking for contributors interested in:
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.