Contributing to GoatDB
Your contributions power the next generation of collaborative applications. Every feature you add, bug you fix, and optimization you make helps developers worldwide build better real-time, offline-capable apps.
Check out our Good First Issues to find your first contribution opportunity.
What You're Building
Simplicity for Complex Problems: Your code eliminates the complexity of custom sync servers, conflict resolution, and state management that traditionally plague collaborative apps.
Cutting-Edge Distributed Systems: Work on Bloom filter synchronization, ephemeral CRDTs, and cryptographically signed commit graphs—techniques pushing the boundaries of database design.
Cross-Runtime Innovation: Build features that work identically across Deno, Node.js, and browsers with a single TypeScript codebase.
Getting Started
Prerequisites: Deno v2.4+ (install here) and Node.js v24+ for cross-runtime testing.
AI-Enhanced Development: GoatDB is optimized for AI-assisted development with Claude Code, Cursor, and ChunkHound.
Setup:
git clone https://github.com/goatplatform/goatdb.git
cd goatdb
# Verify cross-platform functionality
deno task test # Tests across Deno, Node.js, and browsers
deno task bench # Performance validation
deno task build # Compile optimizations
# Documentation site
deno task docs:serve # Docusaurus docs server
Testing & Performance
Cross-Platform Testing: Ensure your changes work identically across all runtimes:
# All platforms
deno task test
# Specific environments
deno task test --runtime=browser
deno task test --runtime=node
deno task test --suite=DB --test="conflict resolution"
# Debug mode
deno task test --debug --deno-inspect-brk
Performance Validation: Maintain GoatDB's real-time performance characteristics:
# Full benchmark suite
deno task bench
# Specific scenarios
deno task bench --benchmark="GoatDB Sync Protocol"
deno task bench --runtime=browser --headless
Features: Single-process debugging, real-world metrics (P95, P99), source map support across all platforms.
Run deno task test && deno task bench before submitting to ensure no regressions.
Code Standards
- Formatting —
deno fmt(2-space indent, single quotes, 80-char line width) - Naming —
camelCasefor variables/functions,PascalCasefor classes,_prefixfor private fields - Imports — explicit
.tsextensions required - Cross-platform — code must work identically across Deno, Node.js, and browsers
Pull Request Checklist
- Descriptive title explaining your change's impact
- All tests pass:
deno task testacross all platforms - Performance maintained:
deno task benchshows no regressions - Documentation updated for API changes
Issues & Ideas
Bug Reports: Include GoatDB version, target runtime, reproduction steps, and error messages.
Feature Requests: Check existing issues first, then use our feature request template.
Security: Email security issues privately to ofri [at] goatdb [dot] com.
Community
- Discord - Real-time chat and collaboration
- GitHub Discussions - Technical conversations and proposals
- Reddit - Share projects and get feedback
- GitHub Issues - Bug reports and feature coordination
License
All contributions are licensed under the MIT license.
Ready to contribute? Your first pull request is just a fork away.