Skip to content

Releases: Synapsr/SaaS-Monitor

SaaS Monitor 1.1

Choose a tag to compare

@loan-talvat loan-talvat released this 29 Sep 15:45

Your screen now talks. A voice announces every new subscriber, payment and milestone, right after the ka-ching, in your own words if you like. This release also protects screens with a password, tells Stripe Connect payments apart, and keeps moments on screen as long as you want.

Try it on the live demo (click once to turn the sound on), on saas-monitor.com, free during the public beta, or on your own server, free for good.

Added

  • Voice announcements. Turn on Announce out loud in the screen settings and a voice says what just happened: "New subscriber!", "Payment received!".
    • Ten voices, two per language, in English, French, German, Spanish and Portuguese.
    • One switch per announcement: payments, payments for a Stripe Connect account, new subscribers, upgrades, reactivations, downgrades, cancellations, new customers and milestones.
    • Voice has its own switch and volume, so a screen can speak without playing sounds.
    • Recorded phrases ship with the app: nothing is sent anywhere.
  • Your own phrases. With a Gradium API key (GRADIUM_API_KEY), write what the voice says, with {name}, {amount}, {plan}, {country}, {product} and {fee}, and up to five variations picked at random. Each phrase is synthesized once for every open copy of a screen. See Voice.
  • Screen passwords. An optional password on top of a screen's link: each device asks for it once, in the screen's language, and changing it locks every device out again.
  • Stripe Connect platforms. Payments made for a connected account get their own icon and label, ring without confetti, and only their application fee counts as your revenue.

Changed

  • Moments stay on screen as long as each screen chooses (5 to 30 seconds, 10 by default), in a larger card that reads from across the room.
  • The landing page says what it costs: the hosted version is free during the public beta, and self-hosting stays free for good.

Fixed

  • Feed rows fit a narrow column: the country is a flag at the start of the details, and the account sits next to the time.
  • In development, the database sees new columns after a schema change without a restart.

Upgrading

Pull the new image and restart. Migrations run on startup (MIGRATE_ON_START), and existing screens keep their settings. Two optional steps:

  • Stripe Connect platforms: payments imported before this version are classified at the next Re-import data of the account.
  • Your own phrases: set GRADIUM_API_KEY (and GRADIUM_API_URL to pin a region), then restart.

Full changelog: v1.0.0...v1.1.0

SaaS Monitor 1.0

Choose a tag to compare

@loan-talvat loan-talvat released this 29 Sep 09:51

Your MRR, live on the wall. SaaS Monitor turns your Stripe account into a screen for the office, your desk or a Raspberry Pi behind a TV: the MRR ticks up when a customer subscribes, a cash register rings when a payment lands, and confetti flies when you cross a milestone.

Try the live demo, use it on saas-monitor.com, or run your own:

git clone https://github.com/Synapsr/SaaS-Monitor.git && cd SaaS-Monitor
node scripts/setup.mjs && docker compose up -d

See the self-hosting guide for HTTPS, updates and backups.

Screens

  • MRR or ARR in large type with its 30-day growth, progress towards the next milestone or your
    own goal with the date you'll reach it, a chart over 30 days, 90 days, 12 months or all time,
    revenue today and this month, customers, net new MRR, and a live feed of new customers,
    payments and subscription changes.
  • A moment on screen for every event, confetti for money coming in, and a full-screen celebration
    at each milestone.
  • Sounds in three packs synthesized in the browser: cash register, chime and arcade.
  • A dark or light theme, preset accents or your own color, and seven languages (English, French,
    German, Spanish, Italian, Portuguese, Dutch) with local number and date formats.
  • Several Stripe accounts per screen, added up in one currency or taking turns, each moment
    naming the product it comes from.
  • Made for unattended TVs: any resolution or orientation, display kept awake, recovery from
    outages, reload after updates, protection of OLED panels.

Stripe

  • Read-only restricted keys, encrypted at rest.
  • MRR as Stripe computes it: discounts, trials, cancellations at period end, billing intervals.
  • A resumable import of subscriptions, a year of payments and the last week's new customers,
    then an incremental sync from the Events API: instant with webhooks, otherwise paced within
    Stripe's read allowance.
  • Accounts billed in different currencies, converted with ECB rates.

Dashboard

  • Workspaces and invitations, screens with a live preview editor and test celebrations, screen
    links that can be regenerated.
  • Email and password sign-in with rate limits, optional GitHub and Google sign-in, and sign-ups
    that can be closed.

Self-hosting

  • Docker Compose with MySQL 8.4, migrations on startup, and images for amd64 and arm64 on GitHub
    Container Registry.