A collection of example applications and tools demonstrating best practices for building offline-first applications with the Ditto SDK.
The Ditto Cookbook provides comprehensive examples of how to build real-world applications using Ditto's offline-first synchronization platform. Each example demonstrates proper architecture, testing, and implementation patterns that developers can learn from and adapt to their own projects.
# Clone the repository
git clone https://github.com/getditto/ditto-cookbook.git
cd ditto-cookbook
# Browse examples in apps/ and tools/ directoriesWant to contribute? See CONTRIBUTING.md for setup and guidelines.
Browse the apps/ directory for example applications organized by platform:
- Flutter: Cross-platform mobile and desktop applications
- [Future platforms]: Additional platforms coming soon
Each application includes:
- Complete source code with best practices
- Architecture documentation
- Comprehensive tests
- README with setup instructions
Browse the tools/ directory for development utilities and helper tools that demonstrate specific Ditto patterns or simplify common tasks.
- docs/ARCHITECTURE.md - Central architecture overview of all examples
- .claude/guides/architecture.md - Complete guide to architecture documentation
- Individual app ARCHITECTURE.md files - Detailed architecture for each example
For Learning:
- Study architecture documentation to understand design decisions
- Review code for implementation patterns
- Check tests for validation approaches
- Use as reference when building your own applications
For Development:
- Follow the patterns demonstrated in examples
- Adapt examples to your specific use cases
- Learn Ditto SDK best practices from working code
Run tests across all applications from the repository root:
./scripts/test-all.shThis command:
- Discovers all testable applications automatically
- Runs tests in parallel for faster execution
- Stops on first failure (fail-fast behavior)
- Works with Flutter apps now, extensible to other platforms
For platform-specific testing instructions, see the README in each platform directory (e.g., apps/flutter/README.md).
- Ditto Documentation: https://docs.ditto.live
- Ditto MCP Integration: https://docs.ditto.live/home/mcp-integration
- Ditto Support: https://support.ditto.live/
- Flutter Documentation: https://docs.flutter.dev
- Flutter MCP Server: https://dart.dev/tools/mcp-server
- CONTRIBUTING.md - Complete guide for contributors
- CLAUDE.md - Development guidelines
- docs/README.md - Documentation standards
We welcome contributions! To get started:
- Read CONTRIBUTING.md for detailed setup and guidelines
- Check out CLAUDE.md for development standards
- Browse existing examples to understand the patterns
- Submit your contribution following the workflow in CONTRIBUTING.md
- ✅ Follow development guidelines in CLAUDE.md
- ✅ Write showcase-quality code (clear, documented, educational)
- ✅ Target 80%+ test coverage
- ✅ Create/update architecture documentation
- ✅ Use English for all artifacts
- ✅ Ensure all checks pass
- Issue Tracker: GitHub Issues
- Discussions: GitHub Discussions
- Ditto Support: https://support.ditto.live/
This project is licensed under the MIT License - see the LICENSE file for details.
Built by the Ditto community to help developers build better offline-first applications.
Explore the examples and start building offline-first applications with Ditto!