Skip to content

Commit 7ebc147

Browse files
feat: expand data-sovereignty and add 6 more projects
- Expand data-sovereignty.md from 82 to 225 lines with diagrams - Add Lume (desktop multi-column client) - Add Nostree (link-in-bio service) - Add Nostrcheck (NIP-05 verification) - Add Openvibe (multi-protocol client) - Add Hostr (web hosting on Nostr) - Add GitStr (git patches over Nostr) Total: 129 pages
1 parent b873cad commit 7ebc147

8 files changed

Lines changed: 816 additions & 26 deletions

File tree

docs/concepts/data-sovereignty.md

Lines changed: 168 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,71 +12,213 @@ description: Your data belongs to you
1212

1313
Today, your data is scattered across hundreds of services:
1414

15-
- Your photos on Instagram
16-
- Your documents on Google Drive
17-
- Your messages on WhatsApp
18-
- Your professional network on LinkedIn
19-
- Your music on Spotify
15+
```
16+
┌─────────────────────────────────────────────────────────────────┐
17+
│ Your Data Today │
18+
├─────────────────────────────────────────────────────────────────┤
19+
│ │
20+
│ You │
21+
│ │ │
22+
│ ├──► Instagram: photos (they own copy) │
23+
│ ├──► Google Drive: documents (they own copy) │
24+
│ ├──► WhatsApp: messages (they own copy) │
25+
│ ├──► LinkedIn: professional network (they own copy) │
26+
│ ├──► Spotify: playlists (they own copy) │
27+
│ ├──► Twitter/X: tweets (they own copy) │
28+
│ └──► ...hundreds more services │
29+
│ │
30+
│ Problems: │
31+
│ • Each service has different terms you didn't read │
32+
│ • Each can change rules, lock you out, or shut down │
33+
│ • Data used to train AI, serve ads, profile you │
34+
│ • Switching means losing everything │
35+
│ │
36+
└─────────────────────────────────────────────────────────────────┘
37+
```
2038

21-
Each service has its own copy. Each has different terms. Each can change the rules, lock you out, or shut down. You're a tenant in someone else's building.
39+
You're a tenant in someone else's building.
2240

2341
## The Solution
2442

25-
Data sovereignty means:
43+
Data sovereignty inverts this model:
44+
45+
```
46+
┌─────────────────────────────────────────────────────────────────┐
47+
│ Your Data Tomorrow │
48+
├─────────────────────────────────────────────────────────────────┤
49+
│ │
50+
│ Your Data Store (Pod) │
51+
│ │ │
52+
│ ├── photos/ │
53+
│ ├── documents/ │
54+
│ ├── messages/ │
55+
│ ├── social/ │
56+
│ └── preferences/ │
57+
│ │ │
58+
│ ▼ │
59+
│ ┌─────────────────────────────────────────────────────┐ │
60+
│ │ Apps request access (you approve) │ │
61+
│ │ ├── Photo app → photos/ (read) │ │
62+
│ │ ├── Doc editor → documents/ (read/write) │ │
63+
│ │ └── AI agent → all (read, with your permission) │ │
64+
│ └─────────────────────────────────────────────────────┘ │
65+
│ │
66+
└─────────────────────────────────────────────────────────────────┘
67+
```
68+
69+
### Core Principles
70+
71+
| Principle | What It Means |
72+
|-----------|---------------|
73+
| **You choose where data lives** | Your server, trusted provider, local device |
74+
| **Apps come to your data** | Instead of giving data to apps |
75+
| **You control access** | Grant, revoke, audit permissions |
76+
| **You can leave** | Export everything, switch providers |
77+
| **Data is interoperable** | Same data works across apps |
78+
79+
## Why It Matters
80+
81+
### Privacy
2682

27-
1. **You choose where your data lives** — Your server, a trusted provider, or anywhere you want
28-
2. **Apps come to your data** — Instead of giving your data to apps, apps request access
29-
3. **You control access** — Grant, revoke, and audit who can see what
30-
4. **You can leave** — Export everything, switch providers, no lock-in
83+
Your data isn't harvested to:
84+
- Train AI models you don't consent to
85+
- Build advertising profiles
86+
- Be sold to data brokers
87+
- Be leaked in breaches you didn't cause
88+
89+
### Control
90+
91+
You decide:
92+
- Who sees what
93+
- How long they have access
94+
- What they can do with it
95+
- When to revoke access
96+
97+
### Portability
98+
99+
No lock-in:
100+
- Switch photo apps without losing photos
101+
- Change social networks without losing connections
102+
- Move providers without starting over
103+
104+
### Longevity
105+
106+
Your data survives:
107+
- Services shutting down
108+
- Companies being acquired
109+
- Policy changes
110+
- Account suspensions
31111

32112
## How SAND Implements This
33113

34114
### Solid Pods
35115

36-
[Solid](/protocols/solid) provides the primary mechanism for data sovereignty. A Solid pod is like a personal web server where all your data lives:
116+
[Solid](/protocols/solid) provides the primary mechanism for data sovereignty. A Solid pod is a personal web server where your data lives:
37117

38118
```
39119
your-pod.example.com/
40120
├── profile/
41-
│ └── card # Your identity
121+
│ └── card # Your identity (WebID)
42122
├── photos/
43123
│ ├── 2024/
44124
│ └── 2023/
45125
├── documents/
46126
│ └── notes/
127+
├── social/
128+
│ ├── contacts
129+
│ └── messages
47130
└── settings/
131+
└── prefs.ttl
48132
```
49133

50134
Apps don't store your data — they read from and write to your pod with your permission.
51135

52136
### Nostr Events
53137

54-
[Nostr](/protocols/nostr) stores messages and events cryptographically signed with your key. Even though events are distributed across relays, they're provably yours because only you have the private key.
138+
[Nostr](/protocols/nostr) stores messages and events cryptographically signed with your key. Even though events are distributed across relays:
139+
140+
- They're provably yours (only you have the private key)
141+
- Multiple relays provide redundancy
142+
- No single point of failure
143+
- You can move between clients freely
55144

56145
### DIDs
57146

58-
[Decentralized Identifiers](/protocols/did) ensure your identity isn't tied to any provider. Your DID works everywhere, and you control the keys.
147+
[Decentralized Identifiers](/protocols/did) ensure your identity isn't tied to any provider:
148+
149+
- Your DID works everywhere
150+
- You control the keys
151+
- No platform can take your identity
152+
- Portable across the entire web
153+
154+
## Comparison
155+
156+
| Aspect | Centralized | Sovereign |
157+
|--------|-------------|-----------|
158+
| **Data location** | Service's servers | Your choice |
159+
| **Terms of service** | Their rules | Your rules |
160+
| **Service shutdown** | Data lost | Data persists |
161+
| **App switching** | Start over | Data stays |
162+
| **AI training** | Your data used | You decide |
163+
| **Privacy** | Trust them | Trust yourself |
164+
| **Portability** | Maybe export | Full ownership |
165+
166+
## Real-World Examples
167+
168+
### Photos
169+
170+
**Today:** Upload to Instagram → Instagram owns the relationship with your data, can delete, ban, change terms.
171+
172+
**Sovereign:** Store in your pod → Use any photo app that can read from your pod. Switch apps without losing photos. Your AI can organize them.
173+
174+
### Documents
175+
176+
**Today:** Write in Google Docs → Google can read everything, train AI on your content, change pricing.
177+
178+
**Sovereign:** Write to your pod → Use any editor. Documents survive any single service. Full export always available.
179+
180+
### Social Graph
181+
182+
**Today:** Build network on LinkedIn → LinkedIn owns your connections. Leave = lose everything.
183+
184+
**Sovereign:** Contacts in your pod → Take your network anywhere. Any social app can read (with permission).
185+
186+
## Challenges
187+
188+
### Convenience
189+
190+
Sovereign systems require more setup than signing up for a free service. This is improving:
191+
- Hosted pod providers
192+
- Better tooling
193+
- Simpler apps
194+
195+
### Network Effects
196+
197+
Value often comes from others using the same platform. Federation and bridges help:
198+
- Nostr clients are interoperable
199+
- ActivityPub connects Fediverse
200+
- Bridges connect protocols
59201

60-
## Practical Benefits
202+
### Technical Complexity
61203

62-
| Centralized | Sovereign |
63-
|-------------|-----------|
64-
| Service shuts down, data gone | Your data persists |
65-
| Terms change, you comply or leave | You set the terms |
66-
| Data siloed per app | One dataset, many apps |
67-
| Export is limited | Full data portability |
68-
| Vendor lock-in | Switch providers freely |
204+
Running your own infrastructure requires knowledge. Solutions:
205+
- Managed providers
206+
- One-click deployments
207+
- Local-first apps
69208

70209
## Getting Started
71210

72211
1. **Set up a pod** — Use [Sandymount](/projects/sandymount) to run your own, or choose a provider
73-
2. **Use pod-aware apps** — Applications that work with Solid pods
74-
3. **Control access** — Learn how to manage permissions
212+
2. **Create a Nostr identity** — Generate keys with [Noskey](/projects/noskey) or any client
213+
3. **Use sovereign apps** — Applications that work with your data
214+
4. **Control access** — Learn to manage permissions
75215

76216
See [Your First Pod](/guides/your-first-pod) for a hands-on tutorial.
77217

78218
## Learn More
79219

80220
- [Solid Protocol](/protocols/solid) — The technical specification
221+
- [Nostr Protocol](/protocols/nostr) — Cryptographic messaging
81222
- [Linked Data](/concepts/linked-data) — How data connects
82-
- [Manifesto](/manifesto) — The philosophy behind data sovereignty
223+
- [Local-First](/concepts/local-first) — Offline-capable sovereignty
224+
- [Manifesto](/manifesto) — The philosophy behind it all

docs/projects/gitstr/index.md

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
---
2+
title: GitStr
3+
description: Git patches over Nostr
4+
---
5+
6+
# GitStr
7+
8+
**Git over Nostr.** Send and receive patches via the protocol.
9+
10+
## Overview
11+
12+
GitStr enables distributed version control by sending and receiving Git patches over Nostr, implementing NIP-34. Censorship-resistant code collaboration.
13+
14+
## Key Features
15+
16+
### Distributed Patches
17+
18+
```
19+
┌─────────────────────────────────────────────────────────────────┐
20+
│ GitStr Workflow │
21+
├─────────────────────────────────────────────────────────────────┤
22+
│ │
23+
│ Traditional Git: │
24+
│ Push ──► GitHub ──► Pull Request ──► Central server │
25+
│ │
26+
│ GitStr: │
27+
│ Patch ──► Nostr event ──► Relays ──► Anyone can receive │
28+
│ │
29+
│ No central server • No gatekeeping • Censorship-resistant │
30+
│ │
31+
└─────────────────────────────────────────────────────────────────┘
32+
```
33+
34+
### Core Features
35+
36+
| Feature | Description |
37+
|---------|-------------|
38+
| **Send patches** | Publish Git patches to Nostr |
39+
| **Receive patches** | Download from relays |
40+
| **NIP-34** | Standard patch format |
41+
| **Decentralized** | No central server |
42+
| **CLI tool** | Git integration |
43+
44+
## Usage
45+
46+
### Initialize Repository
47+
48+
```bash
49+
git str init -r wss://relay.example.com
50+
```
51+
52+
### Download Patches
53+
54+
```bash
55+
git str download
56+
```
57+
58+
### Send Patches
59+
60+
```bash
61+
git send <commit>
62+
```
63+
64+
### Patch Storage
65+
66+
Patches stored in:
67+
```
68+
.git/str/patches/
69+
```
70+
71+
## NIP-34 Format
72+
73+
Patches published as Nostr events following NIP-34:
74+
- Event kind for patches
75+
- Metadata tags for context
76+
- Relay hints for discovery
77+
78+
## Use Cases
79+
80+
1. **Open source** — Accept contributions via Nostr
81+
2. **Censorship resistance** — Code that can't be taken down
82+
3. **Distributed teams** — No single point of failure
83+
4. **Backup** — Patches replicated across relays
84+
85+
## Comparison
86+
87+
| Feature | GitStr | GitHub | Email patches |
88+
|---------|--------|--------|---------------|
89+
| Protocol | Nostr | Proprietary | SMTP |
90+
| Censorship | Resistant | Platform | Provider |
91+
| Discovery | Relays | GitHub search | Manual |
92+
| Identity | Nostr keys | GitHub account | Email |
93+
94+
## Installation
95+
96+
```bash
97+
go install github.com/fiatjaf/gitstr/cmd/git-str@latest
98+
```
99+
100+
## Related Projects
101+
102+
- **NostrGit** — GitHub-style interface
103+
- **git-remote-nostr** — Git remote helper
104+
- **nostrgit** — Alternative implementation
105+
106+
## Links
107+
108+
- **GitHub:** [fiatjaf/gitstr](https://github.com/fiatjaf/gitstr)
109+
110+
## See Also
111+
112+
- [Nostr Protocol](/protocols/nostr) — The protocol
113+
- [NostrGit](/projects/nostrgit) — Git on Nostr
114+
- [Hostr](/projects/hostr) — Web hosting on Nostr

0 commit comments

Comments
 (0)