How it looks
Pick a thumbnail to move through the screens, or tap the large screenshot to enlarge it.
Vigia home screen with shortcuts to new match, history and players
About Vigia Padel
Vigia turns anyone standing by the court —a coach, someone on the bench, a friend— into the statistician of a professional padel match. You just tag what happened on each point; the app does the rest: the score, who serves, who returns, the tie-breaks and the stats for all four players.
When the match ends, it generates a card ready to share on WhatsApp with the result and the numbers. The same kind of data you see on a professional broadcast, now for your Saturday match.
Tag the point. The app does the stats.
Broadcast-level statistics
Winners, forced and unforced errors, aces, double faults, break points and much more, player by player.
Stats you can actually play with
Which stroke wins you points and which one gives them away. Which of the two rivals you are hurting, and with what. How many points you win without hitting a winner, just by forcing the error.
You just tap, it works out the rest
Score, serve, side changes and tie-breaks resolve automatically while you follow the match.
Made to be shared
The score, the four names, who won and what each player did with each stroke, in a single image. Two taps to share it: the WhatsApp group, your social feeds, wherever.
History and progress
Every player builds up their matches and sees how they progress over time, metric by metric.
Export and import
Your matches are yours: move your history from one phone to another whenever you want.
Tech specs
Vigia is an offline-first app with a rules engine decoupled from the UI: all of padel —score, serves, sides and tie-breaks— is derived from an event log with pure functions, covered by tests.
- React Native + Expo + TypeScript
- Rules engine with event sourcing
- Offline-first, no server
- Backup and import
- react-native-view-shot
- expo-keep-awake + expo-haptics
- i18n
- Vitest
- EAS Build
- App
React Native + Expo + TypeScript
Android app with its own scaling system: no UI size is hard-coded.
i18n
Spanish, English, Portuguese and Italian, with tests checking all four have the same keys.
- Architecture
Rules engine with event sourcing
The match is an event log; score, server, receiver, side changes and per-player stats come from pure functions that know nothing about React. Undoing a point means removing an event.
- Native & device
react-native-view-shot
Match card as an image, ready to send on WhatsApp.
expo-keep-awake + expo-haptics
The screen stays on during the match and every tap gives haptic feedback.
- Data
Offline-first, no server
Matches in files (expo-file-system), roster and preferences in AsyncStorage. No account or connection.
Backup and import
Export and import the full history with expo-sharing and expo-document-picker, with file validation.
- Tooling & delivery
Vitest
Over 170 tests on the engine, stats, storage and backup, plus a simulator that plays whole seasons to design against real data.
EAS Build
Test APK and production .aab for Google Play.




