Sub Goal Thermometer Auto-sync
A live sub-goal thermometer you can drop into OBS as a browser source. Set goal, current count, theme — copy the embed URL and the bar updates as your share link does.
Manual mode is fully client-side. Auto-sync uses our public Helix relay. No Twitch sign-in, no OAuth, no account.
What this is
A sub-goal thermometer that drops into OBS as a Browser Source and updates by itself, without asking for your Twitch login. Three goal sources cover the actual jobs streamers run: manual for traditional sub goals (the only mode that works for sub count, since Twitch gates that number behind user OAuth), Twitch followers for anonymous auto-sync via the Helix public relay, and live viewers for raid- and charity-event goals during a single broadcast. The whole bar's state (goal, current, theme, colours, OBS preset) lives in the share URL, so a copied link recreates the same overlay anywhere.
Manual update vs auto-sync: why we ship both
Twitch's Helix API treats follower count and subscriber count very differently. Follower totals are public: any client_credentials app token can read /channels/followers?broadcaster_id=X&first=1 and pull the channel's total field. No broadcaster permission, no scope, no user OAuth. We use that to ship anonymous follower auto-sync. Subscriber totals are not public: /subscriptions requires a user OAuth token from the broadcaster with the channel:read:subscriptions scope. App token is not enough. Streamlabs, StreamElements, OWN3D, and GoalForgeX all solve this the same way: they make you sign in.
We chose not to. Manual mode for sub goals is a deliberate trade: you give up the auto-update, you get back zero account creation, zero rate-limit ceilings, zero "Streamlabs is down" failure mode, and a tool that cannot be locked behind an OAuth flow that breaks every time Twitch rotates its consent screen. In practice most streamers update sub counts at most once per session anyway. A phone bookmark of the share URL with the new ?q= values takes about three seconds.
Choosing a goal that converts
A good sub goal sits at 1.5–2× your current monthly sub count. Higher than 3× and the bar barely moves; lower than 1.2× and the goal hits in the first hour and the thermometer becomes irrelevant. For a subathon the goal can be more aggressive. Viewers respond to progress bars during a single big event, and a 4× sub goal during a 12-hour subathon usually clears. Charity events behave similarly: the visual progress is the social proof, the proof drives more contributions, the bar moves faster than your spreadsheet predicts. Return-from-break streams should sit at 1×; clearing it cleanly is the signal you wanted.
OBS browser-source setup: three preset sizes
The share-bar exposes three OBS preset sizes. Pick one before copying the embed snippet, and the embed iframe's width and height update to match.
- Compact 480×140. Corner placements, low-clutter scenes, mobile-portrait viewer demos.
- Default 600×200. Standard 1080p scenes; the goal fits inside a sidebar overlay.
- Wide banner 1480×160. Full-width lower thirds, marathon-style scrolling overlays.
In OBS Studio: Sources → + → Browser → New, paste the embed URL, set Width / Height to the preset values, FPS 30, Custom CSS empty, transparent background. Check "Shutdown source when not visible" to save CPU between scenes. The bar's backdrop-filter: blur(8px) survives over busy scene backgrounds without looking pasted on.
How URL-state beats a dashboard
Every input on the panel writes back to the URL's ?q= param. That sounds like an implementation detail; in practice it changes the workflow. To raise a goal mid-stream, edit the value in the share URL on your phone, hit Bookmark, and reload OBS: three taps, no second tab on the streaming PC. To recreate the same overlay across multiple scenes, paste the same URL into multiple Browser Sources. To sanity-check someone's overlay over a Discord call, paste the URL; they see exactly what you see. There's no Streamrise account holding the goal, no dashboard tab to keep open, and no OAuth refresh that could fail at the worst possible moment. For live viewer counts and "is X live right now" badges, the companion tool is the Live Status Tracker: same architecture, different signal.
Customization: themes, colours, goal-reached state
Three built-in themes ship in the bar: Twitch purple, Kick green, and minimal white-on-dark. The fourth option, Custom, exposes two colour pickers for a 2-stop gradient. The values serialize into the share URL as colorFrom and colorTo, so a shared Custom-themed URL drops into anyone else's OBS with the same gradient. Hex strings are validated server-side too, so a hostile share URL can't inject CSS through the colour params.
When current ≥ goal the bar flips into a celebration state automatically: a gold-and-green gradient takes over, a "GOAL HIT 🎉" pill appears, and a soft glow plus shimmer plays. To reset, raise the goal; the celebration clears the moment current drops below the new goal. No JavaScript animation library; the whole effect is two CSS keyframes.
How we compare
Streamlabs, StreamElements, OWN3D, and GoalForgeX all auto-sync subs; we don't, because we won't make you sign in. They all auto-sync followers; we do too, anonymously. Their dashboards offer more themes, fonts, and animation options out of the gate. The trade-off is an account, an OAuth flow, and a SaaS dependency that can rate-limit, expire, or go dark. Honest summary: if Twitch sub auto-sync is the single feature you can't live without, use Streamlabs. If you want a goal widget that "just works" with no sign-in, no configuration tab, and a URL you can pin to your phone, that's this tool. Once your follower goal is set, also try the Twitch Growth Calculator for a weeks-to-Affiliate horizon at your current cadence.