|
1 | | -# Hello World |
| 1 | +# True Commons |
2 | 2 |
|
3 | | -## Environment Setup |
| 3 | +A **digital commons platform** that enables organization-agnostic, capture-resistant resource sharing built on **Holochain** and **ValueFlows** economic modeling. |
4 | 4 |
|
5 | | -> PREREQUISITE: set up the [holochain development environment](https://developer.holochain.org/docs/install/). |
| 5 | +## 🌍 Vision: What are True Commons? |
6 | 6 |
|
7 | | -Enter the nix shell by running this in the root folder of the repository: |
| 7 | +True Commons represent a new paradigm for digital resources that are: |
| 8 | + |
| 9 | +- **🔒 Capture-Resistant**: Built on Holochain's decentralized architecture to resist corporate capture |
| 10 | +- **🏛️ Organization-Agnostic**: No single entity controls resources; governed by embedded rules |
| 11 | +- **📊 Value-Tracking**: Uses ValueFlows ontology to track all economic activities and contributions |
| 12 | +- **🔓 Permissionless**: Open access under defined rules - anyone can contribute and use |
| 13 | +- **🌱 Shareable by Default**: Resources are designed for sharing and collaborative improvement |
| 14 | +- **📈 Unenclosable**: Hard to clone or capture due to network effects and embedded governance |
| 15 | + |
| 16 | +### Use Case Example |
| 17 | + |
| 18 | +**Bob** creates an open-source irrigation system as a digital artifact containing build instructions, economic data (time, materials, organizational context), and embedded access rules. **Lynn** discovers it, builds the system, adds improvements, and contributes back. The artifact exists independently with no central owner but is governed by its embedded rules, creating value for the entire commons. |
| 19 | + |
| 20 | +## 🏗️ Current Implementation |
| 21 | + |
| 22 | +### ✅ What Works |
| 23 | + |
| 24 | +#### **Frontend (SvelteKit + TypeScript)** |
| 25 | +- 🎨 **Modern Dashboard**: Beautiful, responsive interface showcasing True Commons principles |
| 26 | +- 📊 **Network Statistics**: Real-time display of agents, resources, economic events, and value created |
| 27 | +- 🔍 **Resource Discovery**: Browse and search digital resources with metadata, tags, and licensing |
| 28 | +- 👥 **Agent Profiles**: View contributors, organizations, and their reputation/contributions |
| 29 | +- 📈 **Economic Events**: Track all ValueFlows activities (create, use, fork, collaborate) |
| 30 | +- 🎯 **True Commons Principles**: Visual representation of core concepts and values |
| 31 | + |
| 32 | +#### **Services & Architecture** |
| 33 | +- 🔌 **GraphQL Service**: Clean API layer for hREA (Holochain Resource-Event-Agent) integration |
| 34 | +- 🌐 **Holochain Client**: Service for connecting to Holochain conductor |
| 35 | +- 🧩 **True Commons Service**: Orchestrates GraphQL and Holochain for True Commons-specific functionality |
| 36 | +- 📝 **TypeScript Types**: Comprehensive interfaces extending hREA with True Commons concepts |
| 37 | +- ✨ **Demo Data**: Rich examples showing solar irrigation systems, water purification plans, and permaculture software |
| 38 | + |
| 39 | +#### **Developer Experience** |
| 40 | +- 🔧 **Type Safety**: Full TypeScript implementation with zero linting errors |
| 41 | +- 🎨 **TailwindCSS**: Modern, responsive styling with dark mode support |
| 42 | +- 📦 **Clean Architecture**: Modular services with clear separation of concerns |
| 43 | +- ✅ **Quality Assurance**: ESLint, Prettier, and svelte-check all passing |
| 44 | + |
| 45 | +### 🚧 What's In Progress |
| 46 | + |
| 47 | +- **hREA Backend**: GraphQL endpoint not yet configured (UI runs with demo data) |
| 48 | +- **Holochain Conductor**: Backend services not yet deployed |
| 49 | +- **Real Resource Operations**: Creating, forking, and collaborating on actual resources |
| 50 | +- **Agent Authentication**: Proper identity and reputation management |
| 51 | + |
| 52 | +## 🏛️ Architecture |
| 53 | + |
| 54 | +``` |
| 55 | +┌─────────────────────────────────────────────────────────────────┐ |
| 56 | +│ True Commons UI (SvelteKit) │ |
| 57 | +│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────┐│ |
| 58 | +│ │ Dashboard │ │ Resources │ │ Economic Events ││ |
| 59 | +│ │ - Network │ │ - Discovery │ │ - ValueFlows ││ |
| 60 | +│ │ - Stats │ │ - Metadata │ │ - Tracking ││ |
| 61 | +│ └─────────────────┘ └─────────────────┘ └─────────────────────┘│ |
| 62 | +└─────────────────────────────────────────────────────────────────┘ |
| 63 | + │ |
| 64 | + ┌─────────────────┼─────────────────┐ |
| 65 | + │ │ │ |
| 66 | + ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ |
| 67 | + │ GraphQL │ │ True Commons │ │ Holochain │ |
| 68 | + │ Service │ │ Service │ │ Client │ |
| 69 | + │ (hREA) │ │ (Orchestor) │ │ Service │ |
| 70 | + └─────────────┘ └──────────────┘ └─────────────┘ |
| 71 | + │ │ |
| 72 | + ┌─────────────┐ ┌─────────────┐ |
| 73 | + │ hREA │ │ Holochain │ |
| 74 | + │ Backend │ │ Conductor │ |
| 75 | + │ (GraphQL) │ │ (P2P) │ |
| 76 | + └─────────────┘ └─────────────┘ |
| 77 | +``` |
| 78 | + |
| 79 | +### Core Technologies |
| 80 | + |
| 81 | +- **Frontend**: SvelteKit, TypeScript, TailwindCSS |
| 82 | +- **Backend**: Holochain, hREA (Holochain Resource-Event-Agent) |
| 83 | +- **Economic Model**: ValueFlows ontology for resource tracking |
| 84 | +- **Data Layer**: GraphQL for hREA integration |
| 85 | +- **Architecture**: Microservices with clean separation of concerns |
| 86 | + |
| 87 | +## 🚀 Getting Started |
| 88 | + |
| 89 | +### Prerequisites |
| 90 | + |
| 91 | +Set up the [Holochain development environment](https://developer.holochain.org/docs/install/): |
8 | 92 |
|
9 | 93 | ```bash |
| 94 | +# Enter nix development shell |
10 | 95 | nix develop |
11 | | -bun install |
12 | 96 | ``` |
13 | 97 |
|
14 | | -**Run all the other instructions in this README from inside this nix shell, otherwise they won't work**. |
| 98 | +### Development Setup |
15 | 99 |
|
16 | | -## Running 2 agents |
17 | | - |
| 100 | +1. **Install Dependencies** |
18 | 101 | ```bash |
19 | | -bun run start |
20 | | -``` |
| 102 | +# Install project dependencies |
| 103 | +bun install |
21 | 104 |
|
22 | | -This will create a network of 2 nodes connected to each other and their respective UIs. |
23 | | -It will also bring up the Holochain Playground for advanced introspection of the conductors. |
| 105 | +# Install UI dependencies |
| 106 | +cd ui |
| 107 | +npm install |
| 108 | +``` |
24 | 109 |
|
25 | | -## Running the backend tests |
| 110 | +2. **Start Development Server** |
| 111 | +```bash |
| 112 | +# From the ui directory |
| 113 | +npm run dev |
| 114 | +``` |
26 | 115 |
|
| 116 | +3. **View True Commons Dashboard** |
27 | 117 | ```bash |
28 | | -bun run test |
| 118 | +# Open in browser |
| 119 | +open http://localhost:5173 |
29 | 120 | ``` |
30 | 121 |
|
31 | | -## Bootstrapping a network |
| 122 | +You'll see the True Commons dashboard with demo data showcasing: |
| 123 | +- Network statistics (47 agents, 156 resources, 892 economic events) |
| 124 | +- Example resources (Solar Irrigation, Water Purification, Permaculture Software) |
| 125 | +- Active agents (Bob Martinez, Lynn Chen, Community Gardens Collective) |
| 126 | +- True Commons principles visualization |
32 | 127 |
|
33 | | -Create a custom network of nodes connected to each other and their respective UIs with: |
| 128 | +### Quality Assurance |
34 | 129 |
|
35 | 130 | ```bash |
36 | | -AGENTS=3 bun run network |
| 131 | +# Run all checks (from ui directory) |
| 132 | +npm run lint # ESLint + Prettier |
| 133 | +npx svelte-check # TypeScript validation |
| 134 | +npm run format # Auto-fix formatting |
37 | 135 | ``` |
38 | 136 |
|
39 | | -Substitute the "3" for the number of nodes that you want to bootstrap in your network. |
40 | | -This will also bring up the Holochain Playground for advanced introspection of the conductors. |
| 137 | +## 📋 Next Steps |
| 138 | + |
| 139 | +### Phase 1: Backend Integration (Immediate) |
| 140 | +- [ ] **Deploy hREA Backend**: Set up GraphQL endpoint with ValueFlows schema |
| 141 | +- [ ] **Configure Holochain Conductor**: Connect P2P networking and DHT |
| 142 | +- [ ] **Connect Real Data**: Replace demo data with live hREA queries |
| 143 | +- [ ] **Agent Authentication**: Implement proper identity management |
41 | 144 |
|
42 | | -## Packaging |
| 145 | +### Phase 2: Core Functionality (Short-term) |
| 146 | +- [ ] **Resource Creation**: Enable users to create digital resources with metadata |
| 147 | +- [ ] **Resource Forking**: Implement derivation and attribution tracking |
| 148 | +- [ ] **Economic Events**: Record all ValueFlows activities (create, use, fork, transfer) |
| 149 | +- [ ] **Search & Discovery**: Tag-based and semantic resource discovery |
| 150 | +- [ ] **Reputation System**: Track contributions and build agent reputation |
43 | 151 |
|
44 | | -To package the web happ: |
45 | | -``` bash |
46 | | -bun run package |
| 152 | +### Phase 3: Advanced Features (Medium-term) |
| 153 | +- [ ] **Collaboration Sessions**: Real-time co-creation and editing |
| 154 | +- [ ] **Governance Mechanisms**: Embedded rules and community decision-making |
| 155 | +- [ ] **Value Distribution**: Economic models for rewarding contributors |
| 156 | +- [ ] **Cross-Network Integration**: Federate with other commons networks |
| 157 | +- [ ] **Mobile Applications**: Native apps for broader accessibility |
| 158 | + |
| 159 | +### Phase 4: Ecosystem Growth (Long-term) |
| 160 | +- [ ] **Domain-Specific Commons**: Agriculture, software, research, education |
| 161 | +- [ ] **Enterprise Integration**: APIs for organizations to contribute/consume |
| 162 | +- [ ] **Educational Resources**: Tutorials, documentation, case studies |
| 163 | +- [ ] **Policy Research**: Study impacts on innovation and collaboration |
| 164 | +- [ ] **Global Network**: Scale to thousands of participating communities |
| 165 | + |
| 166 | +## 📚 Key Documents |
| 167 | + |
| 168 | +- **[TRUE_COMMONS_ARCHITECTURE.md](./TRUE_COMMONS_ARCHITECTURE.md)**: Detailed technical architecture |
| 169 | +- **[ValueFlows Documentation](https://valueflo.ws/)**: Economic modeling foundation |
| 170 | +- **[hREA Project](https://github.com/holo-rea/holo-rea)**: Holochain Resource-Event-Agent implementation |
| 171 | +- **[Holochain Docs](https://developer.holochain.org/)**: Decentralized application platform |
| 172 | + |
| 173 | +## 🤝 Contributing |
| 174 | + |
| 175 | +This project demonstrates a new model for digital commons that could transform how we create, share, and govern digital resources. Contributions welcome! |
| 176 | + |
| 177 | +### Development Commands |
| 178 | + |
| 179 | +```bash |
| 180 | +# Development (from ui directory) |
| 181 | +npm run dev # Start SvelteKit dev server |
| 182 | +npm run build # Build for production |
| 183 | +npm run preview # Preview production build |
| 184 | + |
| 185 | +# Quality Assurance |
| 186 | +npm run lint # Check formatting and linting |
| 187 | +npm run format # Auto-fix code style |
| 188 | +npx svelte-check # TypeScript validation |
| 189 | + |
| 190 | +# Holochain (when backend is configured) |
| 191 | +hc app pack workdir/ # Package Holochain app |
| 192 | +bun run test # Run backend tests (from project root) |
47 | 193 | ``` |
48 | 194 |
|
49 | | -You'll have the `hello-world.webhapp` in `workdir`. This is what you should distribute so that the Holochain Launcher can install it. |
50 | | -You will also have its subcomponent `hello-world.happ` in the same folder`. |
| 195 | +## 🌱 Vision Impact |
51 | 196 |
|
52 | | -## Documentation |
| 197 | +True Commons represent a paradigm shift toward: |
| 198 | +- **Sustainable Innovation**: Resources improve through collaborative use |
| 199 | +- **Economic Justice**: Value flows to contributors, not extractors |
| 200 | +- **Technological Sovereignty**: Communities control their digital resources |
| 201 | +- **Global Collaboration**: Knowledge sharing transcends organizational boundaries |
| 202 | +- **Regenerative Systems**: Commons that grow stronger through participation |
53 | 203 |
|
54 | | -This repository is using these tools: |
55 | | -- [NPM Workspaces](https://docs.npmjs.com/cli/v7/using-npm/workspaces/): npm v7's built-in monorepo capabilities. |
56 | | -- [hc](https://github.com/holochain/holochain/tree/develop/crates/hc): Holochain CLI to easily manage Holochain development instances. |
57 | | -- [@holochain/tryorama](https://www.npmjs.com/package/@holochain/tryorama): test framework. |
58 | | -- [@holochain/client](https://www.npmjs.com/package/@holochain/client): client library to connect to Holochain from the UI. |
59 | | -- [hc playground](https://github.com/darksoil-studio/holochain-playground): introspection tooling to understand what's going on in the Holochain nodes. |
| 204 | +*Together, we're building the infrastructure for a more collaborative, equitable, and innovative digital future.* |
0 commit comments