You can now click a tag in a community post to view only posts with that tag on that community, just like you could already with blogs.
Added screenreader labels to reaction buttons on community posts.
🛠 Fixed
Fixed a bug where only the first 5 mentions in a post would properly link.
Fixed a bug where multiple tooltips for reactions on community posts could remain open simultaneously.
Fixed an issue in the Android app, where the Notes field when moderating community content would be hidden by the onscreen keyboard. You can now scroll the dialog to see the Notes field.
Fixed reaction button tooltips running off the screen at some screen widths.
Fixed an issue where a stored payment method could not be updated.
Fixed an issue that prevented premium theme purchases for some folks.
Fixed an issue that prevented purchased premium theme credits from being added to your account.
🚧 Ongoing
On communities, the ability to pop the video player out of the feed has been disabled since it was not working properly. We’re working on a fix for it.
🌱 Upcoming
No upcoming launches to announce today.
Experiencing an issue? Check for Known Issues and file a Support Request if you have something new. We’ll get back to you as soon as we can!
If you use Tumblr on a web browser, you might have noticed us testing a brand new navigation on your dashboard in the last month. Now, after some extensive tweaks, we’ve begun rolling out this new dashboard navigation to everyone using a web browser. Welcome to the new world. It’s very like the old world, just in a different layout.
Why are we doing this? We want it to be as easy as possible for everyone to understand and explore what’s happening on Tumblr—newbies and seasoned travelers alike.
Labels over icons: When adding something new to Tumblr in the past, we’d simply add a new icon to our navigation with little further explanation. Turns out no one likes to press a button when they don’t know what it does. So now, where there’s space, the navigation includes text labels. Since adding these, we’ve noticed more of you venturing to previously unexplored corners of Tumblr. Intrepid!
What’s already been fixed? Thanks to feedback from folks during the testing phase, we’ve been able to make some improvements right out of the gate. Those include returning settings subpages (Account, Dashboard, etc.) to the right of the settings page instead of having them in an expandable item in the navigation on the left; fixing some issues with messaging windows on smaller screens; and streamlining the Account section to make it easier to get to your blogs.
What’s next? We’re looking into making a collapsible version of this navigation and improving the use of screen space for those of you with enormous screens. We’re also working on improving access to your account and sideblogs.
That’s all for now, folks. For questions and suggestions, contact Support using the “Feedback” category. Please select the “Report a bug or crash” category on the support form for technical issues. And keep an eye out for more updates here on @changes.
We’ve adjusted the limit to how many free-to-join communities a person can join down to 10 per day max / 3 per hour max. If you’re super jazzed to join more than 10 free-to-join communities per day, please contain your excitement for 24 hours. Also, this limit does not get counted when being invited to a community or requesting to join communities.
When filtering posts by tag in a community, we now highlight the tag in the list of tags in each post.
Moderators can now kick and ban members from communities, not just admins.
🛠️ Fixed
Posts made in the first ~24 hours or so of 2025 weren’t being indexed into search results, but we’ve fixed that up.
When reporting a post, blog, or community in the mobile apps, there’s now a “Done” button after filing the report, to make sure there’s a way you can go back to where you were.
We’ve fixed a couple of bugs that were causing activity unread counts to be incorrect because your request-to-join for a community was accepted or rejected.
If you have Fast Queue enabled in Labs, we fixed a bug that was causing the fast queue button on web to have the wrong color on Blazed posts.
🚧 Ongoing
We’re aware that popular free-to-join communities are facing an unfortunate amount of spam. We’re working to add tools to help mods and admins fight that spam, stay tuned for more info here and in the Feedback community!
🌱 Upcoming
We’re working on implementing a “moderation queue” for communities, which will be a place where admins and mods can see member-reported content and take action on it quickly and easily in one place. We may also use this space to automatically move suspicious posts from new members for admins and mods to take a look at before they’re published to the community.
Experiencing an issue? Check for Known Issues and file a Support Request if you have something new. We’ll get back to you as soon as we can!
At Tumblr, we’re always looking for new ways to improve the performance of the site. This means things like adding caching to heavily used codepaths, testing out new CDN configurations, or upgrading underlying software.
Recently, in a cross-team effort, we upgraded our full web server fleet from PHP 5 to PHP 7. The whole upgrade was a fun project with some very cool results, so we wanted to share it with you.
Timeline
It all started as a hackday project in the fall of 2015. @oli and @trav got Tumblr running on one of the PHP 7 release candidates. At this point in time, quite a few PHP extensions did not have support for version 7 yet, but there were unofficial forks floating around with (very) experimental support. Nevertheless, it actually ran!
This spring, things were starting to get more stable and we decided it was time to start looking in to upgrading more closely. One of the first things we did was package the new version up so that installation would be easy and consistent. In parallel, we ported our in-house PHP extensions to the new version so everything would be ready and available from the get-go.
A small script was written that would upgrade (or downgrade) a developer’s server. Then, during the late spring and the summer, tests were run (more on this below), PHP package builds iterated on and performance measured and evaluated. As things stabilized we started roping in more developers to do their day-to-day work on PHP 7-enabled machines.
Finally, in the end of August we felt confident in our testing and rolled PHP 7 out to a small percentage of our production servers. Two weeks later, after incrementally ramping up, every server responding to user requests was updated!
Testing
When doing upgrades like this it’s of course very important to test everything to make sure that the code behaves in the same way, and we had a couple of approaches to this.
Phan. In this project, we used it to find code in our codebase that would be incompatible with PHP 7. It made it very easy to find the low-hanging fruit and fix those issues.
We also have a suite of unit and integration tests that helped a lot in identifying what wasn’t working the way it used to. And since normal development continued alongside this project, we needed to make sure no new code was added that wasn’t PHP 7-proof, so we set up our CI tasks to run all tests on both PHP 5 and PHP 7.
Results
So at the end of this rollout, what were the final results? Well, two things stand out as big improvements for us; performance and language features.
Performance
When we rolled PHP 7 out to the first batch of servers we obviously kept a very close eye at the various graphs we have to make sure things are running smoothly. As we mentioned above, we were looking for performance improvements, but the real-world result was striking. Almost immediately saw the latency drop by half, and the CPU load on the servers decrease at least 50%, often more. Not only were our servers serving pages twice as fast, they were doing it using half the amount of CPU resources.
These are graphs from one of the servers that handle our API. As you can see, the latency dropped to less than half, and the load average at peak is now lower than it’s previous lowest point!
Language features
PHP 7 also brings a lot of fun new features that can make the life of the developers at Tumblr a bit easier. Some highlights are:
Scalar type hints: PHP has historically been fairly poor for type safety, PHP 7 introduces scalar type hints which ensures values passed around conform to specific types (string, bool, int, float, etc).
Return type declarations: Now, with PHP 7, functions can have explicit return types that the language will enforce. This reduces the need for some boilerplate code and manually checking the return values from functions.
Anonymous classes: Much like anonymous functions (closures), anonymous classes are constructed at runtime and can simulate a class, conforming to interfaces and even extending other classes. These are great for utility objects like logging classes and useful in unit tests.
Various security & performance enhancements across the board.
Every so often, our Legal and Policy teams review Tumblr’s Community Guidelines to make sure they’re crisp, clear, and—most important of all—an accurate reflection of our community and its values.
Here’s a quick summary of some changes we’ve made (which you can see in detail over on GitHub):
Clarified our policy around promoting terrorism (don’t do it).
Reinforced our policy on posting non-consensual pornography (don’t do it).
Updated our harassment policy to reflect our improved block feature.
Added a dormancy policy to release URLs and archive long-term inactive blogs.
Have a look, and feel free to email policy@tumblr.com with any questions or concerns. Thank you!
10,000 years ago, before the advent of written language, the earliest app developers relied entirely on symbols and animation to convey a message to users. Of course, we still rely on non-lingual cues as shorthand for specific actions and to help people navigate the app, but in the last few hundred years we have also started to include copy.
Copy makes it possible to communicate complex concepts, but in its ubiquity it can get overlooked. Not so in the Tumblr app. Like those early app developers who tracked antelope migration patterns on cave walls and first used magnifying glasses to represent search, we take a very personal approach to copy. In this post we want to share a few places we’ve tried to lift Tumblr out of the drab standardization of many modern day apps.
Error messages
When we’re rewriting error messages we try to keep two things in mind: Make the error as comprehensible as possible and, if possible, suggest a solution. Here’s a long-retired string from our Android app:
<string name=“photo_capture_exception”>Unable to open camera to capture photo.</string>
This error occurs not because of anything the app did, but because—incredibly—on Android, you can delete your camera. But the user wouldn’t know that from the error. They’d just think the app sucks, give it a bad rating, and probably stop using Tumblr all together. That’s why it now reads:
Believe it or not, you don’t have a camera app installed.
The new version tells the user 1) why they can’t take a picture (no camera app), and 2) how to resolve it (go get one).