Slipmat Week Notes 33/2026

Awesome Friday, people of Slipmat!

This week we’ve been focusing on ironing out bugs and sharp edges in the UIs all over the site. The list is long but fortunately most of the fixed issues are minor tweaks; we’re in the rewarding phase of making things beautiful and better after previously making them work :slight_smile: Our list of known breaking code in Sentry is staying at 0 for the second week in a row :victory_hand:

If you want to help, invite your friends and listeners to use the new site! All v2 logins work, new signups are possible via Apple/Google auth.

New Features

  • @theaardvark reported an issue about his event being disconnected prematurely. The logs didn’t find the cause but in less than 24 hours later we added Account activity logs, Artist activity logs, and better docmentation about event lifecycle. These logs and docs are accessible via our MCP server as well so in the future you can just directly ask from your favourite AI tool to try to figure out and explain the activity on your or your artist account.
  • Artists can now add Bulletin text as Markdown to events via the event edit page. If event has bulletin text set, there will be a Bulletin tab under the video that shows the text. This is handy for many situations where you want to communicate something to all the listeners via rich html. This was one small v2 feature parity bit still missing.
  • Requesters can now undo made requests. Thanks @Taustahemmo for the feature request!
  • Artists can now print or download a QR-code that points directly to the event requests window from the request management screen. This is in preparing for a future features that makes it easier to use requests without a live streaming event. If you run an AFK event and want your listeners to be able to browse your track library and make requests through our request system, you can now print out QR-code flyers for extra-easy findability :tada:
  • We have new /pastebin and /post functionality in chat for situations where you want to share things between your crew or audience so you don’t need to go offsite.

Enhancements

  • Our video player got an upgrade. The video should behave better now, use less memory and show fewer unnecessary errors especially on mobile.

    iOS Devices are notoriously bad at playing Web sources properly but our video player does the best it can to play ball. It mostly works ok when locking / turning off the screen. The artist and video details are properly displayed on lock screen and the resume works (as well it can work). We need a native app to make the mobile experience truly good :thinking:

  • The request system uses now the Slipmat Music API data after your uploaded request system playlist is enriched. Showing enriched artist information is only the small first step on this journey and the enrichment process is still in very early stages, but I’m personally pretty excited about this small step already. This is only getting better and the more we use the site, the better it gets! We’ll provide more information and some docs after we get it more stable.

  • The chat message sending has had a third overhaul in three weeks. The system is now simplified even more and tested better to be more robust. It’s clearly hard to try to predict all various scenarios that happen in the real world but this is definitely the most researched, tested, and best implementation to date. Hopefully we don’t need to come back to this again :slight_smile:

  • Few of the new documented APIs mentioned last week turned out to be harder to use than optimal. All the ones that I personally tested by building a vibecoded project are now very easy to work with after some minor tweaking. If you are building something and bump into any inconsistencies of inconvenient data shapes, please just report the issues and we’ll fix them!

  • Random transient errors between various Slipmat components that work over the HTTP protocol have been cleaned up to not show up in Sentry as errors anymore. These still show up in server logs for debugging purposes but help keeping the signal good from actual bugs that end up in Sentry.

  • Some enriched URLs were coming back in German because our servers are in Germany and the crawler didn’t properly set accepted languages in all instances. It now always defaults to English.

  • The Technical Hold button is now visible on the Artist Stream Dashboard at all times, even when the stream is healthy.

  • Our general logging was improved a lot. The old logs were consumed by many pointless details which made searching for true signal unnecessarily hard. They were also missing important data. We now store meaningful data only.

  • The public PlaylistConverter got the same ability to remove songs of the uploaded playlists for cleaning up history sessions etc before publishing. The feature works exactly the same as with artist setlist uploads.

  • Homepage feed content shows now more variety across 17 different external sites that offer RSS feeds. We’ll open this up soon so everyone can add sources and help rate them. We’ve also created the plumbing for true music discovery from the external feeds but this is still not yet quite finished. The idea is to extract the mentioned music from the posts and show proper play and buy links for everything based on your own preferences whether you want to see Spotify, Apple, Tidal or YouTube music links.

  • Ad Hoc events are no longer posted to the homepage feed. Ad Hoc events are meant for fast “I don’t care about marketing, I just want to stream Right Now”-kind of events, they show up in live event lists and on artist page and notifications but never in anywhere else.

UI Cleanup

The public launch date is nearing fast and our usability and user interfaces are a mess in many places. We’re now putting more serious effort to fix this for the next few weeks.

The UI and design work keeps being The Most Painful and slow part of the development process. If you are able to help by pointing out any inconsistencies, things that look wonky, small things that break or even typos and things like that please report them so that they can be fixed! Every little bit helps and no detail is too small! Use the Bug Report tool on the site or post here in the Issues-forum – Thank You for your help! :folded_hands:

  • Live page layout has been drastically improved. It now behaves properly on all desktop sizes. The chat window width can now be resized by dragging with mouse, the setting stays with the browser.
  • Main Chat UI has been completely revamped. Now that we know most of the things we need better we also thoroughly re-engineered the backend architecture resulting in absolutely wild wins. For typical user the new chat loads 60-90% faster.
  • Event cards for live events no longer show RSVP buttons.
  • Music embed links in artist Stream Dashboard chat no longer break the layout.
  • Request button is no longer visible on the live page if the requests aren’t on.
  • Main top menu is unified and the Backstage-link is moved away from other links.
  • Artists can now set Stream Dashboard chat column width by dragging. The size is stored within the browser.
  • Artist upcoming proposed event detail page looks now much cleaner and displays more data about RSVPs.
  • The request management in Stream Dashboard is cleaned up quite a bit. Requests can be toggled on an off, the used playlists can be selected from the UI, and the management of requests is much simpler and better than before.
  • The request making view for listeners has been redesigned to be much more intuitive. There are very clear buttons for “Request any track from [Artistname]”, “Request [This Track]” and “Request ‘[search that didn’t find anything]’”. All requests can have an optional text note.
  • Homepage “You might know”-section buttons have been fixed to say “Add friend” (not “Follow” which was simply wrong).
  • Homepage feed Scheduled event RSVP buttons looked totally awful and broken, they’re now fixed.
  • The live page and Stream Dashboard chat tabs had a small area on the right that didn’t register clicks. This is now fixed so clicking any part of the tab properly selects it.

Bugfixes

  • Fixed an issue with Backstage account linking after v2-v3 migration. The accounts are now properly synced even for changed emails or multiple accounts. Thank You to @T3kkn0id for the bug report!
  • Artist public page was not properly redirecting all live events when live. The redirection rule is now strenghtened; if artist has either a live Ad Hoc event or a live scheduled event that is public, any viewer gets automatically redirected to the live page. Additionally, for scheduled and unlisted events, if the viewer has access to view them, they are automatically redirected as well. The purpose of this redirection is to make marketing and discovery easier: if a listener knows only your public artist profile URL (ie. slipmt.io/myartistslug), then will always find your live event just by visiting that page.
  • Soundcheck events are now correctly displayed on artist dashboard, Streaming Dashboard, and on the stream monitor page for all artist members (who have access to those pages).
  • Artist event creation form submission failed with no error message whatsoever when trying to create a proposed event for just one day. This is now fixed in a way that better ensures that ALL errors are properly displayed at all times. We hope there wouldn’t ever be erors here but if there are, they sould be clearly displayed and reported so that they can be fixed.
  • There was a N+1 database query issue with calculating currencies in the Support modal. This is now fixed.
  • Stream statistics from the new code_encoder weren’t properly shown in the new Stream Dashboard. Now the stats are correct no matter what encoder is used.
  • Fixed a small issue in post-deployment refreshing logic. This didn’t affect any users but caused noise in Sentry.
  • Artist event detail page was missing a server-side rendered URL so it was impossible to deep link to those URLs. This is now fixed.
  • Ad Hoc events were not properly recognized on artist oublic profile. Now Ad Hoc events redirect artist profile page properly to the live page.
  • Live page user list doesn’t show Roadies as present anymore if they haven’t actually joined the event.
  • Chat /settings and /help menus had transparent backgroud. They have now been fixed to be black for better readability.

Experimental

  • We’ve been continuing to build on and experiment with our new music APIs.

  • We’ve been working on native tools for quite a long time. This week we took a big step forward with one experimental project as we got the build pipeline working for a native mcOS / Windows Slipmat Desktop app. The app is not ready for production use but it does have chat and artist Streaming Dashboard already implemented and the autoupdater will pick up any updates automatically so it can be used for testing purposes already. I want to personally thank the Minions of DJ Uninen for putting up with lots of broken Windows builds and clicking through “yes I want to open this downloaded virus”-screens to get us where we are now :folded_hands:

    Incidentally, due to testing the application build pipeline this week Slipmat GitHub account has now used all CI minutes for the month of August already so any support through the live page support button is highly appreciated as we need to pay for the extra compute somehow! :melting_face:

Security

As a part of expanded OpenAI Daybreak security program we made a broader security audit to our frontend code and are happy to announce that we found no major security issues from the user-facing code. This does not mean that our code is unbreakable or bug-free but it gives us more confidence in the foundations of the core product. Our main features are architectured well and properly protected against the most typical security failures.

Our previous audit against backend code reminded us that no matter how well you think you are focusing on security, every new feature, every refactor, and every dependency upgrade potentially opens up new security vectors. We’ll continue auditing the whole codebase regularily and the basic security reviews are already a part of our normal code review process. I myself sleep better when I know that all the data that our users trust us with is properly handled, and no matter ho much AI-tools we use to aid the development, Slipmat is not and will not be a vibecoded, it is a professionally engineered and maintained product. (This is in contrast to the too-long-lived v2 which started as a well-maintained product but then was left essentially unmaintained for half a decade :sweat_smile: – lessons learned!)

2 Likes

Monumental work. Legendary. I’m going to try to make time to try out the request functions this week. Thank you so much!

1 Like