Back

TMRNL - Spotify “Recently played” Dashboard

Screenshot 2025-07-15 at 9.41.03 AM.png

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.
TRMNL social repost of the Spotify dashboard
TRMNL gave the project a boost on social—fun to see it land with their community.

Big thanks to the TRMNL team for building a platform that's this easy to extend.

You can explore the open-source server here → github.com/kunalbhat/trmnl-spotify-server