Section 05

The dashboard

Expo gives you a web page showing every build. So does leas — except it runs on your own machine, because everything leas knows already lives there.

leas dashboard            # http://localhost:4180
leas dashboard --port 5000 --no-open

Where the numbers come from

Every build writes a JSON record into .leas/builds/ the moment it is queued, and updates it as it runs, succeeds, fails, and submits. That happens whether the build ran on your Mac or on the fleet, so local and cloud builds sit in one history rather than two.

The dashboard watches that directory and pushes changes to the browser over server-sent events, so a build shows up the instant it starts — no refreshing. Cloud builds finish on someone else's machine, so leas additionally polls GitHub every fifteen seconds for runs still in flight and folds the result back in. A build that completes while your laptop is shut is still correct when you open it.

What it shows

PanelAnswers
Stat tilesTotal builds, success rate, median build time, how many reached a store track, and what is building right now.
Builds per dayFourteen days of history stacked by outcome — where the bad weeks are, and whether failures cluster.
Platform & channelThe iOS / Android split and how builds divide across your profiles.
Build tableEvery build with its commit, channel, duration, whether it ran local or cloud, and its submission state. Filterable on all four.
Why local rather than hosted

A hosted dashboard needs an account, a database, and somewhere to put your build history — all of which are section 12's problem, not section 5's. Reading the directory you already have gives you the same view today with nothing to run and nothing to secure. When leas grows real accounts, this same UI points at the API instead of the filesystem.