Infrastructure visualization tool that converts YAML definitions to Graphviz diagrams.
Try it now: gorph.ai
The live version is fully functional and ready to use. Create infrastructure diagrams by writing YAML and see them rendered instantly in your browser.

# Build the CLI tool
go build -o gorph main.go
# Generate PNG diagram directly (requires Graphviz)
./gorph -input example_input/microservices.yml -png microservices.png
# Generate both DOT and PNG
./gorph -input example_input/webapp.yml -output webapp.dot -png webapp.png# Install dependencies
make setup
# Start the cross-platform web app
make web-frontend
# Open http://localhost:8081- Fast Processing - Native Go performance
- Multiple Formats - DOT, PNG, SVG output
- Scripting Friendly - Pipe-compatible design
- CI/CD Integration - Perfect for automation
- 3-Pane Interface - YAML editor, DOT output, live diagram
- Cross-Platform - Web, iOS, Android via React Native/Expo
- Real-Time Rendering - Instant feedback with WASM backend
- Template Library - Quick start with predefined architectures
- WebAssembly Backend - Go code compiled to WASM for client-side processing
- Strongly Typed - gRPC service definitions
- CRUD Operations - Full infrastructure management
- Multi-Language - Generate clients for any language
- Validation - Built-in error reporting
The example_input/ directory contains several example architectures:
simple.yml- Minimal 3-component architecture with different status stateswebapp.yml- Classic web application with CDN, load balancer, and databasemicroservices.yml- Complex microservices architecture with message queuesdata-pipeline.yml- Data processing pipeline with ETL jobs and ML componentsinfra.yml- Full production infrastructure exampledeploy.yml- CI/CD deployment pipeline
Pre-generated DOT and PNG files for all examples are available in example_output/.
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ CLI Tool │ │ Web App │ │ Protobuf API │
│ │ │ │ │ │
│ • Native Go │ │ • React Native │ │ • gRPC Services │
│ • Fast Pipeline │ │ • WASM Backend │ │ • Type Safety │
│ • Automation │◄────┤ • Visual Editor │ │ • Multi-Language│
│ • CI/CD │ │ • Cross-Platform │ │ • Enterprise │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌──────▼──────┐
│ Shared │
│ Core │
│ │
│ • YAML │
│ • DOT Gen │
│ • Styling │
│ • Validation│
└─────────────┘
Gorph uses WebAssembly to bring native Go performance to the browser. Here's how it works:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ React Native │ │ WASM Bridge │ │ Go WASM │
│ Frontend │ │ │ │ Module │
│ │ │ • Runtime Load │ │ │
│ • YAML Editor │◄───┤ • Base64 Encode │◄───┤ • YAML Parser │
│ • Real-time │ │ • Error Handle │ │ • DOT Generator │
│ • Validation │ │ • Mobile Bridge │ │ • Validation │
└─────────────────┘ └─────────────────┘ └─────────────────┘
-
Go Code Compilation: The core YAML processing logic is written in Go and compiled to WebAssembly using
GOOS=js GOARCH=wasm -
Client-Side Processing: Instead of sending YAML to a server, the WASM module runs directly in the browser, providing:
- Instant Feedback: No network latency for validation and DOT generation
- Privacy: YAML content never leaves the user's device
- Offline Capability: Works without internet connection
-
Cross-Platform Bridge:
- Web: Direct WASM execution via JavaScript
- Mobile: WebView bridge for iOS/Android compatibility
- Runtime Loading: WASM module loaded dynamically from base64-encoded data
-
Performance Benefits:
- Native Speed: Go performance in the browser
- Small Bundle: ~3.8MB WASM module
- Shared Logic: Same codebase as CLI tool
The Go WASM module provides these functions:
yamlToDot(yaml: string): Convert YAML to DOT formatvalidateYaml(yaml: string): Validate YAML syntax and structuregetTemplates(): Retrieve built-in template library
┌─────────────┬─────────────┐
│ │ DOT Output │
│ YAML Editor ├─────────────┤
│ │ Live │
│ │ Diagram │
└─────────────┴─────────────┘
┌─────────────────────────┐
│ [YAML] [DOT] [DIAGRAM] │ ← Tabs
├─────────────────────────┤
│ │
│ Active Tab Content │
│ │
│ │
└─────────────────────────┘
Gorph now includes a visual Builder that makes it easy to create infrastructure diagrams without knowing the YAML syntax:
- Visual Entity Creation: Add infrastructure components using forms and dropdowns
- Smart Connection Builder: Create relationships between entities with validation
- Real-time YAML Generation: Changes in the Builder automatically update the YAML
- Template Library: Start with predefined templates for common patterns
- Live Validation: Get immediate feedback on errors and suggestions
- Click the "BUILDER" tab in the interface
- Use the "Entities" section to add infrastructure components
- Use the "Connections" section to define relationships
- Watch the YAML update in real-time
- Switch to "DIAGRAM" to see your visualization
- USER_FACING: Web browsers, mobile apps, APIs
- FRONTEND: React apps, static sites, web servers
- BACKEND: APIs, microservices, server applications
- DATABASE: PostgreSQL, Redis, MongoDB, etc.
- NETWORK: Load balancers, CDNs, API gateways
- INFRASTRUCTURE: Kubernetes, Docker, cloud services
- CI/CD: Jenkins, GitHub Actions, deployment tools
- And many more...
┌─────────────────────────────────────┐
│ 🎛️ Builder Mode │
├─────────────────────────────────────┤
│ ➕ Add Entity │
│ 🔗 Add Connection │
│ 📋 Templates │
│ ⚙️ Settings │
└─────────────────────────────────────┘
For advanced users or custom configurations, see the complete YAML Schema Documentation which includes:
- Complete field reference with examples
- Available categories and connection types
- Best practices for complex diagrams
- Validation rules and troubleshooting
- Advanced features like custom attributes and tags
Gorph includes a comprehensive protobuf API specification for building integrations, web UIs, and other tools. The API provides:
- Strongly-typed data models for entities, connections, and infrastructure
- gRPC service definitions with full CRUD operations
- Built-in validation and error reporting
- Diagram generation in multiple formats (DOT, PNG, SVG, PDF)
- YAML import/export for compatibility with existing workflows
See api/README.md for complete API documentation.
// Create an entity using the protobuf API
entity := &gorph.Entity{
Id: "web-server",
Category: gorph.Category_CATEGORY_FRONTEND,
Description: "Nginx web server",
Status: gorph.Status_STATUS_HEALTHY,
Owner: "frontend-team",
Environment: "production",
}# Complete development setup
make dev
# Generate protobuf code
make proto
# Build CLI tool
make build
# Generate all examples
make examples
# Show available targets
make helpgorph/
├── 📄 main.go # CLI application
├── 📄 style.yml # Visual styling config
├── 📁 example_input/ # Example YAML files
├── 📁 example_output/ # Generated diagrams
├── 📁 api/ # Protobuf API specification
│ ├── 📄 gorph.proto # Protocol buffer definitions
│ ├── 📄 README.md # API documentation
│ └── 📄 SPECIFICATION.md # Technical specification
└── 📁 web/ # Web application
├── 📁 backend/ # Go WASM backend
│ ├── 📄 main.go # WASM module
│ └── 📄 build.sh # Build script
└── 📁 frontend/gorph-app/ # React Native frontend
├── 📁 src/components/ # React components
├── 📁 public/ # WASM files
└── 📄 App.tsx # Main application
- Direct Binary - Single executable
- Package Managers - Homebrew, apt, etc.
- Container Images - Docker/Kubernetes
- Static Hosting - Netlify, Vercel, GitHub Pages
- Mobile Apps - iOS App Store, Google Play
- Self-Hosted - Any web server
- gRPC Servers - Cloud Run, Kubernetes
- Serverless - AWS Lambda, Vercel Functions
- Enterprise - On-premise deployment
- Architecture Reviews - Visual system overviews
- Onboarding - New team member orientation
- Compliance - System documentation requirements
- Design Phase - Architecture planning and validation
- Code Reviews - Infrastructure change visualization
- Deployment - Pipeline and environment documentation
- Incident Response - System relationship mapping
- Capacity Planning - Resource dependency analysis
- Monitoring - Service health visualization
- CMDB Integration - Configuration management
- Service Catalog - Self-service portals
- Cost Analysis - Resource ownership tracking
MIT License - see LICENSE file for details.
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
- Documentation: See individual README files in each directory
- Examples: Check
example_input/for reference implementations - API Reference: See
api/README.mdfor protobuf documentation - Web App Guide: See
web/README.mdfor development setup