This document contains the comprehensive technical documentation, architecture details, and implementation guides for GraphDone.
Traditional project management tools organize work in linear lists or hierarchical trees. GraphDone models work as it actually exists - a network of interconnected outcomes, dependencies, and relationships.
graph TD
subgraph "Traditional PM"
A1[Manager] --> B1[Task 1]
A1 --> B2[Task 2]
A1 --> B3[Task 3]
B1 --> C1[Subtask]
B2 --> C2[Subtask]
end
subgraph "GraphDone"
O1[User Auth]
O2[API Design]
O3[Database]
O4[Frontend]
M1[Launch MVP]
O3 -.-> O1
O2 -.-> O3
O1 -.-> O4
O2 -.-> O4
O1 --> M1
O2 --> M1
O3 --> M1
O4 --> M1
end
Work is organized as interconnected graphs at different levels of detail. Users can navigate from high-level strategic goals down through projects and features to individual tasks, with the system dynamically showing appropriate detail levels.
graph TD
subgraph "Strategic Level"
S1[Company Goals]
S2[Product Vision]
S3[Market Expansion]
end
subgraph "Project Level"
P1[User Authentication]
P2[Mobile App]
P3[Analytics Dashboard]
P4[API Platform]
end
subgraph "Feature Level"
F1[Login System]
F2[Registration Flow]
F3[Touch Interface]
F4[Offline Mode]
end
subgraph "Task Level"
T1[OAuth Integration]
T2[Password Reset]
T3[Gesture Recognition]
T4[Data Sync]
end
S1 --> P1
S1 --> P4
S2 --> P2
S3 --> P3
P1 --> F1
P1 --> F2
P2 --> F3
P2 --> F4
F1 --> T1
F2 --> T2
F3 --> T3
F4 --> T4
Ideas can migrate inward through community validation, creating a natural innovation pipeline without requiring executive approval.
sequenceDiagram
participant U as User
participant I as Idea/Node
participant C as Community
participant S as System
participant R as Resources
U->>I: Create new idea
Note over I: Starts at periphery<br/>Priority = 0.1
I->>C: Visible to community
C->>I: Anonymous rating & boosting
alt Community validates idea
C->>S: Positive feedback
S->>I: Increase community priority
Note over I: Migrates inward<br/>Priority = 0.4
alt Continued validation
C->>S: More positive feedback
S->>I: Further priority increase
Note over I: Moves to inner sphere<br/>Priority = 0.8
S->>R: Allocate significant resources
end
else Community rejects idea
C->>S: Negative/no feedback
Note over I: Remains at periphery<br/>Gets minimal resources
end
GraphDone treats AI agents as first-class citizens in the collaboration graph, not as separate tools or automations.
graph LR
subgraph "Collaboration Graph"
H1[👤 Human<br/>Designer]
H2[👤 Human<br/>Developer]
A1[🤖 AI Agent<br/>Code Review]
A2[🤖 AI Agent<br/>Testing]
N1[Design System]
N2[Component Library]
N3[User Testing]
N4[Performance Optimization]
H1 --> N1
H1 --> N2
H2 --> N2
A1 --> N2
H2 --> N4
A2 --> N4
N2 --> N3
A2 --> N3
N1 -.-> N2
N2 -.-> N4
end
Each node has three priority dimensions that combine into a computed priority determining its visibility and resource allocation across the graph hierarchy.
graph TB
subgraph "Priority Calculation"
E[Executive Priority<br/>0.0 - 1.0<br/>Weight: 40%]
I[Individual Priority<br/>0.0 - 1.0<br/>Weight: 30%]
C[Community Priority<br/>0.0 - 1.0<br/>Weight: 30%]
E --> CALC[Priority Calculator]
I --> CALC
C --> CALC
CALC --> CP[Computed Priority<br/>0.0 - 1.0]
CP --> VIS[Graph Visibility<br/>& Resource Allocation]
end
subgraph "Resource Allocation"
VIS --> RA{Priority Level}
RA -->|0.8 - 1.0| FR[High Visibility<br/>Full resources<br/>Featured in overview]
RA -->|0.5 - 0.8| SR[Standard Visibility<br/>Regular resources<br/>Shown in project view]
RA -->|0.2 - 0.5| LR[Lower Visibility<br/>Background resources<br/>Detailed view only]
RA -->|0.0 - 0.2| MR[Minimal Visibility<br/>Idle cycles<br/>Hidden by default]
end
GraphDone is built as a distributed, real-time system with clear separation between graph engine, API layer, and presentation layers.
graph TB
subgraph "Presentation Layer"
WEB[Web Application<br/>React + D3.js]
MOBILE[Mobile App<br/>React Native]
API_CLIENT[AI Agent SDK<br/>REST + GraphQL]
end
subgraph "API Layer"
GQL[GraphQL Server<br/>Apollo Server]
WS[WebSocket Server<br/>Real-time subscriptions]
REST[REST Endpoints<br/>Agent integration]
end
subgraph "Business Logic"
CORE[Graph Engine<br/>@graphdone/core]
PRIORITY[Priority Calculator]
ALGO[Graph Algorithms<br/>Path finding, cycles]
end
subgraph "Data Layer"
DB[(PostgreSQL<br/>Graph relationships)]
CACHE[(Redis<br/>Session & cache)]
SEARCH[Search Index<br/>Node discovery]
end
WEB --> GQL
MOBILE --> GQL
API_CLIENT --> REST
API_CLIENT --> GQL
GQL --> CORE
WS --> CORE
REST --> CORE
CORE --> PRIORITY
CORE --> ALGO
CORE --> DB
GQL -.-> WS
CORE -.-> CACHE
DB -.-> SEARCH
Real-time updates flow through the system ensuring all participants see changes immediately.
sequenceDiagram
participant UI as Web/Mobile UI
participant GQL as GraphQL Server
participant CORE as Graph Engine
participant DB as Database
participant WS as WebSocket
participant AGENT as AI Agent
UI->>GQL: Create/Update Node
GQL->>CORE: Process graph operation
CORE->>CORE: Calculate new priorities
CORE->>CORE: Update positions
CORE->>DB: Persist changes
CORE->>WS: Broadcast updates
WS->>UI: Real-time position update
WS->>AGENT: Notify of priority change
AGENT->>GQL: Query updated graph state
GQL->>CORE: Fetch current data
CORE->>AGENT: Return graph snapshot
Note over AGENT: AI processes changes<br/>and plans next actions
graphdone/
├── packages/
│ ├── core/ # Graph engine and algorithms
│ ├── server/ # GraphQL API server
│ ├── web/ # React web application
│ └── agent-sdk/ # SDK for AI agents (planned)
├── docs/
│ ├── api/ # API documentation
│ ├── guides/ # User and developer guides
│ ├── examples/ # Integration examples
│ └── deployment/ # Deployment guides
├── scripts/ # Development and deployment scripts
├── .github/workflows/ # CI/CD pipelines
└── deployment/ # Docker and deployment files
The system is built with modern, scalable technologies optimized for real-time collaboration and graph operations.
graph TB
subgraph "Frontend Technologies"
REACT[React 18 + TypeScript<br/>Component-based UI]
D3[D3.js<br/>Graph visualization]
APOLLO_CLIENT[Apollo Client<br/>GraphQL + caching]
TAILWIND[Tailwind CSS<br/>Utility-first styling]
VITE[Vite<br/>Fast development]
end
subgraph "Backend Technologies"
NODE[Node.js + TypeScript<br/>Runtime environment]
APOLLO_SERVER[Apollo Server<br/>GraphQL API]
PRISMA[Prisma<br/>Database ORM]
EXPRESS[Express<br/>HTTP server]
GRAPHQL_WS[GraphQL-WS<br/>Real-time subscriptions]
end
subgraph "Data Technologies"
POSTGRES[(PostgreSQL<br/>Primary database)]
REDIS[(Redis<br/>Caching layer)]
GRAPH_STRUCT[Custom Graph Engine<br/>In-memory operations]
end
subgraph "DevOps Technologies"
DOCKER[Docker<br/>Containerization]
GITHUB_ACTIONS[GitHub Actions<br/>CI/CD pipeline]
TURBO[Turbo<br/>Monorepo builds]
VITEST[Vitest<br/>Testing framework]
end
REACT --> APOLLO_CLIENT
APOLLO_CLIENT --> APOLLO_SERVER
APOLLO_SERVER --> PRISMA
PRISMA --> POSTGRES
NODE --> EXPRESS
EXPRESS --> APOLLO_SERVER
APOLLO_SERVER --> GRAPH_STRUCT
GRAPH_STRUCT --> REDIS
The heart of GraphDone is a custom graph engine optimized for collaborative workflows and real-time updates.
classDiagram
class Graph {
-nodes: Map~NodeId, Node~
-edges: Map~EdgeId, Edge~
-adjacencyList: Map~NodeId, Set~NodeId~~
+addNode(params) Node
+removeNode(nodeId) boolean
+addEdge(params) Edge
+findPath(start, end) NodeId[]
+detectCycles() NodeId[][]
+getNodesByPriority(threshold) Node[]
}
class Node {
+id: NodeId
+type: NodeType
+title: string
+priority: Priority
+position: GraphPosition
+status: NodeStatus
+contributors: ContributorId[]
+dependencies: NodeId[]
+updatePriority(updates)
+addContributor(id)
+addDependency(id)
}
class Priority {
+executive: number
+individual: number
+community: number
+computed: number
}
class PriorityCalculator {
-executiveWeight: 0.4
-individualWeight: 0.3
-communityWeight: 0.3
+calculate(priority) Priority
+migratePriority(current, boost) Priority
+calculateVisibilityFromPriority(priority) number
}
Graph --> Node
Graph --> Edge
Node --> Priority
PriorityCalculator --> Priority
GraphDone maintains real-time synchronization across all clients using WebSocket subscriptions and optimistic updates.
sequenceDiagram
participant UI1 as User Interface 1
participant UI2 as User Interface 2
participant GQL as GraphQL Server
participant GRAPH as Graph Engine
participant DB as Database
participant WS as WebSocket Hub
Note over UI1,WS: Initial connection setup
UI1->>WS: Subscribe to graph updates
UI2->>WS: Subscribe to graph updates
Note over UI1,WS: User creates/updates node
UI1->>GQL: Mutation: updateNodePriority
Note over UI1: Optimistic update<br/>immediate UI feedback
GQL->>GRAPH: Process priority update
GRAPH->>GRAPH: Recalculate priorities
GRAPH->>GRAPH: Update graph positions
GRAPH->>DB: Persist changes
GRAPH->>WS: Broadcast priorityChanged event
WS->>UI1: Confirm update
WS->>UI2: Real-time priority update
Note over UI2: Node updates visibility<br/>and position in graph
The API is designed around graph operations and real-time collaboration patterns.
erDiagram
Node ||--o{ NodeContributor : "has"
Node ||--o{ Edge : "source"
Node ||--o{ Edge : "target"
Node ||--|| Priority : "has"
Node ||--|| GraphPosition : "positioned_at"
Contributor ||--o{ NodeContributor : "participates"
Node {
ID id PK
NodeType type
string title
string description
NodeStatus status
JSON metadata
DateTime createdAt
DateTime updatedAt
}
Priority {
float executive
float individual
float community
float computed
}
GraphPosition {
float x
float y
int level
string parentId
}
Edge {
ID id PK
ID sourceId FK
ID targetId FK
EdgeType type
float weight
JSON metadata
}
Contributor {
ID id PK
ContributorType type
string name
string email
JSON capabilities
}
GraphDone includes a comprehensive setup script that handles all prerequisites and configuration.
# Clone and setup
git clone https://github.com/GraphDone/GraphDone-Core.git
cd graphdone
./tools/setup.shThe setup script will:
- ✅ Check prerequisites (Node.js 18+, Docker, npm)
- 📦 Install all dependencies with workspace configuration
- 🔧 Create environment files from examples
- 🐘 Start PostgreSQL and Redis databases
- 🗄️ Run database migrations and generate Prisma client
- 🏗️ Build all packages
graph LR
START[./tools/setup.sh] --> DEV[./tools/run.sh]
DEV --> TEST[./tools/test.sh]
TEST --> BUILD[./tools/build.sh]
BUILD --> DEPLOY[./tools/deploy.sh]
DEV -.-> CODE[Code Changes]
CODE -.-> DEV
subgraph "Available Commands"
RUN1[./tools/run.sh --docker-dev]
RUN2[./tools/test.sh --coverage]
RUN3[./tools/test.sh --package core]
BUILD1[./tools/build.sh --production]
end
Start all development servers:
./tools/run.shThis provides:
- 🌐 Web Application: http://localhost:3000
- 🔗 GraphQL API: http://localhost:4000/graphql
- 📊 GraphQL Playground: Interactive API explorer
- 🔌 WebSocket Subscriptions: ws://localhost:4000/graphql
- ❤️ Health Check: http://localhost:4000/health
Verify everything works with these quick tests:
# Test API health
curl http://localhost:4000/health
# Create a test node
curl -X POST http://localhost:4000/graphql \
-H "Content-Type: application/json" \
-d '{"query": "mutation { createNode(input: { type: TASK, title: \"My First Node\" }) { id title priority { computed } } }"}'
# Query all nodes
curl -X POST http://localhost:4000/graphql \
-H "Content-Type: application/json" \
-d '{"query": "{ nodes { id title type priority { computed } position { radius } } }"}'For containerized development:
# Full Docker development environment
./tools/run.sh --docker-dev
# Production-like environment
./tools/run.sh --docker
# Individual service testing
docker-compose up -d postgres # Database onlygraph TB
subgraph "IDE Integration"
VSCODE[VS Code<br/>TypeScript, ESLint]
EXTENSIONS[Recommended Extensions<br/>Prisma, GraphQL, React]
end
subgraph "Testing Framework"
VITEST[Vitest<br/>Unit & Integration]
COVERAGE[Coverage Reports<br/>All packages]
E2E[E2E Testing<br/>Playwright ready]
end
subgraph "Development Server"
HMR[Hot Module Reload<br/>Instant updates]
TYPESCRIPT[TypeScript<br/>Real-time checking]
LINTING[ESLint + Prettier<br/>Code quality]
end
subgraph "Database Tools"
PRISMA_STUDIO[Prisma Studio<br/>Database GUI]
MIGRATIONS[Auto Migrations<br/>Schema changes]
SEEDING[Data Seeding<br/>Test data]
end
- Nodes: Outcomes, tasks, milestones, contributors (human and AI)
- Edges: Dependencies, relationships, priorities
- Hierarchy: Multi-level positioning with dynamic levels of detail
- Executive flags: Strategic priority signals from leadership
- Individual priority: Personal background priority assignment
- Democratic weighting: Anonymous community rating and boosting
- Migration algorithms: Ideas gain visibility and resources based on validation
- Graph API: Agents read/write graph state through standard endpoints
- Event system: Real-time notifications for graph changes
- Resource allocation: Agents can request compute resources based on node priority
- Collaborative protocols: Standard patterns for human-AI coordination
type Node {
id: ID!
type: NodeType!
title: String!
description: String
position: GraphPosition!
priority: Priority!
contributors: [Contributor!]!
dependencies: [Node!]!
status: NodeStatus!
}
type Priority {
executive: Float
individual: Float
community: Float
computed: Float
}import { GraphDoneAgent } from '@graphdone/agent-sdk';
const agent = new GraphDoneAgent({
apiKey: process.env.GRAPHDONE_API_KEY,
graphUrl: 'https://api.graphdone.com'
});
// Listen for new high-priority outcomes
agent.subscribe('node.priorityChanged', async (node) => {
if (node.priority.computed > 0.8) {
await agent.requestResources({
nodeId: node.id,
resourceType: 'gpu',
duration: '30m'
});
}
});- Core Graph Engine: Full implementation with priority calculation, pathfinding, cycle detection
- GraphQL API: Complete server with real-time subscriptions
- Database Layer: PostgreSQL with Prisma ORM and proper relationships
- Web Application: React + D3.js visualization with responsive design
- Development Infrastructure: Monorepo, testing, Docker, CI/CD
- Documentation: Comprehensive guides with Mermaid diagrams
# Get started in 30 seconds
git clone https://github.com/GraphDone/GraphDone-Core.git
cd graphdone
./tools/setup.sh
./tools/run.shVisit http://localhost:3000 to see the working application!
Foundation (Completed) ✅
- Core graph engine with priority calculation and algorithms
- GraphQL API server with real-time subscriptions
- React web application with D3.js visualization
- Development infrastructure and CI/CD
Alpha Release
- Mobile application for touch-first interaction
- AI Agent SDK for first-class agent integration
- Real-time collaboration polish and optimization
Beta Release
- Advanced analytics and insights dashboard
- Enterprise features and authentication
- Performance scaling for large graphs
Production Release
- Security hardening and audit compliance
- Production deployment and monitoring
- Third-party integrations and marketplace
GraphDone is built for and by teams who think differently. We welcome contributions that advance our mission of democratic, graph-native coordination.
- Graph Algorithms: Enhance priority propagation and conflict resolution
- Mobile Experience: Perfect touch interactions for 3D graph manipulation
- AI Agent Integration: Build the SDK and example agents
- Accessibility: Make graph visualization work for screen readers
- Performance: Optimize for large graphs (1000+ nodes)
- Neurodiversity Support: Design patterns for different cognitive styles
# Set up development environment
./tools/setup.sh
# Make your changes
git checkout -b feature/your-improvement
# Test your changes
./tools/test.sh --coverage
# Build and verify
./tools/build.sh
# Submit your contribution
git push origin feature/your-improvement
# Open a Pull Request with clear description# Using Docker Compose
docker-compose -f docker-compose.prod.yml up -d
# Using Kubernetes
kubectl apply -f tools/deployment/k8s/- AWS: ECS/EKS deployment guides in
docs/deployment/aws/ - GCP: GKE deployment guides in
docs/deployment/gcp/ - Azure: AKS deployment guides in
docs/deployment/azure/
- Basic graph visualization
- Mobile-responsive interface
- Real-time collaboration
- Agent SDK foundation
- Democratic prioritization
- Spherical coordinate system
- Anonymous rating system
- Advanced graph algorithms
- Agent marketplace foundation
- Enterprise authentication
- Full agent ecosystem
- Advanced analytics
- Enterprise features
- Third-party integrations
- Performance optimization