Hello again, Labs here with a recap of our test of Collections! We introduced this prototype back in September and then handed the feature to a handful of volunteers sourced from the notes on that post. Thank you again to all volunteers!
We got so much useful feedback, and wanted to share some of that here, and reveal some next steps we’re taking. There are a couple of big projects cooking in Labs, and Collections has taken a backseat lately, but it is important to us to not leave y’all hanging. We very much want to build things with you here.
Our goal with the volunteer-based super-early phase of Collections was to see if those volunteers actually use the feature, watch what they come up with, and check whether anybody they invite to Tumblr signs up and becomes a regular user of the site. Turns out, nobody did sign up — it’s not as useful of an onboarding strategy as we thought it could be.
However, one piece of feedback we got is that Collections make great custom feeds, which people on Tumblr have been asking for a lot over the years. We hear you loud and clear: you want to supplement the standard Following / For You experience with more intentional control over feed content. That’s really important to us.
With that in mind, for those in the prototype, we’ve moved the Collections list to the left sidebar / mobile navigation as an expandable area like Account, for quick access. We like this better than putting them in the dashboard tab bar, but it’s still something we’re mulling over:
We also heard the need for more filtering options beyond just blogs and tags. What about only including a blog’s posts that use a certain tag, or excluding posts using a certain tag? Or list tags with a boolean AND operator (“posts tagged [tag] and [other tag]”), not just the OR operator we’re using now for sourcing tagged posts. Lots of ideas on how to further customize what shows up in the feed, and better define what the feed is “for”.
There were other fun, tangential bits of feedback, too, like the desire to make these Collections a collaborative feature, so that more than one person can help build a Collection. There were also several usability issues that came to the forefront, which we’ve addressed. And there were some well-articulated thoughts and questions about etiquette, such as how to seek a blog’s “permission” to be included in a Collection – that’s something we care a lot about, to help prevent this kind of feature from being a source of abuse.
Another piece of feedback we heard repeatedly is the desire for Collections of posts. This is not really what we intended with what we built, but it’s not too far afield either. We totally agree that having better, easier ways of collecting and curating individual posts would be useful, so we’re going to investigate that as a separate project.
With all of this in mind, we’ve split the work on Collections into two separate tracks:
Shaping this feature as a “customizable feeds” solution, away from an “invite others” tool.
Building a new thing for saving and curating static posts.
Stay tuned here on the Labs blog for updates on when/if we’ll be moving these Collections tracks of work to more people on Tumblr. (If you are one of the volunteers who helped us with Collections, you’ll still have access to it for the time being!)
Thanks for reading! And please reach out to us via Support, the replies here, or your reblogs, if you have any more feedback, as always.
Tintin v. Indy, Adam Murphy
Someone's dropped their French baked goods again!
San Francisco, 2023.
wow players having to stand in lines for a quest because a relevant npc can only talk to one player at a time. is the funniest image on the planet
I suppose this is a good opportunity to let people know that I'll be running Tumblr personally for a while, and it will be my top priority within Automattic. There is a ton of opportunity for improvements the community has asked for and deserves, and I'm excited to work on it.
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.
the new dj crazytimes song … now that’s what I call music!
can’t have shit
You should read this article. Honestly. You’ll thank me later.
Human | Earth | Tumblr Staff | ~ 30 Earth-Sol revolutions | My nucleobases are A/T/C/G
240 posts