Pixtron

Live sports scores on your wall.

Pixtron is a multi-tenant scoreboard platform for RGB LED matrix panels — WNBA, NHL, NBA, MLB, and NFL, live on the hardware you own. Sign up, register the panels in your setup, and configure each one independently: one panel follows only NHL, another only WNBA, a third cycles a custom mix. A single static Go binary runs on a Raspberry Pi with an Adafruit RGB Matrix HAT, polling Supabase for its per-device config and ESPN/NHL APIs for live game data, rendering direct to the panel. The Next.js admin handles signup, device registration, and per-device league and team config. Postgres RLS enforces per-user device ownership at the database layer. No WebSockets, no edge functions, no realtime subscriptions — the device polls. Simple infrastructure that stays running.

  • One platform, any number of panels

    Multi-tenant from day one. Register as many RGB matrix panels as you own, then configure each one independently. One panel for NHL, another for WNBA, a third cycling a custom mix of leagues and teams — every device is its own scoreboard.

  • A static Go binary on a Pi. That's it.

    No display, no browser, no overhead. A single static Go binary pairs with an Adafruit RGB Matrix HAT on a Raspberry Pi, polls the APIs, and renders live game data direct to the LED matrix. Install once, leave it running.

  • Per-device config enforced at the database

    Postgres Row-Level Security means your panels only ever see your config. Every device ownership claim is enforced at the DB layer — not in application code, not in middleware. Cross-tenant leakage is structurally impossible.

  • Simple by design — the device polls

    No WebSockets. No edge functions. No realtime subscriptions. The Go binary polls Supabase for config and the league APIs for live scores on its own cadence. Infrastructure that stays out of your way because there's not much infrastructure to break.

  • Five leagues, live or ready

    WNBA and NHL stream live scores today. NBA, MLB, and NFL integrations are built and ready. Cover your full sports calendar — postseason and regular season — from a single platform and a single admin.

Pixtron dashboardDevice onboarding flowTeam pickerLeague selectionDevice teams configurationDevice settings

Pixtron admin — register your panels, pick your leagues, configure per-device.

Key Concepts

Device
an RGB LED matrix panel registered to your account, identified by a device key the Go binary presents on first boot. Each device carries its own independent league and team configuration.
Tenant
a user account in the Pixtron admin. Postgres RLS ties every device, config row, and session to exactly one tenant — the database rejects cross-tenant reads without relying on application-level enforcement.
Go binary
a single static executable compiled for the Raspberry Pi. It authenticates with Supabase using the device key, polls for its config, fetches live game data from ESPN and NHL APIs, and drives the Adafruit RGB Matrix HAT directly.
Panel config
the per-device league and team selection managed in the Next.js admin. Each panel can independently follow any combination of leagues and specific teams — changes propagate the next time the binary polls.
Poll cadence
the interval at which the Go binary checks Supabase for config updates and the league APIs for live scores. No push, no subscription — simple, predictable, auditable.
GoRaspberry PiAdafruit RGB Matrix HATNext.jsSupabasePostgreSQL

In-house product by Harebrained Apps. WNBA + NHL live now; NBA, MLB, NFL integrations ready.

How It Differs

Commercial LED scoreboards are single-purpose, single-tenant, and priced for stadiums. Generic LED sign software doesn't speak ESPN APIs. Pixtron is the only platform that ties a Raspberry Pi + Adafruit HAT directly to a full multi-tenant admin: sign up, register your panel, pick your leagues, and the Go binary handles the rest — per-device config, per-tenant isolation, enforced at the database. On the roadmap: the Go renderer compiles to WASM, making the browser preview panel bit-identical with your physical device — the same render path, not a simulation.