StreamBuilder: Our Open-source Framework For Powering Your Dashboard.

StreamBuilder: our open-source framework for powering your dashboard.

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.

More Posts from Mlu and Others

mlu
4 years ago

40% Capitol

40% Capitol
mlu
1 year ago

Tec, Untitled, 2022-23

Digital Collage

mlu
1 year ago
mlu - That's a blog.
mlu
1 year ago

Introducing Collections

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!

A bit of context

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.

Ok, but what's the idea?

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!

Introducing Collections

You can check out that example collection on the web here!

We want your help

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. 

What happens next?

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

mlu
2 years ago

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.

mlu
4 years ago
‘velvet-drive’

‘velvet-drive’

mlu
1 year ago

My girlfriend when she sees me playing Baldur's Gate 3

mlu - That's a blog.

Tags
mlu
2 years ago
mlu - That's a blog.
mlu
1 year ago

obsessed with this silly tiger

mlu
2 years ago
mlu - That's a blog.
  • 17millionpoundmarijuanabrick
    17millionpoundmarijuanabrick reblogged this · 3 weeks ago
  • 8763289
    8763289 reblogged this · 1 month ago
  • hwslgzju28-6
    hwslgzju28-6 reblogged this · 1 month ago
  • matmax392
    matmax392 liked this · 1 month ago
  • narutothehokage123
    narutothehokage123 liked this · 1 month ago
  • chroma-imp
    chroma-imp liked this · 1 month ago
  • advaitspirituality
    advaitspirituality liked this · 4 months ago
  • amar11111-blog
    amar11111-blog liked this · 7 months ago
  • mirtacros
    mirtacros liked this · 7 months ago
  • dreamwhip
    dreamwhip liked this · 9 months ago
  • sharonhannah
    sharonhannah liked this · 10 months ago
  • quilith
    quilith liked this · 10 months ago
  • ecowarriorsagainstplastic
    ecowarriorsagainstplastic liked this · 11 months ago
  • 8763289
    8763289 reblogged this · 11 months ago
  • alisterno02
    alisterno02 liked this · 1 year ago
  • silvermist67
    silvermist67 liked this · 1 year ago
  • amylico
    amylico liked this · 1 year ago
  • smolidraws
    smolidraws liked this · 1 year ago
  • fund-goal-within
    fund-goal-within liked this · 1 year ago
  • fund-goal-within
    fund-goal-within reblogged this · 1 year ago
  • dgaveld33
    dgaveld33 liked this · 1 year ago
  • see-stand-fly
    see-stand-fly liked this · 1 year ago
  • fadingcollectivearcade
    fadingcollectivearcade liked this · 1 year ago
mlu - That's a blog.
mlu
That's a blog.

Human | Earth | Tumblr Staff | ~ 30 Earth-Sol revolutions | My nucleobases are A/T/C/G

240 posts

Explore Tumblr Blog
Search Through Tumblr Tags