
Over the weekend, I explored TRMNL’s private plugin system and built a small app that pulls data from my Spotify account and displays it on my TRMNL dashboard.
Originally, we wanted to show “Now Playing” info in real time. But between:
- Spotify not offering webhooks,
- TRMNL’s (reasonable) rate limits for inbound data,
- and the polling overhead of asking for current playback every few minutes…
…it quickly became clear that wasn’t the right fit.
Instead, we pivoted toward something better suited for a semi-static screen: a recently played album wall. My TRMNL now fetches my latest tracks via a public JSON endpoint that I host, and displays a grid of the album covers, along with track and artist info.
How it works:
- A Node.js serverless function runs on Vercel.
- It uses the Spotify API to fetch recently played tracks (up to 10).
- It formats that data into TRMNL’s expected schema.
- TRMNL polls the endpoint directly (no webhooks!) and renders the data in a screen layout I configured.
- Album art, artist names, and basic metadata, and the display updates passively as I listen.
Why I like this approach:
- No need to keep a server running or manage polling logic thanks to TRMNL’s built-in data fetching strategies.
- Easy to reason about: all data lives in a super clean JSON endpoint.
- It feels ambient and personal: a musical footprint that evolves naturally through the day.
Big thanks to the TRMNL team for building a platform that’s this easy to extend.