Analyze. Scout. Improve.
OpenVolleyScout is a local-first volleyball scouting and analysis application for match setup, live rally recording, DataVolley import/export, tactical-system editing, video review, team data study, and match reporting.
The application runs in the browser and can also be packaged as a desktop app
with Tauri. Match projects, team archives, rosters, competition names, and
video-analysis metadata are persisted on the device with IndexedDB. Locale and
tactical-system editor state are stored in localStorage.
Live demo: https://napo.github.io/openvolleyscout
The project is under active development. Some workflows are complete enough to use as foundations, while analysis and advanced tactical automation are still evolving.
Download packaged builds from the latest GitHub release for Windows, macOS (Apple Silicon and Intel), Linux, and Android. Available artifacts can vary by release and platform.
The macOS builds are not signed or notarized by Apple: this is a free software project without an Apple Developer account. macOS will therefore warn that the app "cannot be opened" or "is damaged". Whether to run it is your decision. If you trust the file downloaded from the official release page, you can open it in one of these ways:
- right-click the app → Open, then confirm;
- System Settings → Privacy & Security → Open Anyway after the first blocked attempt;
- from a terminal, remove the quarantine flag:
xattr -dr com.apple.quarantine /Applications/OpenVolleyScout.app
Automatic updates keep working afterwards.
No installation needed - use the live demo directly in any modern browser.
The web version is also an installable offline app (PWA): add it to the home screen of a tablet or phone and it starts without network, which is handy in a gym. New versions are offered with an "Update now" button instead of reloading in the middle of a rally.
There is no App Store or signed iOS app. Open the web version in Safari and choose Share → Add to Home Screen: it then starts like an app and works offline.
See all releases for older versions.
- Create and manage archived teams and rosters, also by jersey number only
(quick entry such as
1-12 L13, names added later on the Teams page and copied into saved matches); players can join a match roster at set start or during a substitution. - Browse the team archive in a searchable, sortable table with a separate row of actions for each team. Create or edit in a dedicated full-width form; Save commits team/roster changes and synchronizes names, while Cancel discards pending edits. Returning preserves the list's search, sort and scroll position.
- Import and export rosters in JSON/CSV formats.
- Create match projects from competition metadata, selected teams, and match-specific rosters.
- Configure match-level scouting settings such as set targets and tie-break targets.
- Start sets from selected lineups and serving team.
- Record rally events, touches, points, substitutions, timeouts, score corrections, undo, set endings, and match endings through an event log.
- Choose how much detail to enter while scouting live, at any time: Court (large touch buttons, draw zones and ball directions), Detailed (the full DataVolley input) or Tags (buttons only, also while watching the video). The first time, the app suggests the level that suits the device.
- Resume the match being scouted after a page reload (e.g. a tablet browser discarding the tab), with undo still available.
- Persist scouting progress back into the active
MatchProject. - Generate live quick stats, set summaries, rally summaries, and DataVolley-like rally strings from recorded events.
- Import DataVolley
.dvwfiles with preview, diagnostics, duplicate handling, team archive merge, and validation (non-blocking import warnings can be hidden from a Settings toggle; blocking errors always stop the import). - Export OpenVolleyScout matches back to DataVolley-compatible
.dvwfiles; when the match has Video analysis sync points, the exported video times follow them, so the file lines up with the synchronized video. - Build match reports with printable, PNG, and vector PDF export; analytics widgets export to vector PDF too.
- Explore team and player dashboards with filters, evaluation distributions, efficiency, points/errors, side-out study (by court zone or by setter call/attack combination), heatmaps, and radar comparison charts.
- Link local or YouTube videos to matches, synchronize actions with several sync points (jump or gradual correction between them), filter clips, edit action codes, and export selected clips where supported.
- Watch a local file, YouTube, webcam, or RTSP video while scouting live - floating over the court by default, or docked flush beside it when the court is in vertical orientation - with touches recording their video position automatically.
- Switch the live scouting court between landscape and portrait orientation, with an in-toolbar rotate button and a team-swap button usable at any point during a rally.
- Aggregate saved matches for team-level study, cross-database similarity comparison, and multi-match video analysis.
- Create editable tactical reports from selected matches of one opposing team. Start with a competition/season from imported metadata, optionally include other matches, and compare the two teams with the same similarity engine as Trends (at least three matches per team and five shared metrics).
- Edit the generated report directly: priorities, per-rotation serve targets,
setting distribution, block/defence and serve cards. Add, duplicate and
reorder analysis or free drawing sheets with players, arrows, cones, target
areas and text; drawings support mouse and touch and travel in
.ovsbackups. A shared SVG toolbar provides contextual color, number, text, size, curve and opacity controls, direct handles, duplication, undo/redo, keyboard shortcuts, zoom and pan. Coordinates remain available in advanced options. - Print a "How they serve" sheet: full-court diagrams per serve type with start-to-target cones grouped by preference, the most-ace route, and errors, aces, difficult serves and serves in a row for the six main servers on one page. Without scouted serve directions the known facts are kept as text. The block and defence sheet is optional in every booklet format.
- Inspect a point-by-point Play-by-play in team Data Study, single-match analysis and end-of-set/match statistics. A continuous stepped score band follows the DataVolley reference. Switch between the two teams using their name buttons, filter sets, and export the selected team's vector PDF with scores, serving, setter positions, break points, timeouts and corrections.
- Export branded PDF reports and editable SVG sheets in a ZIP, or share a web snapshot with a reader-checked expiry, like video playlists. This expiry is not server-enforced access control; editing the link data can bypass it. Shared snapshots do not change when the source report is edited. Large reports may exceed the link size limit and can be exported as PDF/SVG instead.
- Open individual reception and attack video playlists across selected matches when synced YouTube video is available, with playable-action coverage shown separately from the analysis sample.
- Review a "Priorities" view under Trends that ranks a team's or player's technical and tactical-rotation indicators against their own benchmark (their wins within the selected match window), with radar/bar charts and a per-category drill-down of evaluation mix over time.
- Draw reception and defense systems per team, starting from P-S-C / P-C-S presets, with a positional-fault check; export and import them as configuration files and include them in the .ovs backup.
- Use the app in multiple UI languages (English, Italian, German, Spanish, Romanian, Slovenian, Turkish, Chinese, Arabic, Japanese).
- React 18
- TypeScript
- Vite
- Tauri 2
- React Router
- Zustand
- Dexie / IndexedDB
- Recharts
- simpleheat
- pdfmake
Install dependencies:
npm installStart the development server:
npm run devBuild for production:
npm run buildPreview a production build:
npm run previewRun the current validation script:
npm testnpm test currently runs match-stat validation, live scouting flow validation,
DataVolley export validation, and the unit test suite.
The app uses hash routing, so routes are rendered under #/....
#/- landing page#/teams- archived team and roster management#/team-analysis- multi-match team data study#/match- match setup workflow#/scouting- live scouting workflow#/systems- reception and defense system editors#/analysis- match report, dashboards, DataVolley export, and video analysis#/load-data- saved match project loading#/settings- locale and local-data actions#/about- project information
Start with docs/README.md.
Important entry points:
- User Guide
- Architecture
- Data Model
- Domain Model
- Persistence
- Scouting Architecture
- Tactical Systems
- Code Structure
- Developer Guidelines
Implemented foundations:
- local match and archive persistence
- match creation and readiness validation
- event-sourced scouting session replay
- scouting persistence into
MatchProject.eventsandMatchProject.scoutingSession - DataVolley import and export
- match statistics builder and validation fixtures
- match report generation with print, PNG, and PDF export
- performance dashboards, side-out study, heatmaps, and team aggregation
- video analysis with synchronization and clip workflows
- reception and defense system editors backed by
localStorage - multilingual UI with persisted locale choice
Still in progress:
- broader DataVolley compatibility for edge cases
- advanced player suggestion from tactical systems
- persistent tactical-system repository in IndexedDB
- deeper team/system association workflows
- broader automated test coverage
OpenVolleyScout is free software by Maurizio Napolitano, licensed under the GNU AGPL v3 or later (AGPL-3.0-or-later). You may redistribute and modify it under version 3 of the GNU Affero General Public License or, at your option, any later version. See LICENSE for the full license text.











