A modern decentralized BJJ match scoring and publishing app via Nostr.
Choke lets you create, score, and publish Brazilian Jiu-Jitsu matches in real time using the Nostr protocol. Every scoring action is broadcast as a Nostr event, making match data open, verifiable, and accessible from any compatible dashboard.
- Real-time scoring — Takedowns (2pts), Guard Passes (3pts), Mount/Back Takes (4pts), Advantages, Penalties
- Countdown timer — Configurable match duration with second-by-second countdown
- Decentralized — All data published via Nostr (kind 31415 addressable events)
- No accounts needed — Nostr keypair generated on install
- Delegation without nsec sharing — Ephemeral match keys for team scoring
- Live dashboard — Web viewer for spectators and tournament projection (coming soon)
- Mobile: Flutter (Android & iOS)
- State Management: Riverpod
- Protocol: Nostr (nostr_tools)
- Security: flutter_secure_storage for key management
- Design: Custom BJJ-inspired theme
| Color | HEX | Usage |
|---|---|---|
| Navy Black | #121A2E |
Backgrounds |
| BJJ Green | #1BA34E |
Actions & CTAs |
| Championship Gold | #F5B800 |
Accents & Awards |
| Pure White | #FFFFFF |
Text & Cards |
See BJJ_STYLE_GUIDE.md for complete style guide.
- Flutter SDK (^3.11.0)
- Dart SDK (^3.11.0)
- Android Studio / Xcode (for mobile builds)
# Clone the repository
git clone https://github.com/grunch/choke.git
cd choke
# Install dependencies
flutter pub get
# Run code generation (if needed)
flutter pub run build_runner build
# Run the app
flutter run# Android
flutter build apk --release
flutter build appbundle --release
# iOS
flutter build ios --releaselib/
├── features/ # Feature-based modules
├── data/ # Models and repositories
├── services/ # Nostr and key management
└── shared/ # Theme, widgets, utilities
Choke uses Nostr addressable events for match data.
31415— Match events (addressable/replaceable)
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
See AGENTS.md for development conventions.
MIT License — see LICENSE file for details.
- GitHub: @grunch/choke
- Nostr:
npub14e8x7ggcvgy4j0wcsqh6kv4pfmtax7rkryenux9u7ytemjcuce7q9qpjtk
Built with 🥋 and ⚡ by the BJJ & Bitcoin community.
