← larryamiel.dev

Free · Open source · Windows desktop

Ballview.
Major League Baseball,
pitch by pitch.

A desktop app for people who watch baseball closely. Ballview follows every MLB game as it happens — the pitch on the strike zone, its velocity and break, where the ball was hit and who fielded it — then keeps the whole game on your own disk so you can replay it later.

Windows 10 / 11 · NSIS installer · no account, no subscription

Ballview — Play By Play · Live
Ballview live MLB pitch tracking view showing a 87.6 mph slider plotted on the strike zone with the full at-bat pitch sequence
15s live refresh, live games only
30 clubs, any one of them yours
0 databases — plain JSON on disk
1 file per exported game

The tour

Twelve screens, one app

Pick a screen. Everything here is real data from a real September slate — no mockups.

Every pitch, as it is thrown

Watch the at-bat from behind the plate

Ballview polls the live feed every 15 seconds while a game is in progress and stops on its own the moment it goes Final. Each pitch lands on the strike zone with its type, velocity, movement and result, and the rail on the left keeps the whole at-bat in view so you can see how the pitcher set the hitter up.

  • Umpire view — the pitch as the catcher sees it, plotted on a real strike zone
  • Pitch type, release speed, spin rate and horizontal / vertical break
  • Live count, base state and outs in the scoreboard header
  • Polling backs off on rate limits and stops when the game ends
Ballview — Live game

Features

Everything Ballview does

Live baseball, your team's whole season, league-wide player stats, and the video to go with it.

Live baseball

  • Live scoreboard Today's full MLB slate with inning, count, base state and out totals, refreshed while games are in progress.
  • Pitch-by-pitch tracking Type, release velocity, spin rate and break for every pitch, plotted on the strike zone.
  • Animated ball path The pitch drawn along its tracked trajectory rather than dropped as a single dot.
  • Batted ball diagram Exit velocity, launch angle and distance, with the ball flown out to the fielder credited on the play.
  • Play-by-play feed Every plate appearance, expandable to a per-pitch table with the running count.
  • Automatic polling A 15-second refresh that only runs for live games and backs off on rate limits.

Your team

  • Favorite a team Pick any of the 30 clubs; logos, records and division standing come along with it.
  • Season game log Backfilled from the start of the year and kept on disk as plain JSON.
  • Calendar view A month grid of results and upcoming first-pitch times, or a filterable list.
  • Team news The club's own feed from mlb.com, in the app.
  • Team highlight reel Recent clips for your club, collected in one tab.
  • One season file Spring training, regular season and postseason share a season, so they share a file — each entry tagged with its game type.

Players and stats

  • Batting leaderboard Every qualified hitter, sortable on G, AB, R, H, 2B, 3B, HR, RBI, BB, SO, SB, AVG, OBP, SLG and OPS.
  • Pitching leaderboard The same treatment for pitchers — innings, ERA, WHIP, strikeouts, walks and wins.
  • Date-range windows Full season, last week, last month, last ten games, or any range you type.
  • Player comparison charts Up to four players on one chart, over time or stat against stat.
  • Player of the day / week / month Ranked on wins added, raw production and season WAR, with the weighting shown.
  • Player detail cards A game-by-game log and every highlight clip the player appears in.

Video and archive

  • Inline highlights MLB's own reel per game, including the condensed game, playing in the app.
  • Savant pitch video The Baseball Savant clip for an individual pitch, in a Clip tab.
  • Play of the day A curated board of the previous slate's best plays, tagged by type.
  • Save a game Feed, box score and highlight metadata written as one self-contained snapshot.
  • Offline replay A saved game reopens and replays with no network connection at all.
  • Export and import Any game moves between machines as a single portable .json file.

Screenshots

Every screen, full size

Click any shot to open it. Arrow keys move through the set.

Under the hood

How it's built

Two rules hold the design together. The frontend makes no network requests — everything goes through a Rust command, which sidesteps CORS and keeps every MLB URL in one module. And the frontend never touches the filesystem: it asks you to pick a path, then hands that path to Rust, so the app's file permissions stay narrow and read-only.

The MLB Stats API is reverse-engineered, undocumented and unversioned. Ballview is built for that: every model field is optional, so an upstream rename breaks one corner of the UI instead of the whole parse, and the test suite runs against genuine captured responses so a field change is caught before you see it.

  • Tauri 2 Rust backend behind the system WebView — a small binary, not a bundled browser.
  • React 19 + TypeScript The whole interface, with TS models mirroring the Rust structs.
  • Rust Every HTTP call and every file write. The frontend does neither.
  • No database Plain JSON on disk. Readable, portable, deletable.
  • Zustand + React Query Client state and request caching.
  • Fixture-backed tests Genuine captured MLB responses, so parsing is verified offline and in CI.

Download

Get Ballview

Grab the latest Windows installer from GitHub Releases, or clone the repository and build it yourself. Either way it's free, and there's nothing to sign up for.

Requirements

  • Windows 10 or 11
  • WebView2 runtime (preinstalled on Windows 11)
  • An internet connection for live games

Build it yourself

git clone https://github.com/larryamiel/ballview
cd ballview
npm install
npm run tauri build

FAQ

Questions

Yes. Ballview is a free, open-source desktop application. The source is on GitHub and there is no account, subscription or paywall.

Ballview is unofficial and unaffiliated with Major League Baseball. It reads publicly accessible MLB endpoints for personal use. Clip availability and geographic restrictions are MLB's, not Ballview's.

Built by Larry Amiel · github.com/larryamiel/ballview