Tumblr Engineering

Dispatches from the intrepid tinkerers behind technology at Tumblr.

Latest articles

Updating Tumblr on the Web

We posted an update about this back in April, and now as of July 1st, it’s really, really here, for everyone: the old dashboard has been replaced with our brand new web experience on desktop. This has been a very long time in the making, and the primary reason behind it is to make the desktop web experience of Tumblr easier to maintain and build on...

<p>Hello! I've noticed that Tumblr now uses React. I was wondering what was the stack used before and how long did it take to migrate from said stack to React? And why React over Vue?</p>

Great questions! Some of the answers you’ll find over on our Javascript blog, which is run by our Javascript engineers here at Tumblr. Feel free to send an ask or two their way!

staff: Dusting off the cobwebs Over the past couple of weeks, we...

staff: Dusting off the cobwebs Over the past couple of weeks, we have slowly rolled out a spiffy new version of Tumblr on the web. Here’s a smattering of goodies in the update: Dark mode is now available on the web! Along with a few other color schemes, too. Just click the silhouette figure in the upper right corner and then click “Change Palette”...

New, Bigger Post IDs

As some of you close watchers may have noticed, we recently updated the ID numbers for new posts on Tumblr to be huuuuuge. Post IDs were always 64-bit integers to us at Tumblr, but now they’re actually big enough to push into that bitspace. While this doesn’t change anything for anyone using the official Tumblr apps or website, it did cause some hiccups...

Just checking since things suddenly behaved differently and it broke an automation script, but was there a change made to the /dashboard API? I've been using it to relay posts from a list of artists to a Discord channel so the artists in the group can keep up with each other and new artists can discover them, and suddenly I started getting back the post originally mentioned in the since_id, and with an invalid short_url as well.

Hello! There was an incident yesterday and today that could be related, documented here. It should be resolved now, though. If you are still having issues, please contact https://www.tumblr.com/support with as many details as possible and we’ll try to get back to you as soon as we can!

javascript: ✨🖥✨ Hi there! Your friendly neighborhood Tumblr web developer here. You may have...

javascript: ✨🖥✨ Hi there! Your friendly neighborhood Tumblr web developer here. You may have recently noticed that we’re making some changes around the site. Some of you might have even gotten the chance to play around with a beta version of our site on desktop. We may be biased, but we think it’s pretty neat! However, we know that a lot of you don’t...

Hey can I get a job or something?

Keep an eye on tumblr.com/jobs 👀

Hi folks - long time tumblr user - love your work. Now that you are owned by Automattic - who have a long tradition of open source, I was wondering if you have any plans to open source the Tumblr iOS app?

Hello! Good question. We at Tumblr love open source as well! We don’t know yet if we’re going to open source anything like the iOS app. But if we do any new open sourcing work, we’ll post about it on here, so stay tuned.

(cont.) furthermore, while I understand that tumblr's architecture makes efficient post lookup by ID impossible without a blog name or reblog key, couldn't you run a backfill process that took a very long time but repaired those broken URLs by very slowly searching for the unique post ID and replacing the URL with a uuid-based one? This may take a very long time to finish, but it would reduce the set of posts with broken trail items to ones that have been hard-deleted from the database.

This is a great follow up question! First of all: this is definitely in the realm of possibility and it’s something we’ve thought of before. At Tumblr, we’ve done some absolutely wild things at scale. When it comes to Posts on Tumblr, that’s where our scale gets really mind-blowing. In order to process something that could affect almost every Post record...

so, in your reblog explainer you talk about how broken trail items are used for posts where the username no longer resolves. but one thing that's confusing to me is that in broken trail items you only provide the old blog name, rather then the unresolvable post. wouldn't it be useful for clients to have a globally unique reference to the old post that was originally part of the reblog chain?

Yeah, great question. This is a flaw (partially, because it’s also an optimization) in how reblog trail storage was originally designed. It’s what we’d call an “edge case” because it’s rare. In the “How Reblogs Work” post, the example reblog trail HTML is pretty much all of the information we have at runtime when displaying an old, non-NPF post’s reblog...

Discover, share and read the best on the web

Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters! Get unfiltered news feeds or filter them to your liking.

Get Inoreader
Inoreader - Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters!