SAND Stack: Solid + ActivityPub + Nostr + DID β Personal sovereignty in one command
npm install sandymountSolid Β· ActivityPub Β· Nostr Β· DID
Personal sovereignty in one command


Quick Start Β· Features Β· Why SAND? Β· Roadmap
---
``bash`
npm install -g sandymount
sandymount start
That's it. Your personal SAND server is running.
---
Four protocols, one stack, total sovereignty:
| | Protocol | What You Get |
|:---:|----------|--------------|
| S | Solid | Personal data pod β files, profiles, apps |
| A | ActivityPub | Federated social β Mastodon, Threads, WordPress |
| N | Nostr | Censorship-resistant social β relays, zaps, keys |
| D | DID | Decentralized identity β one key, every protocol |
---
| Feature | Description |
|---------|-------------|
| Solid Pod | Full LDP server with WebID, Web Access Control, Solid-OIDC |
| Nostr Relay | NIP-01 compliant, rate-limited, memory-efficient |
| Git Server | Clone and push repos via HTTP with WebID auth |
| DID Resolution | did:nostr β WebID, NIP-98 HTTP authentication |
| Mobile Ready | Runs on Android/Termux, ~100MB RAM |
| Feature | Description |
|---------|-------------|
| ActivityPub | Mastodon-compatible federation via FedBox |
| Unified Identity | One keypair for Solid + AP + Nostr |
| P2P Connectivity | No VPS required |
---
`bash`
npm install -g sandymount
sandymount start
`bash`
pkg install nodejs-lts
npm install -g sandymount pm2
pm2 start sandymount -- start
pm2 save
`bash`
sandymount start --port 3000 --nostr --git
`bash`
sandymount start --solidos-ui
Uses a modern Nextcloud-style interface instead of the classic mashlib databrowser. Requires local mashlib and solidos-ui files. See solidos-ui for setup.
---
| Endpoint | Protocol | Description |
|----------|----------|-------------|
| / | Solid | Pod root, WebID profile |/relay
| | Nostr | WebSocket relay (wss://) |/relay/info
| | Nostr | NIP-11 relay metadata |/.git
| | Git | Clone/push repositories |/.well-known/webfinger
| | Discovery | WebFinger lookup |
---
| Your Life | Who Controls It |
|-----------|-----------------|
| Identity | Google, Apple, Facebook |
| Files | Dropbox, iCloud, Drive |
| Social | Twitter, Instagram, TikTok |
| Followers | The platform |
| SAND Protocol | What It Fixes |
|---------------|---------------|
| DID | You own your identity |
| Solid | You own your data |
| Nostr | You own your voice |
| ActivityPub | You own your social graph |
``
Your phone = Your server
Your key = Your identity
Your pod = Your data
Your relay = Your reach
Zero to sovereignty in 60 seconds.
---
`
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SAND Stack β
ββββββββββββββ¬βββββββββββββ¬βββββββββββββ¬βββββββββββββββ€
β Solid β ActivityPubβ Nostr β DID β
β (LDP) β (AP) β (NIP-01) β (did:nostr) β
ββββββββββββββ΄βββββββββββββ΄βββββββββββββ΄βββββββββββββββ€
β Fastify Server β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Filesystem β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
One port Β· One process Β· One identity
`
---
---
`bashCLI
sandymount start --port 3000 --nostr --git
| Option | Description | Default |
|--------|-------------|---------|
|
--port | Port to listen on | 5420 |
| --root | Data directory | ./data |
| --solidos-ui | Modern Nextcloud-style UI | false |
| --no-nostr | Disable Nostr relay | - |
| --no-git | Disable Git backend | - |
| --no-idp | Disable identity provider | - |
| --no-mashlib | Disable UI entirely | - |
| --activitypub | Enable ActivityPub | false |
| --quiet` | Suppress logs | false |---
| Resource | Link |
|----------|------|
| Website | sandy-mount.com |
| GitHub | sandy-mount/sandymount |
| npm | npmjs.com/package/sandymount |
| Solid | solidproject.org |
| Nostr | nostr.com |
| ActivityPub | activitypub.rocks |
---
We welcome contributions in:
- ActivityPub integration
- Mobile app development
- P2P connectivity
- Documentation
See Issue #3 for the SAND Stack roadmap.
---
AGPL-3.0 β Free as in freedom.
---