
SmarterPlaylists launched on July 25, 2015 as a side project — a visual programming tool that let anyone wire together Spotify sources, filters, and combiners to build playlists that no single Spotify feature could create on its own. No ads, no business model, no growth team. Just a tool I thought was cool, shared on a few subreddits, and then left running on a single server for over ten years.
Now, as I’m retiring the old system and replacing it with a ground-up rewrite, I cracked open the database one last time to see what a decade of quiet, organic usage actually looks like. The data only goes back to early 2016 (the first ~6 months predate the current database), but even so, the numbers surprised me.
The headline stats: 262,000 people logged in over the years. Nearly 70,000 of them built something. They created 278,600 programs and ran them over 9 million times. More than 50,000 scheduled jobs were still marked “active” when I pulled the plug — playlists that were meant to refresh themselves daily, weekly, or monthly, faithfully updating for years.
Not bad for a weekend project that never got a v1.0.
The Big Picture
| Metric | Value |
|---|---|
| Total programs created | 278,600 |
| Total unique users who built programs | 69,562 |
| Users who ever authenticated | 262,181 |
That gap between “authenticated” (262K) and “built something” (70K) is interesting — nearly 75% of visitors logged in with Spotify, poked around, and left without saving a program. The visual programming interface was powerful but had a steep learning curve. That’s one of the biggest things the rewrite aims to fix.
Run Statistics
| Metric | Value |
|---|---|
| Total program runs (all time) | 9,029,034 |
| Total errors | 643,645 |
| Error rate | 7.1% |
| Programs run at least once | 205,984 (74%) |
| Programs never run | 72,616 (26%) |
| Mean runs per program (of those run) | 43.8 |
| Median runs per program | 4 |
| Max runs (single program) | 68,351 |
Nine million runs. That’s roughly 2,500 playlist generations per day on average, every day, for ten years — all from a single server.
The median of 4 runs tells the real story though: most people built a program, ran it a few times to get it right, then either scheduled it or moved on. Meanwhile the mean of 43.8 is dragged way up by power users running programs tens of thousands of times via the scheduler. The gap between mean and median is the signature of a long-tail product.
A 7.1% error rate sounds high, but most errors were transient Spotify API issues — rate limits, expired tokens, playlists that got deleted. The system was designed to shrug these off and retry on the next scheduled run.
Sharing & Discovery
| Metric | Value |
|---|---|
| Shared programs (marked public) | 4,707 |
| Programs imported at least once | 2,488 |
| Total imports across all programs | 53,879 |
Sharing was always a secondary feature — there was no feed, no recommendations, just a “shared programs” page and the occasional Reddit post. Despite that, 53,879 imports means the average shared program that got any traction was imported about 22 times. The most popular one was imported over 5,000 times. Word of mouth carried the whole thing.
Scheduler
| Metric | Value |
|---|---|
| Total scheduled jobs ever created | 56,629 |
| Currently active scheduled jobs | 50,234 |
| Total scheduled runs | 1,914,294 |
This is the feature that kept SmarterPlaylists alive. Nearly 2 million automated playlist updates — your “Discover Weekly Archive” growing every Monday, your “Daily Mix minus songs I’ve already heard” refreshing every morning. Over 50,000 jobs were still marked “active” when I shut things down, though many of those had stale tokens. The scheduler was the heartbeat of the app.
User Distribution
| Programs per User | Users | % |
|---|---|---|
| 1 | 47,031 | 68% |
| 2–5 | 18,595 | 27% |
| 6–10 | 2,474 | 4% |
| 11–50 | 1,350 | 2% |
| 50+ | 112 | 0.2% |
A classic power-law distribution. Two thirds of users built exactly one program. But that top 0.2% — 112 users with 50+ programs each — they were prolific. The most prolific user created 693 programs. That’s not a user, that’s a hobbyist playlist factory.
Activity Timeline
SmarterPlaylists launched July 25, 2015. The database only goes back to early 2016, so the first ~6 months of activity aren’t captured here.
| Earliest recorded run | 2016-01-03 |
| Latest recorded run | 2026-03-05 |
Programs Last Active by Year
| Year | Programs | % of Total |
|---|---|---|
| 2016 | 4,751 | 1.7% |
| 2017 | 9,185 | 3.3% |
| 2018 | 13,016 | 4.7% |
| 2019 | 12,176 | 4.4% |
| 2020 | 21,032 | 7.5% |
| 2021 | 16,290 | 5.8% |
| 2022 | 15,463 | 5.6% |
| 2023 | 13,094 | 4.7% |
| 2024 | 11,740 | 4.2% |
| 2025 | 12,721 | 4.6% |
| 2026 | 5,302 | 1.9% |
The COVID bump is unmistakable — 2020 saw a 73% jump over 2019. People stuck at home, listening to more music, and apparently building more elaborate playlists. Usage never quite returned to that peak, but it stabilized at a healthy plateau from 2021 onward rather than falling off a cliff. Even in 2025, over 12,000 programs were still actively running — ten years after launch.
Monthly Active Users (last 36 months)
Note: “MAU” here represents users whose program’s most recent run falls in that month. True monthly active usage was likely higher, since this only captures the last run timestamp per program — a program run daily all year only shows up in its final month.
| Month | Users | Programs |
|---|---|---|
| 2023-04 | 761 | 1,086 |
| 2023-05 | 884 | 1,324 |
| 2023-06 | 725 | 1,137 |
| 2023-07 | 780 | 1,338 |
| 2023-08 | 660 | 981 |
| 2023-09 | 694 | 1,069 |
| 2023-10 | 717 | 1,051 |
| 2023-11 | 713 | 1,028 |
| 2023-12 | 383 | 611 |
| 2024-01 | 638 | 1,134 |
| 2024-02 | 662 | 1,046 |
| 2024-03 | 586 | 847 |
| 2024-04 | 669 | 941 |
| 2024-05 | 656 | 1,010 |
| 2024-06 | 664 | 1,005 |
| 2024-07 | 579 | 960 |
| 2024-08 | 652 | 959 |
| 2024-09 | 639 | 1,022 |
| 2024-10 | 674 | 938 |
| 2024-11 | 627 | 885 |
| 2024-12 | 693 | 993 |
| 2025-01 | 706 | 1,266 |
| 2025-02 | 587 | 961 |
| 2025-03 | 693 | 1,096 |
| 2025-04 | 683 | 966 |
| 2025-05 | 691 | 939 |
| 2025-06 | 724 | 1,633 |
| 2025-07 | 691 | 1,112 |
| 2025-08 | 638 | 900 |
| 2025-09 | 658 | 1,012 |
| 2025-10 | 643 | 1,096 |
| 2025-11 | 509 | 926 |
| 2025-12 | 351 | 814 |
| 2026-01 | 232 | 547 |
| 2026-02 | 908 | 2,917 |
| 2026-03 | 539 | 1,838 |
The remarkably steady ~600-700 MAU through 2024-2025 is striking for a project with zero marketing. December always dips (holiday lull?), and February 2026 spikes because I started publicly talking about the retirement and migration, which brought a wave of people back.
Top 25 Most Prolific Users (by program count)
| Rank | User | Programs | Total Runs |
|---|---|---|---|
| 1 | User A | 693 | 2,115 |
| 2 | User B | 387 | 7,183 |
| 3 | Julio | 379 | 4,690 |
| 4 | User C | 367 | 36,068 |
| 5 | User D | 353 | 59,331 |
| 6 | User E | 268 | 25,662 |
| 7 | User F | 221 | 661 |
| 8 | User G | 196 | 11,901 |
| 9 | Hunter | 190 | 4,393 |
| 10 | User H | 172 | 477 |
| 11 | Nipun | 163 | 10,078 |
| 12 | Thomas | 154 | 11,994 |
| 13 | User I | 148 | 8,149 |
| 14 | User J | 144 | 18,153 |
| 15 | User K | 142 | 9,867 |
| 16 | User L | 142 | 229,198 |
| 17 | User M | 139 | 800 |
| 18 | User N | 136 | 32,002 |
| 19 | User O | 135 | 4,583 |
| 20 | User P | 135 | 1,054 |
| 21 | User Q | 134 | 5,682 |
| 22 | plamere | 131 | 1,404 |
| 23 | User R | 127 | 169,251 |
| 24 | User S | 126 | 9,436 |
| 25 | User T | 119 | 38,211 |
There’s a fascinating split here between “builders” and “runners.” User A created 693 programs but only ran them 2,115 times — about 3 runs each on average. They were a tinkerer, endlessly experimenting. User L, on the other hand, had 142 programs but ran them 229,198 times — these were workhorse playlists, scheduled and running daily for years. Two very different ways to love the same tool.
Top 25 Power Users (by total runs)
| Rank | User | Total Runs | Programs | Errors |
|---|---|---|---|---|
| 1 | Tim | 330,997 | 110 | 35,122 |
| 2 | User L | 229,198 | 142 | 3,567 |
| 3 | User R | 169,251 | 127 | 7,963 |
| 4 | User D | 59,331 | 353 | 3,622 |
| 5 | User U | 49,040 | 20 | 1,090 |
| 6 | Kjell | 39,445 | 42 | 1,397 |
| 7 | User T | 38,211 | 119 | 1,517 |
| 8 | User V | 37,386 | 109 | 2,940 |
| 9 | User W | 37,248 | 33 | 1,374 |
| 10 | User C | 36,068 | 367 | 928 |
| 11 | User X | 35,765 | 29 | 1,851 |
| 12 | User N | 32,002 | 136 | 3,520 |
| 13 | User Y | 31,507 | 83 | 1,206 |
| 14 | User Z | 29,753 | 64 | 721 |
| 15 | User AA | 28,050 | 14 | 1,103 |
| 16 | User BB | 27,167 | 41 | 381 |
| 17 | User CC | 27,023 | 42 | 796 |
| 18 | Fredrik | 26,578 | 115 | 1,782 |
| 19 | User DD | 26,177 | 92 | 567 |
| 20 | User EE | 25,725 | 31 | 908 |
| 21 | User E | 25,662 | 268 | 1,260 |
| 22 | User FF | 25,201 | 12 | 1,421 |
| 23 | John | 24,378 | 71 | 1,208 |
| 24 | Roger | 24,024 | 19 | 733 |
| 25 | User GG | 22,456 | 33 | 1,120 |
Tim is in a league of his own: 330,997 total runs across 110 programs. That’s roughly 90 program runs per day sustained over years. His top 5 programs alone account for nearly 280,000 runs. Whatever Tim was doing with his music, he was serious about it.
User AA is the efficiency champion — only 14 programs, but 28,050 runs. That’s 2,004 runs per program on average. Build it once, run it forever.
Top 25 Most Run Programs
| Rank | Program | Owner | Runs |
|---|---|---|---|
| 1 | #random.select | Tim | 68,351 |
| 2 | #random.bucket | Tim | 68,265 |
| 3 | #random.listening.year | Tim | 66,119 |
| 4 | #nine | Tim | 39,852 |
| 5 | #random.release.year | Tim | 36,953 |
| 6 | (unnamed) | (unknown) | 29,850 |
| 7 | (unnamed) | (unknown) | 27,741 |
| 8 | moetjehoren002 | User U | 24,510 |
| 9 | (unnamed) | (unknown) | 22,160 |
| 10 | (unnamed) | (unknown) | 19,337 |
| 11 | (unnamed) | (unknown) | 16,626 |
| 12 | (unnamed) | (unknown) | 16,067 |
| 13 | (unnamed) | (unknown) | 13,020 |
| 14 | Today Artists | User R | 11,908 |
| 15 | Songs V2a | User HH | 10,617 |
| 16 | A list | User GG | 10,399 |
| 17 | (unnamed) | (unknown) | 10,203 |
| 18 | Combined Lists | User AA | 10,131 |
| 19 | (unnamed) | (unknown) | 10,048 |
| 20 | (unnamed) | (unknown) | 9,660 |
| 21 | Made For You | User AA | 9,526 |
| 22 | (unnamed) | (unknown) | 9,206 |
| 23 | (unnamed) | (unknown) | 8,823 |
| 24 | (unnamed) | (unknown) | 8,150 |
| 25 | my super mix | Rodolfo | 8,123 |
Tim’s top 5 programs owned the leaderboard so completely that the next contender had less than half his #1’s run count. The #random.* naming convention suggests he built a suite of randomization programs — different ways to shuffle his listening by bucket, era, or mood.
A lot of the heavy hitters are “(unnamed) / (unknown)” — these are programs from early in the app’s life, before I started tracking names and owners in metadata. The programs themselves still exist, but the metadata was lost. Ghost playlists, faithfully running for years with no name attached.
Top 25 Most Popular Shared Programs (by imports)
| Rank | Program | Owner | Imports | Runs |
|---|---|---|---|---|
| 1 | My forgotten tracks | User II | 5,054 | 8 |
| 2 | My Discovery Weekly Archiver | plamere | 4,853 | 60 |
| 3 | yesterday and today | plamere | 3,400 | 27 |
| 4 | The daily dozen | plamere | 3,292 | 1 |
| 5 | All Time Top Tracks | Abhishek | 2,326 | 97 |
| 6 | Combine two playlists | plamere | 2,186 | 20 |
| 7 | True Release Radar | James | 1,529 | 244 |
| 8 | Ultimate Coffee House | plamere | 1,287 | 7 |
| 9 | Less Teen-Oriented New Music | plamere | 1,096 | 1 |
| 10 | My forgotten tracks | plamere | 987 | 116 |
| 11 | My Top Played Tracks of All-Time | User JJ | 787 | 149 |
| 12 | Shuffler | User KK | 769 | 5 |
| 13 | BigMix | User LL | 743 | 351 |
| 14 | Recommended Daily (posted) | User J | 684 | 29 |
| 15 | DailyRec | User LL | 663 | 469 |
| 16 | Daily Discover | User MM | 641 | 277 |
| 17 | Gothic Metal front-loaded with Ravenscry | plamere | 615 | 4 |
| 18 | RELAXING MUSIC PLAYLIST GENERATOR | User NN | 553 | 16 |
| 19 | My Discovery Weekly Archiver | User OO | 506 | 51 |
| 20 | Bot-Mix | User J | 502 | 0 |
| 21 | Will they make it? | User PP | 455 | 448 |
| 22 | My Top Tracks | User J | 422 | 1 |
| 23 | Workout | User QQ | 415 | 3 |
| 24 | recently played | plamere | 411 | 2 |
| 25 | Cleaning List | User RR | 391 | 81 |
The sharing leaderboard tells you what people actually wanted from Spotify that they couldn’t get natively. The top hits are all utilities: archive your Discover Weekly before it disappears, combine playlists, deduplicate, filter out songs you’ve already heard. “My forgotten tracks” — a program that surfaces songs from your library you haven’t played in a long time — was the single most imported program at 5,054 imports, and User II only ever ran it 8 times themselves. They built it, shared it, and the community ran with it.
I’m a little proud that so many of my example programs (plamere) made it into the top 25. “Gothic Metal front-loaded with Ravenscry” at #17 is a personal favorite — 615 people apparently also wanted their gothic metal playlist to lead with Ravenscry. Niche appeal is still appeal.
25 Biggest Programs (by component count)
| Rank | Program | Owner | Components |
|---|---|---|---|
| 1 | bing-short | Dylan | 401 |
| 2 | h10 | User SS | 305 |
| 3 | h80 | User SS | 305 |
| 4 | h90 | User SS | 305 |
| 5 | hOld | User SS | 305 |
| 6 | h20 | User SS | 305 |
| 7 | h00 | User SS | 305 |
| 8 | h70 | User SS | 305 |
| 9 | Nirvana Radio v26 | User TT | 289 |
| 10 | Nirvana Radio v26 | User UU | 287 |
| 11 | import of Nirvana Radio v26 | User VV | 287 |
| 12 | Nirvana Radio v24 | User UU | 283 |
| 13 | Nirvana Radio v22 | User UU | 282 |
| 14 | Nirvana Radio v23 | User UU | 270 |
| 15 | Nirvana Radio v20 | User UU | 270 |
| 16 | Nirvana Radio v27.02 | User TT | 268 |
| 17 | Nirvana Radio v18 | User UU | 267 |
| 18 | Nirvana Radio v21 | User UU | 266 |
| 19 | Nirvana Radio v25 | User UU | 265 |
| 20 | Nirvana Radio v17 saturday | User UU | 261 |
| 21 | Nirvana Radio v17 | User UU | 261 |
| 22 | Nirvana Radio v19 | User UU | 257 |
| 23 | Rock Favourites | Tom | 254 |
| 24 | Groovy Artists | User WW | 252 |
| 25 | Die drei Schlafezeichen | User XX | 249 |
The biggest programs are a testament to user dedication (or obsession). Dylan’s “bing-short” tops the chart at 401 components — that’s a visual program with 401 nodes wired together on a canvas. I can barely imagine what that looks like.
But the real star here is User UU and their “Nirvana Radio” saga. They iterated through at least 27 versions of the same program, each one with 250-290 components, growing and refining it over time. Versions 17 through 27, spanning years. It was popular enough that User TT and User VV imported copies of it. That’s someone who turned SmarterPlaylists into an art form.
Most Used Component Types (across all programs)
| Rank | Component | Usage Count |
|---|---|---|
| 1 | SpotifyPlaylist | 352,807 |
| 2 | Sample | 59,253 |
| 3 | Shuffler | 59,138 |
| 4 | PlaylistSave | 53,270 |
| 5 | MyTopTracks | 52,261 |
| 6 | Concatenate | 49,843 |
| 7 | SpotifyArtistRadio | 44,560 |
| 8 | DeDup | 43,162 |
| 9 | ArtistTopTracks | 41,066 |
| 10 | MySavedTracks | 38,764 |
| 11 | AlbumSource | 37,538 |
| 12 | Sorter | 35,645 |
| 13 | comment | 34,670 |
| 14 | TrackFilter | 30,325 |
| 15 | Alternate | 28,736 |
| 16 | RelativeDatedSpotifyPlaylist | 28,338 |
| 17 | First | 25,567 |
| 18 | Mixer | 22,342 |
| 19 | AttributeRangeFilter | 20,625 |
| 20 | PlaylistSaveToNew | 17,150 |
| 21 | MyFollowedArtists | 15,442 |
| 22 | MixIn | 13,035 |
| 23 | RandomSelector | 12,129 |
| 24 | Energy | 11,675 |
| 25 | ReleaseDateFilter | 11,501 |
| 26 | ArtistDeDup | 11,219 |
| 27 | SeparateArtists | 9,974 |
| 28 | Tempo | 9,850 |
| 29 | Weighted Shuffler | 9,728 |
| 30 | DatedSpotifyPlaylist | 9,286 |
SpotifyPlaylist dominates at 352K uses — almost every program starts with “take this playlist as input.” The rest of the top 10 reads like a recipe: take a playlist, sample some tracks, shuffle them, remove duplicates, and save. That’s the core loop.
The “comment” component at #13 with 34,670 uses warms my heart. It does nothing — it’s just a sticky note on the canvas. But 34,000 times, people felt the need to annotate their programs with explanations. They were documenting their work, even in a visual tool, even when nobody else would see it.
Looking Back
Ten years, nine million runs, seventy thousand users, zero revenue. SmarterPlaylists was never a business — it was a proof of concept that escaped into the wild and found an audience of people who cared about their music enough to program their playlists.
The data tells a story of a long-tail product: most people tried it once, but those who got it really got it. Tim with his 330,000 runs. User UU with 27 versions of Nirvana Radio. The 50,000 scheduled jobs humming away in the background. The person who imported “My forgotten tracks” and rediscovered songs they’d loved and lost.
The new version aims to keep everything that made the old one special — the power, the flexibility, the “I can’t believe I can do this” moments — while making it approachable enough that more than 27% of visitors actually build something.
Here’s to the next decade.
(Thanks to Claude and Gemini for helping me write this post)