SavePoint v1.40.1 Release Notes

Mobile UI, multi-gigabyte library uploads, configurable storage, deployment workflow improvements, and a broadcast pipeline performance overhaul that pushes listener sessions into the multi-hour range.
Contents
We're excited to announce SavePoint v1.40.1. The driving goal of this release was performance optimization for every supported streaming channel: Discord, YouTube, Mixcloud, Twitch, Kick, Restream, and Custom RTMP. We instrumented every stage of the live broadcast path, identified the dominant sources of listener-side variance, and shipped fixes across the pacer, the master output, and the channel encoders. The benchmark numbers are in the Broadcast Pipeline Performance section below.
Performance was not our only focus. This release also ships over 20 new features and significant improvements across the application, covering the interface, library management, storage configuration, deployment workflows, channel credentials, and observability tooling.
What's New
Mobile Display Improvements
SavePoint now works fluidly on phones and tablets. The sidebar collapses into a drawer, dialogs respect viewport boundaries, and every screen scales to small displays. You can monitor a live broadcast from your phone, change the next-up segment from a tablet, or run an event from anywhere with a network connection.
Configurable Media Storage Location
You can now choose where SavePoint stores media files. Set a custom directory in Settings to keep your library on a faster SSD, an external drive, or a shared network volume. Existing libraries migrate automatically when you change the location.
Larger Library Uploads
The library manager now supports files greater than 500MB.
Production Lite Deployment
A new lightweight deployment mode pushes a single station to your production server without a full database sync. Faster, safer, and station-scoped. Useful for solo broadcasters managing one station who don't want every push to merge unrelated data. Available alongside the existing full-deployment workflow.
A new Launch Production button appears on completed deployment cards, taking you directly to the live station with one click.

The Jobs tab tracks each deployment in progress and shows per-step status as the push runs, so you can see exactly where it is and what completed successfully.

Multi-SSH Deployment Profiles
Manage multiple production servers from one SavePoint installation. Each deployment profile holds its own credentials, paths, and target environment. Switch profiles to push to staging, production, or a dedicated client server without re-entering connection details.

Pull from Production
The companion Pull from Production dialog brings live production data back into your local copy. Useful when you've made changes on the production server (a track added via the running app, a segment edited live by an operator) and want to sync them home for further editing without losing the work.

Per-Station OAuth Credentials
YouTube, Twitch, and Kick now support per-station OAuth credentials. Run multiple stations under different brand accounts without sharing one set of credentials across all of them. Each station's connection details are scoped to that station only.

Pre-Render Pipeline Worker Pool
Pre-rendering is now multi-worker. SavePoint detects your CPU core count, picks an appropriate worker count, and parallelizes canvas rendering across cores while keeping main-thread responsiveness intact. The result: significantly faster pre-renders on multi-core machines.
A new adaptive mode automatically scales the active worker count up and down based on real-time system load. When your machine is under pressure (other CPU-heavy apps running, thermal throttling, or sustained high event-loop lag), the worker pool throttles back to keep the rest of the app responsive. When the system has headroom, it scales back up to use the full pool. You can leave the worker count slider in adaptive mode and let SavePoint manage the trade-off, or pin a fixed count if you prefer manual control.
A new processing view visualizes each active worker as the render runs. The pre-render queue tab gained a pulsing "Active" badge while processing, a per-worker color-grid progress visualization showing where each worker is in its current job, a live oversubscription hint when adjusting the canvas worker slider, and a capability-aware initial queue-time estimate so you know roughly how long a pre-render run will take before you start it.

WSL2 Broadcasting, Now Production-Quality
WSL2 (Windows Subsystem for Linux) has been a supported environment for SavePoint, but Mixcloud listener sessions on WSL2 historically cliffed within a couple of minutes due to a host-level scheduling behavior that affected the broadcast pipeline. This release ships a one-time host-side setup that resolves it. Add a few lines to %USERPROFILE%\.wslconfig and restart WSL, and listener sessions on WSL2 now match production Linux performance (multi-hour). Full setup walkthrough in the Mixcloud troubleshooting guide.
System Info API + Environment Awareness
A new /api/system-info endpoint exposes runtime environment facts (operating system, Node version, WSL detection) so the UI can adapt to the host environment. Internally, this powers environment-specific guidance like the WSL2 setup panel. Full reference: System Info API.
Broadcast Observability Settings
A new Broadcast Observability card in Settings → Logging lets operators control what telemetry SavePoint captures during live broadcasts. Toggle individual performance signals (heartbeat, event-loop telemetry), choose verbosity for the diagnostic log stream (errors-only, standard, or standard with keyframe analysis), and configure log retention with a one-click manual cleanup. All in one place.

Full reference for all three logging surfaces and their controls: How SavePoint's Logging System Works.
Broadcast Pipeline Performance

This release includes the largest broadcast pipeline performance investment in the project's history. We instrumented every stage of the live broadcast path, identified the dominant sources of listener-side variance, and shipped fixes across the pacer, the master output, the channel encoders, and the listener-side health monitoring. The customer-facing impact, measured against the v1.17.1 baseline:
| Metric | v1.17.1 baseline | v1.40.1 result | Improvement |
|---|---|---|---|
| Mixcloud single-cycle listener session (production benchmark, no auto-restart) | 4 to 15 minutes | 10+ hours uninterrupted | ~40 to 150× |
| Mixcloud listener session with auto-restart enabled | not measurable as a separate metric | Multi-hour seamless playback | New capability |
| Master pipeline output rate at steady state | ~99.6% of realtime | 100.0% of realtime, no drift | Drift eliminated |
| Pacer timing precision (production) | Sub-millisecond | Sub-microsecond | Approximately 25× cleaner |
| Internal performance-rebaseline rate | Approximately 60 events per hour | 0 events per hour | Eliminated |
These numbers are from internal benchmarks on production Linux hardware. Your environment will vary, but the direction is consistent: long-running broadcasts now stay healthy without operator intervention, and the failure modes that previously required restart-based mitigations are gone in steady-state operation.
The optional Mixcloud auto-restart feature (added in v1.17.1) is no longer load-bearing for typical broadcasts. It remains available for very long broadcasts (over 8 hours) or when chunked VOD recordings are desired. See the Mixcloud troubleshooting guide for the new guidance.
Channel Improvements
Mixcloud
- Multi-hour listener sessions on supported environments without manual intervention
- Optional auto-restart cadence is now configurable and use-case-driven (no longer recommended at any specific default; see the troubleshooting guide for guidance based on your broadcast length)
- WSL2 is now a supported broadcasting environment with a one-time setup
Kick
- Performance optimization across the Kick streaming path delivers more consistent listener experience under load
- Improved handling of intermittent network conditions
Discord
- Improved audio pipeline stability during long-running broadcasts
- Faster recovery from transient connection issues
Twitch + YouTube
- Self-healing reliability improvements that benefit all RTMP-based channels (Twitch, YouTube, Kick, Mixcloud, Custom RTMP)
- Per-station OAuth scoping for YouTube and Twitch
TikTok Live (in progress, your follow helps)
We have begun work on TikTok Live support, but the integration is blocked on a TikTok platform requirement: TikTok Live API access is gated behind an account-level review process, and accounts with 1,000 or more followers are expedited through that review. Our team's day-to-day usage of TikTok is low, so our follower count is well below that threshold and the access process is moving slowly.
If TikTok Live broadcasting from SavePoint is something you would use, the single most helpful thing you can do is follow us on TikTok: https://www.tiktok.com/@savepointapp. Every follow brings the integration closer to becoming a fully supported channel. Thank you for the patience while we work through the gating.
In the meantime, TikTok appears as an experimental channel option in the app, but the TikTok Live broadcast path is not yet ready for production use.
Operations & Diagnostics
Configurable Log Retention
Set how long log files are retained (1, 3, 7, 14, or 30 days) directly from the Settings UI. Cleanup runs automatically about once per hour while logs are being written, and a "Clean up now" button in Settings triggers immediate cleanup if you need to free disk on demand.
Frontend Logging Off by Default
Browser console logging now starts off. Most operators don't need it during normal use; it's a single toggle in Settings if you do.
Restart Backend from the UI (Non-Electron Servers)
The Settings → Danger Zone now exposes a Restart Backend button on any non-Electron server (staging, local development, production). Useful for picking up environment changes without an SSH session. The Electron app continues to manage its own backend lifecycle, so the button is hidden there.

Port Auto-Fallback
When a port is held by another process (common when Windows reserves a port range for itself or when an orphaned SavePoint instance is still running), SavePoint now probes for the next free port and uses it automatically. Both the API port and the streaming server port behave this way, and the chosen ports propagate to the renderer so the app keeps working.
Misc. Bug Improvements
- Fixed first track of a segment being skipped at soft-end transitions
- Fixed playlist manager
never_endsreload behavior forshuffle_allsegments - Fixed deployment push proceeding with no stations selected
- Fixed the SavePoint desktop app failing to start after a crash because the previous instance's backend port was still held; the app now releases the orphan port automatically at launch
Updating
Download the latest version from our download page or update through the app.
For Mixcloud broadcasters, the Mixcloud Streaming guide and troubleshooting guide have been updated to reflect the new auto-restart guidance and WSL2 setup walkthrough.
Have questions? Check out our documentation or reach out to our support team.
Discussion
Loading...
Loading comments...