Web Performance Calendar

The speed geek's favorite time of year
2025 Edition
ABOUT THE AUTHOR
Photo of Tsvetan Stoychev

Tsvetan Stoychev (@ceckoslab) is a Web Performance enthusiast, creator of the open source Real User Monitoring tool Basic RUM, street artist and a Senior Software Engineer at Akamai.

It’s been a long, busy year but my friend Faisal and I stayed focused on building BasicRUM. After work, we pushed countless commits from a cozy café in Munich.

The important news is that we’re wrapping up a few final things, and in Q1 2026 we’ll publicly release the complete BasicRUM source code under a friendly license with a few special clauses about SaaS distribution.

A few highlights before we dive in:

At Performance.now() we took some time and had a hands-on demo of BasicRUM with a few folks in the venue’s hallway.

Hands-on demo of BasicRUM at Performance.now() conference

Thanks to Faisal, we got a new and modern looking website – https://www.basicrum.com/

Faisal worked on a new logo and we printed our own branded shirts! Some of you probably noticed us at the Performance.now() conference.

The inventor of the Cliff Curve and a man wearing a shirt with the BasicRUM logo discussing RUM

What’s in the package?

The code is open source

In Q1 2026, the source code for the current version of BasicRUM will be available in our GitHub repository.

If you know React, TypeScript, and Node.js, you should have an easy time contributing.

Privacy first and GDPR friendly

By self-hosting BasicRUM, you own the data stored in it, which makes it easier to stay GDPR compliant.

AI integration

BasicRUM AI integration interface

We have some solid AI capabilities baked in BasicRUM. Initially, we provide AI summaries for charts that are easily explained by an LLM but harder to untrained eyes to grasp. Soon, more charts will have a one-click AI summary. This will tell users what is good and what needs fixing.

We also have a chatbot (at this point – who doesn’t?) Our architecture allows the chat agent to infer and request new data that is not available to the users as a widget – meaning – when you want to know information that is not readily available in the UI. For example: “what are the most visited pages in the last 2 hours with a bad LCP score?”

Dashboards and UI

By mid-2025, we had an MVP that aimed to be simple and to show useful trends and metrics. In August 2025, we met with three groups that were interested in using a RUM solution and were willing to test the MVP and provide feedback.

This was really helpful, and we received feature requests, bug reports, and suggestions to improve the user experience.

Below are a few screenshots, and you can also try the demo here: https://demo.playground.basicrum.com/

Early on, we tried shadcn/ui and decided to stick with it. We made dark mode the default because the green, yellow, and red CWV indicators look great on a dark background, and the UI feels more polished overall.

One request from our test users was a dashboard to help them identify specific pages with slow CWV and network metrics.

BasicRUM dashboard showing pages with slow CWV and network metrics

BasicRUM users can also use a Core Web Vitals dashboard to see the big picture, with all CWV metrics in one place. From there, they can decide which metric to explore and then deep-dive into it.

BasicRUM Core Web Vitals dashboard showing all CWV metrics

For example, a BasicRUM user can navigate to the LCP dashboard and investigate which element is driving higher LCP.

BasicRUM LCP dashboard showing LCP element breakdown

Battle testing

We got a bunch of valuable feedback from the three groups that helped us test BasicRUM. The testing happened on a BasicRUM instance set up by us, but one of the groups was interested in self-hosting, so we provided a simple install script that installs and configures BasicRUM to run behind Cloudflare.

We identified and fixed a few corner cases, and we also proved that people can easily install and run their own BasicRUM instance.

One requirement we heard was for BasicRUM to handle 300K requests per day.

One weekend, we tested the limits of BasicRUM on a budget (4 euro per month) Hetzner VM (cpx21: 3 vCPUs, 4 GB RAM).

We wrote over 40 million events in ~2 days. The query side felt a bit slower but at the same time we identified a few bottlenecks at the data ingest side and we introduced a queuing logic. We didn’t test again because 40 million events in ~2 days was pretty good!

BasicRUM load testing results showing 40 million events

In closing

It’s a great time for the folks who would like to self-host their own RUM system. We’re wrapping up the final pieces. In Q1 2026, we’ll publicly release the full BasicRUM source code on GitHub under a friendly license, with a few clauses covering SaaS distribution.

For now we hope that BasicRUM will bring value and help the web performance enthusiasts to identify and fix performance issues.