BUI - the alternative Beeminder UI (more charts)


I built the alternative UI for Beeminder. I use it for a while now and I find it useful. Instead of competing with default Beeminder web app or mobile apps, it compliments them with extra data visualisation.

I started with this thread: Visualizing beeminder data but moved onto creating my own app to get better performance, more flexibility and to make it easier for everyone to see the data.

Log in here, using your Beeminder account:

Let me guide you through some interesting features:

Workload visualisation

In top right corner you might norice circle-packed chart of your goals. The bigger the circle, the more goals are in the status.

Customise the layout

Use either one or two column layout. Group your goals using tags: beeminder

Calendar Heatmap

First of all, use calendar heatmap to see when you were more intensive about your goal and when you gave up on hustling:

Understand your days

Use Trends, Weekly charts and breakdowns per hour and per calendar day to see patterns:

Extra motivation

Use streaks to gamify and reinforce your motivation:

Next steps

App works for me. I see some minor annoying details I could fix and more dataviz I could add. I used twitter to log the progress on the app: https://twitter.com/skorytnicki/status/1513528711534030856 if you’re curious in the details. App is open source. Feel free to get inspired and copy the code: GitHub - szymonkorytnicki/beeminder-ui: alternative UI for beeminder

Next steps will be determined by your honest feedback :slight_smile:

Try the app today:



This is really great!! Could you submit a PR to link to it here?:


Edit: And merged! Thanks!!


It’s excellent to see more alternative Beeminder UIs. When I started building Altbee I was unsure of just how crazy an idea it was to build such a thing—so it’s gratifying to see that if I’m crazy, at least I’m not crazy alone.


Altbee is great! Anyone who hasn’t seen it yet: Sign in · Altbee
Out of curiosity, do you have any stats on how many users use Altbee?


Altbee has around ten monthly active users, and six weekly active users—that is, on average, at any given point in time around ten users will have used Altbee in the past month, and around six in the past week. (This is a steady-state number, but it spikes higher when Altbee is discussed on the forum.)

More stats: A total of 227 users have ever used Altbee, 112 of them more than once. Interestingly, about 2/3 of the monthly active users are in a European timezone, compared to only about 1/3 of all-time users—my guess is that it’s a matter of latency, the server being in Europe. (One of Altbee’s design goals was to have a snappy, low-latency interface. But perhaps it isn’t succeeding at that task for those with more distance between them and the server.)


I love this and the extra data visualizations! I’m glad the world has people like you who enjoy doing these kinds of projects in their free time. :slight_smile:


Thank you people for these hearts and all kind words. All suggestions are also welcome.

This thread will be also my changelog.

Today, two new features are landing in the app:

Urgency load
Since beeminder API exposes this score, it would be nice to add it to the app. I can’t find it on beeminder though.

Amount due by day

I always looked this up on beeminder proper:

Tap on numbers to switch between relative and total values:


So cool!! It’d be really cool if we could see further out for the amount due by day. But I’m guessing that would be a headache to calculate more than Beeminder gives you…

I noticed that the hourly breakdown in all my goals seemed to be very heavily or even exclusively weighted toward the exact deadline, even for goals that I often fill data for well before the deadline. Specifically, half of my goals had literally no hours before 2300, and the others had at least 85% of datapoints in the last hour. For one such, with 22 pre-eleventh-hour times and 168 at the eleventh hour, the most recent 30 or more data points were, without exception, entered before 2300. Was there some very recent anomaly in the data such that no previous records have the correct times?

Fixed, thanks for this.
You have to refresh the page to see the changes (do twice if doesn’t help).

Beeminder for some reason sends me timestamps always (or almost always) with the same time for certain goals. Why is that? What I did was: Math.min(datapoint.timestamp, datapoint.updated_at).

1 Like

Wow, I adore this. Any additional ways to visualize data is an automatic :heart_eyes: from me.

A few things:

  • This loads my data faster than the actual Beeminder website (specifically my /productivity goal which definitely has way too many data points).
  • On goals where data is added daily, there seems to be a limitation with the calendar heatmap which only loads the last 8 months of data up until Octoberish 2021.

Thank you! If you have some specific idea of what you would like to see, let me know.

All of these observations are correct and related to each other. Performance gain comes partially from limiting number of datapoints loaded to 250. I didn’t want the app to crash on low-end devices.

I will handle this issue soon. This isn’t obvious how it should work. There are many options to choose from: remove the limit by default and allow to opt-in (my favourite), allow to choose date range, configure dashboard per goal, configure each widget etc.

This is fab!

I thought I’d let you know I found a discrepancy between BUI and Beeminder that I suspect is related to the “data at the deadline” issue mentioned above or maybe a timezone issue. On some (but not all) of my goals the data on BUI appears on the day after it does on Beeminder. E.g. for my ebike goal:

Thank you @k1rsty! I will address this, but no quick fix comes to my mind this evening.
All stuff can be tracked on github:

Today I added longest streaks charts and urgency score per goal:

Current streak is the highlighted one.

“Urgency score” is “how much this goal contributes to overall urgency score” which is 7 - buffer in days (or 0 if buffer > 7).

1 Like

Renamed “urgency score” to “urgency load” on goal page and duct taped urgency load calculation as suggested by @ianminds here. Thanks Ian!

Won goals won’t contribute to urgency load now. It means I no longer use beeminder’s implementation from user resource.

Also for @brennanbrown

I will no longer limit amount of datapoints fetched from beeminder by default. So you will see more data, but performance might be a bit worse. I don’t think I solved the problem, this is sort of a journey where I learn more about use cases and address things in more complex ways, step by step.

For those who experience performance degradation with long running goals, consider using new setting called “App limits” that will bring the old mechanism back.


Thanks for the quick response! I’m impressed. Even with all datapoints, it’s still a lot faster than Beeminder haha, just a few seconds of loading.

Also, I love the urgency load metric! I’m assuming 108 is pretty high :smiley:

1 Like

Thanks! I predict we’re going to run into issues sooner or later, but if it sparks joy, it’s great! Maybe my optics are a bit distorted, because this is literally my job to make apps feel fast.

Today we’re experimenting with comparing goals.

Anki (blue) vs commits (green). You can squeeze a lot of micro/minihabits around the day or as a first thing in the morning, while creative work requires more focus:

But maybe they come hand in hand sometimes; is deep work draining my water levels? Water (blue lol) and commits (green), there’s some weak correlation:

and yeah 108 feels pretty urgent to me, hopefully it comes from “should-relax” or “take-vacation” goal :wink:

1 Like

Just fyi beemind.me seems to no longer be active (it’s the first two links on that page).


@skorytnicki, this is insanely cool! While I mainly interact with Beeminder via my Emacs client (obviously), I love the visualizations (also, the speed). I will definitely want to use it!

One minor thing that triggers my OCD is the default React favicon, though. :wink:

1 Like