Products BeaconMCPs
Company About Blog
Appearance
← All posts

Tag

Building Beacon

  • Where the tokens stop

    Beacon's builder takes credentials for Hardcover and Steam. The tokens stay on the user's machine; they never reach the deployed page or a shared export bundle. The boundary is a list of field names that two functions consult.

    · 1 min read
  • When 404 is the norm

    ListenBrainz returns an MBID, not an image URL. Cover Art Archive 404s often enough that the placeholder is going to render almost as much as the real cover.

    · 1 min read
  • Renaming the Last.fm tile

    Beacon used to have a Last.fm tile. It now has a Now Playing tile with ListenBrainz as a second source, and the rename was the move worth writing about.

    · 1 min read
  • I removed a glow but kept the purple

    A federal judge had to rule that em dashes weren't enough to prove a student used AI. The same flattening is hitting design now. Why I cut a glow on Beacon and kept the purple, and how I tell which design choices to defend.

    · 3 min read
  • The 30-second undo

    Beacon's import button overwrites your state file. One click, gone. So I put three things on top of it: a preview dialog, an auto-backup, and a 30-second undo toast.

    · 1 min read
  • Versioning the schema I didn't have yet

    I added a __schemaVersion field to Beacon's config file before there was a v2. Three weeks later, I needed it. The case for stamping a version on every stateful file you ship.

    · 1 min read
  • Why Beacon has more colors now

    I replaced Beacon's six-color palette with seven named slots. Counterintuitive simplification — more slots reduced friction, because each color finally meant something.

    · 1 min read
  • The time I shipped my API key in page source

    Before Beacon shipped, I caught a security mistake on my own link-in-bio. A Hardcover bearer token grants account deletion. Mine was visible in view-source for a while.

    · 1 min read
  • The dependency I shipped on purpose

    Beacon's Twitch tile depends on a free, unofficial scraper called decapi.me. Here's why I shipped it knowing the dependency could disappear tomorrow.

    · 1 min read