Today, we’re abnormally jazzed to announce that we’re open-sourcing the custom framework we built to power your dashboard on Tumblr. We call it StreamBuilder, and we’ve been using it for many years.
First things first. What is open-sourcing? Open sourcing is a decentralized software development model that encourages open collaboration. In more accessible language, it is any program whose source code is made available for use or modification as users or other developers see fit.
What, then, is StreamBuilder? Well, every time you hit your Following feed, or For You, or search results, a blog’s posts, a list of tagged posts, or even check out blog recommendations, you’re using this framework under the hood. If you want to dive into the code, check it out here on GitHub!
StreamBuilder has a lot going on. The primary architecture centers around “streams” of content: whether posts from a blog, a list of blogs you’re following, posts using a specific tag, or posts relating to a search. These are separate kinds of streams, which can be mixed together, filtered based on certain criteria, ranked for relevancy or engagement likelihood, and more.
On your Tumblr dashboard today you can see how there are posts from blogs you follow, mixed with posts from tags you follow, mixed with blog recommendations. Each of those is a separate stream, with its own logic, but sharing this same framework. We inject those recommendations at certain intervals, filter posts based on who you’re blocking, and rank the posts for relevancy if you have “Best stuff first” enabled. Those are all examples of the functionality StreamBuilder affords for us.
So, what’s included in the box?
The full framework library of code that we use today, on Tumblr, to power almost every feed of content you see on the platform.
A YAML syntax for composing streams of content, and how to filter, inject, and rank them.
Abstractions for programmatically composing, filtering, ranking, injecting, and debugging streams.
Abstractions for composing streams together—such as with carousels, for streams-within-streams.
An abstraction for cursor-based pagination for complex stream templates.
Unit tests covering the public interface for the library and most of the underlying code.
What’s still to come
Documentation. We have a lot to migrate from our own internal tools and put in here!
More example stream templates and example implementations of different common streams.
If you have questions, please check out the code and file an issue there.
40% Capitol
Tec, Untitled, 2022-23
Digital Collage
Hello again, Tumblr. Labs division here!
A while back, we announced our comeback as a new team that would imagine big ideas for Tumblr—and would build them in public (aka with you). We recently announced our first failure, and today we're very excited to announce our first possible success!
As we've said before, an essential part of how we're working in Labs is speaking to people who use Tumblr pretty much on a daily basis and those who don’t use it at all.
In those interviews and focus groups, we learned that curating the Tumblr experience around different interests and fandoms is a big part of making Tumblr feel like your own space — and one of the main ways you do that is through blogs and tags (be it following or creating them).
So here at Labs we're working on ideas to help you curate the content you care about, and to help share what makes your experience fun with other people, even if they are not on Tumblr already.
Have you ever put together a song playlist to listen to when you're in a certain mood, or share with a specific friend? Or sent them books you know they'll love? Now imagine if you could do that with blogs and tags on Tumblr…
Maybe you're a veteran in a fandom and have the best recommendations of who to follow for your followers. Or your best friend won't join Tumblr because they don't know that their favorite TV show is actually really popular here. Or maybe you want to curate and browse content from a specific fandom, or a group of your mutuals, your own way.
That's the idea behind Collections!
You can check out that example collection on the web here!
The first way we're testing Collections is by inviting some of you to create your own and share with followers and friends—they'll be able to follow all the blogs and tags in your collections. So we're looking for volunteers!
You want to help? Great! Here's what you need to do:
Come up with your own Collections of blogs and tags, write it down somewhere. Focus on introducing people to Tumblr or recommending stuff to your followers. What would you want them to first see on your version of Tumblr?
Come up with a name, cover image, and description for it. Also try to think of who you would send your collection to, and where you might post about it.
Write out that idea as a reply or reblog on this post!
We’ll give it a few days, and pick a handful of people to play with Collections. We'll let you know. Then we’re off to the races!
If you decide to participate (and get selected), please note that this early release won’t work on the apps yet, only in your web browser.
Our goal is to keep working on improving and adding Collection functionalities while you test what we've built (and share your feedback with us).
Next we’re exploring making a collection something you can follow on Tumblr, as a way to curate Tumblr around your many interests and moods, and to give you more freedom to curate content on your dashboard.
And if this idea is not for you, remember we have many more experiments in progress, so stay tuned!
With love,
Labs division
I’m Ngl I know people want the bots gone and the tumblr staff to focus on that instead of fun stuff, but two things:
A) Bots are extraordinarily difficult to get rid of. It’s like trench warfare and bots adapt to every new security measure you might take. The staff want them gone as much as you do if not more because it probably actually affects their daily job tasks lol
B) Fun shit like checkmarks and vanilla extract tumblers help fund the site so we don’t have to have ads that suck on it.
I know you want a better experience, but the staff are probably working on multiple things at the same time. Fun shit and maintenance shit. And they’re probably doing everything they can. Re-fucking-lax.
‘velvet-drive’
obsessed with this silly tiger
Human | Earth | Tumblr Staff | ~ 30 Earth-Sol revolutions | My nucleobases are A/T/C/G
240 posts