Skip to content
Case study

MBTA Pulse

A real-time MBTA transit dashboard built with Elixir, Phoenix and LiveView.

Phoenix 1.8 · Elixir · LiveView/HEEx · Tailwind CSS v4

What it is

MBTA Pulse is a live dashboard for the MBTA: vehicle positions and station alerts, updated the moment they change. I built it to work through concurrency, supervision trees and stateful web interfaces on a real, constantly changing public data feed.

Why Phoenix and LiveView

  • Updates pushed, not polled

    Instead of the browser asking for new data every few seconds, MBTA Pulse keeps a WebSocket connection open. Vehicle positions and station alerts are pushed to the page as they change.

  • Built to stay up

    It runs on the Erlang VM, where supervised processes restart automatically. When the transit data feed has a hiccup, the dashboard stays responsive and recovers on its own.

  • State on the server

    LiveView keeps the interface state on the server, so the page stays in sync without a heavy front-end app.

The stack

Phoenix 1.8
Web framework
Elixir
Language, on the Erlang VM
LiveView / HEEx
Real-time UI rendered on the server
Tailwind CSS v4
Styling

MBTA Pulse is an independent project. It is not affiliated with or endorsed by the MBTA.

Need something real-time built?

Custom projects start from $5,000, scoped in writing at a fixed price.

See all products