Hosted Pilot Approach
Date: 2025-01-15 Phase: 15 (follows Platform Layer implementation) Purpose: Get real signal from actual co-ops without forcing them to self-host
The Problem
In this 2025-01-15 planning snapshot, the substrate was assessed as production-capable (Phases 1-12), with a platform layer expected next (Phase 14: gateway + SDK + reference app).
But we have zero pilots. We don't know:
- What co-ops actually need
- Where the UX breaks down
- What governance patterns emerge
- Whether mutual credit is intuitive
- If self-hosting is a blocker or non-issue
Building more infrastructure without user signal is speculation.
The Solution: Host Apps for Early Pilots
Approach
Deploy the reference app (Shopper's Club) multi-tenant:
- One Next.js instance
- One
icn-gatewayinstance - One
icndnode (with multi-coop namespaces) - Co-ops access via subdomain or path:
shoppers.icn.coop/food-coop-pdx
Onboard 1-2 pilot co-ops:
- "Here's your app, here's your login"
- No devops required from co-op
- Focus 100% on using ICN, not operating ICN
Watch what hurts:
- Weekly feedback sessions (30-60 min)
- Document learnings in
docs/pilots/learnings/ - Iterate rapidly based on feedback
What This Is NOT
- ❌ SaaS platform (it's temporary hosting for learning)
- ❌ Production service (it's a pilot, expect downtime)
- ❌ Vendor lock-in (co-ops can export data + self-host anytime)
What This IS
- ✅ Fastest path to real user feedback
- ✅ Lowest barrier for non-technical co-ops
- ✅ Validates platform before investing in runtime/templates/etc.
Technical Setup
Infrastructure
Hosting (example - Digital Ocean, Hetzner, or similar):
Server 1 (icnd + icn-gateway):
- icnd with multi-coop namespaces
- icn-gateway (REST + WebSocket API)
- Cost: ~$40-60/month
Server 2 (Reference App):
- Next.js Shopper's Club (multi-tenant)
- Talks to icn-gateway on Server 1
- Cost: ~$20-40/month
Total: ~$60-100/month for 1-5 pilot co-ops
Multi-Tenancy via Namespaces:
// Each co-op gets isolated namespace
coop:food-coop-pdx:members
coop:food-coop-pdx:ledger
coop:food-coop-pdx:proposals
coop:timebank-austin:members
coop:timebank-austin:ledger
// etc.
App Routing:
Option A (subdomain):
food-coop-pdx.shoppers.icn.coop → coopId = "food-coop-pdx"
timebank-austin.shoppers.icn.coop → coopId = "timebank-austin"
Option B (path):
shoppers.icn.coop/food-coop-pdx → coopId = "food-coop-pdx"
shoppers.icn.coop/timebank-austin → coopId = "timebank-austin"
Data Sovereignty
Co-ops retain full control:
- Export ledger anytime (CSV, JSON)
- Export member data (GDPR compliance)
- Migrate to self-hosted icnd + gateway + app anytime
No lock-in:
- Reference app is open source (forkable)
- API is documented (any app can use it)
- Data is portable (standard formats)
Learning Goals
Week 1-2: Onboarding
Questions:
- How hard is it to get co-op members signed up?
- Do they understand DID-based login?
- What's confusing about the initial setup?
Week 3-4: Basic Usage
Questions:
- Can members check their balance easily?
- Is sending payments intuitive?
- Do they understand mutual credit (negative balances OK)?
Week 5-8: Real Workflows
Questions:
- Do governance patterns emerge organically?
- What custom features do they request?
- Where does the app fail their needs?
Week 9-12: Pain Points
Questions:
- Is self-hosting a request? ("We want to run this ourselves")
- Is customization a request? ("We need to modify X")
- Is the substrate insufficient? ("We need Y feature in the protocol")
Success Criteria (3-month pilot)
Usage Metrics:
- 10+ active users logging transactions weekly
- 50+ total transactions
- 3+ governance decisions attempted (proposals, votes)
Qualitative Feedback:
- Co-op prefers ICN over previous system (spreadsheet, other tool)
- Members find app intuitive (< 5 min to send first payment)
- Clear signal on what to build next
Network Effects:
- 2-3 other co-ops express interest based on pilot results
- Pilot co-op refers another community
What We Learn Determines Phase 16+
If pilots reveal:
"We need custom backend logic but can't run servers" → Build app runtime (Phase 16)
"Governance patterns are clear and repeatable" → Build governance templates (Phase 16)
"Self-hosting is hard, we want to stay hosted" → Build multi-tenant SaaS offering (Phase 17)
"Self-hosting is important, we want full control" → Build easy self-hosting tools (Phase 16)
"We want to connect with other co-ops" → Build federation (Phase 17+)
"Mobile is critical, web-on-phone isn't enough" → Build native mobile apps (Phase 17+)
Migration Path (Pilot → Production)
If Co-op Wants to Self-Host
Step 1: Export data
icnctl backup --coop food-coop-pdx --output ./backup.tar.gz
Step 2: Deploy their own infrastructure
# On co-op's server
icnctl restore ./backup.tar.gz
icnd --data-dir /opt/icn/food-coop-pdx
icn-gateway --bind 0.0.0.0:8000
Step 3: Deploy reference app (or custom app)
# Clone reference app
git clone https://github.com/icn/shoppers-club
cd shoppers-club
npm install
# Configure for self-hosted gateway
echo "NEXT_PUBLIC_ICN_GATEWAY=https://gateway.foodcoop.org" > .env.local
# Deploy to Vercel/Railway/wherever
npm run build
npm run start
Step 4: Redirect users
Old URL: food-coop-pdx.shoppers.icn.coop
New URL: shoppers.foodcoop.org
If Co-op Wants to Stay Hosted
Option 1: ICN Foundation continues hosting
- Co-op pays nominal hosting fee ($10-20/month)
- ICN Foundation maintains infrastructure
- Co-op retains data export rights
Option 2: Cooperative hosting collective
- Multiple co-ops pool resources
- Tech-savvy co-op runs shared infrastructure
- Cooperative governance of the platform
Risk Mitigation
What if pilot fails?
- Document learnings thoroughly
- Iterate on platform layer
- Find different pilot community
- Total sunk cost: ~$500 (3 months hosting)
What if we can't scale hosting?
- Platform layer still ships (gateway + SDK)
- Self-hosting becomes primary path
- Pilots still provided valuable feedback
What if co-op loses trust in hosted model?
- Export data immediately
- Help them migrate to self-hosted
- No lock-in, clean exit
Timeline
Month 1 (Week 1-4):
- Deploy hosted infrastructure
- Onboard first pilot co-op
- Focus: Onboarding + basic usage
Month 2 (Week 5-8):
- Onboard second pilot co-op
- Focus: Real workflows + edge cases
- Weekly feedback sessions
Month 3 (Week 9-12):
- Focus: Pain point identification
- Document learnings
- Decide Phase 16+ priorities
Month 4+:
- Continue pilot if valuable
- OR migrate co-ops to self-hosted
- OR build Phase 16 based on learnings
Deliverables
- Hosted deployment (live at
shoppers.icn.coop) - Pilot onboarding guide (how to sign up, use app)
- Weekly learnings in
docs/pilots/learnings/YYYY-MM-DD.md - Phase 16 decision doc (what to build next, based on evidence)
Last Updated: 2025-01-15 Next Review: After Phase 14 (gateway + SDK) completion