FlowGroove is a real-time repertoire and setlist manager for cover bands and gigging musicians. It gives the band one source of truth for songs, setlists, notes, keys, BPM, and rehearsal-ready tools, with instant sync and offline support.
Try it live: https://flowgroove.app
This repository also contains the Hugo marketing site, a Telegram support bot, Firebase functions, the active .codex/ internal workspace, and an oldarchive/ area for legacy materials.
- Open flowgroove.app
- Sign up with Google or email
- Create a band and add your first song
- Invite bandmates; updates sync automatically
This is the safe path for previewing the Hugo site and Flutter app together:
make -f Makefile.hugo deploy-allURLs:
- Landing page:
https://berlogabob.github.io/flutter-FlowGroove-app/ - Flutter app:
https://berlogabob.github.io/flutter-FlowGroove-app/app/
This path publishes only the Flutter app and overwrites docs/ root output:
make deploy-testUse it only when you intentionally want a Flutter-only publish.
make releaseBuilds APK + AAB, tags the current version, and attempts to create a GitHub Release.
- Prepare local non-tracked env sources:
cp .env.example .env
cp .ftp-env.example .ftp-env # optional FTP-only override- Replace all
REPLACE_ME_*placeholders with real local values. - Run the production deploy:
make deploy-stablemake deploy-stable runs a preflight gate before any backup or upload. It validates local env files, blocks tracked web/config.js, and refuses deploys when secret-bearing archive/backup paths are staged.
Deploy target:
- Hugo to
https://flowgroove.app/ - Flutter web to
https://flowgroove.app/app/
- Shared song library with metadata, links, unique IDs, and structure editing
- Band management with membership and invite/join flows
- Drag-and-drop setlists with per-gig overrides for key, BPM, notes, and order
- Offline-first data flow with Hive-backed local caching
- Firebase Auth, Firestore, and Storage integration
- CSV import/export and PDF export
- Responsive desktop/mobile layout
- Metronome with custom time signatures, accent patterns, presets, and transport controls
- Tuner with generate/listen modes and YIN-based pitch detection
- Regional instruments and multiple tunings
- Custom in-session tuning editor
- Auto/manual note detection
- Stage mode overlay
- Haptic feedback and A4 calibration
- Wakelock during tool usage
- Demo account quick login
- Demo mode banner and read-only behavior
- Role-aware permission helpers
- Song autocomplete and BPM lookup provider layer
- Telegram support bot codebase included in
telegram_bot/
- Flutter web with Android/iOS-ready build paths
- Firebase Auth, Firestore, Storage, and Functions
- Hive offline storage
- Riverpod state management
- go_router navigation
- PDF and printing support
- Audio player, metronome, and tuner tooling
lib/- Flutter application codetest/- Flutter test suitesite/- Hugo landing page sourcedocs/- generated GitHub Pages output plus project reportstelegram_bot/- Telegram support botfunctions/- Firebase Functions source.codex/- active internal workspace for agents, rules, memory, tasks, and session controlmemory/- protected project memory bank retained at the repo rootoldarchive/- archived Qwen context, exports, reports, snapshots, and legacy support files
lib/: 240 Dart filestest/: 97 Dart test filessite/: 247 filesdocs/: 127 filestelegram_bot/: 14 files
| Command | Purpose | Notes |
|---|---|---|
make -f Makefile.hugo serve |
Run Hugo locally | Local landing-page development |
make -f Makefile.hugo deploy-all |
GitHub Pages dual deploy | Safe preview path |
make deploy-test |
Flutter-only GitHub Pages publish | Overwrites docs/ root |
make deploy-stable |
Production FTP deploy | Hugo root + Flutter /app/ |
make build-android |
Build APK | Demo config by default |
make release |
Build APK + AAB + release flow | Uses current git branch/tag |
flutter test |
Run the full Flutter suite | Not run in full during this audit pass |
bash test/security/git_audit_test.sh |
Security audit | Passes with warnings; history still needs periodic review |
- README.md
- ARCHITECTURE.md
- DEPLOYMENT_GUIDE.md
- docs/README.md
- docs/project-audit-2026-04-24.md
- docs/PLATFORMS.md
- MAKEFILE_GUIDE.md
- CHANGELOG.md
- docs/fix-verification-report.md
- docs/performance-fixes-summary.md
- docs/tuner-debug-report.md
- docs/tuner-testing-summary.md
- docs/tuner-ux-enhancement-summary.md
- Spotify integration for automatic BPM and key lookup
- Smart song auto-fill
- Premium features
- Native app store releases
- Gig calendar integration
Historical audit snapshot before the April 24, 2026 FTP hardening pass:
flutter test test/config/: 62 passedbash test/security/git_audit_test.sh: failed at that time on trackedweb/config.jsflutter analyze: 4411 issues across the whole repo before archival cleanupflutter analyze lib test: 3996 issues across live app/test code, dominated by lint backlog
See the dated audit report for details and prioritized findings. Legacy archived material now lives under oldarchive/ and is excluded from analyzer scope.
- Firebase configuration is runtime-injected for web and passed via compile-time defines for non-web builds
- Web runtime config is public-only: generated
web/config.jsshould contain onlyFIREBASE_API_KEYand optional proxy URLs - Spotify web access must go through
SPOTIFY_PROXY_URL; direct client-credential mode is intentionally disabled on web - Client-side Telegram Bot API methods are disabled; privileged Telegram actions belong in
functions/or other backend paths - Non-web builds no longer read
assets/env.json; use compile-time--dart-defineinputs instead - Client-side RapidAPI track analysis is disabled until it moves behind a backend proxy
web/config.jsis a generated artifact and should stay untracked- Demo Firebase keys are present in tracked demo config files
- Android/AAB build targets source demo or local
.envvalues through scripts/build-mobile-with-env.sh - If FTP credentials were ever stored in tracked files, rotate them before the next real production deploy
FlowGroove is in active development. If the app saves your band time, you can support continued work through Ko-fi:
MIT License. See LICENSE.
- Version:
0.14.0+203 - Last updated: June 16, 2026
- Current project state: active development with
.codex/as the canonical internal layer andoldarchive/for legacy context