CINXE.COM
Tumblr Engineering
<!DOCTYPE html><script>var __pbpa = true;</script><script>var translated_warning_string = 'Warning: Never enter your Tumblr password unless \u201chttps://www.tumblr.com/login\u201d\x0ais the address in your web browser.\x0a\x0aYou should also see a green \u201cTumblr, Inc.\u201d identification in the address bar.\x0a\x0aSpammers and other bad guys use fake forms to steal passwords.\x0a\x0aTumblr will never ask you to log in from a user\u2019s blog.\x0a\x0aAre you absolutely sure you want to continue?';</script><script type="text/javascript" language="javascript" src="https://assets.tumblr.com/assets/scripts/pre_tumblelog.js?_v=b9f848c06fcba7eaf305d4a7cb7a1b98"></script><!DOCTYPE html> <!--[if IE 8]><html class="lt-ie10 lt-ie9"> <![endif]--> <!--[if IE 9]><html class="lt-ie10"> <![endif]--> <!--[if gt IE 9]><!--> <html> <!--<![endif]--> <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# blog: http://ogp.me/ns/blog#"> <meta name="apple-itunes-app" content="app-id=305343404,affiliate-data=at=11l3M5&ct=us.itunes.uni.tumblr.ipdt,app-argument=tumblr://x-callback-url/blog?blogName=engineering&referrer=smart-app-banner"> <meta charset="utf-8"> <title>Tumblr Engineering</title> <meta name="description" content="We, y'know, build Tumblr and stuff."> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="theme-color" content="#35465D"> <style>figure{margin:0}.tmblr-iframe{position:absolute}.tmblr-iframe.hide{display:none}.tmblr-iframe--amp-cta-button{visibility:hidden;position:fixed;bottom:10px;left:50%;transform:translateX(-50%);z-index:100}.tmblr-iframe--amp-cta-button.tmblr-iframe--loaded{visibility:visible;animation:iframe-app-cta-transition .2s ease-out}</style><link rel="stylesheet" media="screen" href="https://assets.tumblr.com/client/prod/standalone/blog-network-npf/index.build.css?_v=f085dde138e244526309d4673db67b4c"><link rel="shortcut icon" href="https://64.media.tumblr.com/6739c7ae038e9ff935a86a86cd89a27c/26bb002b0950f666-f6/s128x128u_c1/8b3e059dc8d66cccb78061ca8d9e7ddb06b2b0a3.pnj"> <link rel="apple-touch-icon-precomposed" href="https://64.media.tumblr.com/6739c7ae038e9ff935a86a86cd89a27c/26bb002b0950f666-f6/s128x128u_c1/8b3e059dc8d66cccb78061ca8d9e7ddb06b2b0a3.pnj"> <link rel="alternate" type="application/rss+xml" href="https://engineering.tumblr.com/rss"> <link rel="stylesheet" href="https://assets.tumblr.com/default-theme/r1/main-min.css"> <link rel="stylesheet" href="https://static.tumblr.com/ehm1tdz/2VWnye81h/tumblr-highlightjs.css"> <!-- HTML5 Shiv --> <!--[if lt IE 9]> <script src="https://static.tumblr.com/hriofhd/Qj0m8pn7q/html5shiv.js"></script> <![endif]--> <style> /* Colors */ body { background: #06cf35; } .blog-title { font-family: 'Gibson', sans-serif, "Helvetica Neue", HelveticaNeue, Arial, sans-serif; font-weight: bold; } .blog-title a, .description, .search-no-results, .likes-no-likes, .related-posts-wrapper > h2, .loader .loader-bar, .widget-title, .tagged-page-cta .tagged-page-cta-desc { color: #FFFFFF; } .tagged-page-cta .tagged-page-cta-tag { color: #FFFFFF; border-color: #FFFFFF; } a { color: #ffffff; } #pagination a, .nav-wrapper .nav-item .label { color: #ffffff; } #pagination a.next:after { border-left-color: #ffffff; } #pagination a.previous:after { border-right-color: #ffffff; } .header-image.cover { background-image: url(https://64.media.tumblr.com/16d61a423f0ea35748d8de1c8db30bee/26bb002b0950f666-8e/s2048x3072/2177496b02726f8a3da8975056fc1be0b62ec694.png); } .user-avatar { background-color: #06cf35; border-color: #06cf35; } .avatar-style-square .user-avatar { -webkit-box-shadow: 0 0 0 4px #06cf35; box-shadow: 0 0 0 4px #06cf35; } .no-header-image .logo-wrapper, .contain-header-image .logo-wrapper { color: #ffffff; } /* Adjust logo for light accents on light backgrounds */ .light-on-light.no-header-image .logo-wrapper, .light-on-light.contain-header-image .logo-wrapper { color: #444; } /* Adjust logo for dark accents on dark backgrounds */ .dark-on-dark.no-header-image .logo-wrapper, .dark-on-dark.contain-header-image .logo-wrapper { color: #fff; } /* Logged-out compact Tumblr iframe */ .tmblr-iframe-compact .tmblr-iframe--unified-controls { min-width: 100%; background-color: #06cf35; } /* Sticky nav colors */ .nav-fixed { background-color: #06cf35; } .nav-responsive .inline-nav::after { background-image: linear-gradient(left, rgba(6,207,53, 0) 0%, rgba(6,207,53,1) 100%); background-image: -webkit-linear-gradient(left, rgba(6,207,53, 0) 0%, rgba(6,207,53,1) 100%); background-image: -moz-linear-gradient(left, rgba(6,207,53, 0) 0%, rgba(6,207,53,1) 100%); background-image: -ms-linear-gradient(left, rgba(6,207,53, 0) 0%, rgba(6,207,53,1) 100%); background-image: -o-linear-gradient(left, rgba(6,207,53, 0) 0%, rgba(6,207,53,1) 100%); } @media screen and (max-device-width: 568px) { .header-image.cover { background-image: url(https://64.media.tumblr.com/16d61a423f0ea35748d8de1c8db30bee/26bb002b0950f666-8e/s2048x3072/2177496b02726f8a3da8975056fc1be0b62ec694.png); -webkit-background-size: cover; background-size: cover; } .avatar-style-square .user-avatar { -webkit-box-shadow: 0 0 0 3px #06cf35; -moz-box-shadow: 0 0 0 3px #06cf35; box-shadow: 0 0 0 3px #06cf35; } } /* Custom CSS */ </style> <link rel="alternate" href="android-app://com.tumblr/tumblr/x-callback-url/blog?blogName=engineering" /><link rel="alternate" href="ios-app://305343404/tumblr/x-callback-url/blog?blogName=engineering" /><script defer type="application/javascript" id="bilmur" data-provider="tumblr.com" data-service="blognetwork" data-customproperties='{"theme": "tumblrofficial"}' nonce="8oBHyfkaily4Etc8m3XiIwbEsA" src="https://s0.wp.com/wp-content/js/bilmur.min.js?m=202515" ></script><script src="https://assets.tumblr.com/assets/scripts/tumblelog_post_message_queue.js?_v=a8fadfa499d8cb7c3f8eefdf0b1adfdd"></script><link rel="stylesheet" type="text/css" href="https://assets.tumblr.com/fonts/gibson/stylesheet.css?v=3"><meta name="keywords" content="tumblr engineering,tumblr hack day,tumblr hack week,engineering,tumblr api" /><!-- BEGIN TUMBLR FACEBOOK OPENGRAPH TAGS --><!-- If you'd like to specify your own Open Graph tags, define the og:url and og:title tags in your theme's HTML. --><!-- Read more: http://ogp.me/ --><meta property="fb:app_id" content="48119224995" /><meta property="og:site_name" content="Tumblr" /><meta property="og:title" content="Tumblr Engineering" /><meta property="og:url" content="https://engineering.tumblr.com/?og=1" /><meta property="og:description" content="We, y'know, build Tumblr and stuff." /><meta property="og:type" content="profile" /><meta property="og:image" content="https://64.media.tumblr.com/6739c7ae038e9ff935a86a86cd89a27c/26bb002b0950f666-f6/s128x128u_c1/8b3e059dc8d66cccb78061ca8d9e7ddb06b2b0a3.pnj" /><meta property="al:ios:url" content="tumblr://x-callback-url/blog?blogName=engineering" /><meta property="al:ios:app_name" content="Tumblr" /><meta property="al:ios:app_store_id" content="305343404" /><meta property="al:android:url" content="tumblr://x-callback-url/blog?blogName=engineering" /><meta property="al:android:app_name" content="Tumblr" /><meta property="al:android:package" content="com.tumblr" /><!-- END TUMBLR FACEBOOK OPENGRAPH TAGS --><!-- TWITTER TAGS --><meta charset="utf-8"><meta name="twitter:site" content="tumblr" /><meta name="twitter:card" content="summary" /><meta name="twitter:description" content="We, y'know, build Tumblr and stuff." /><meta name="twitter:title" content="Tumblr Engineering" /><meta name="twitter:creator" content="tumblreng" /><meta name="twitter:app:name:iphone" content="Tumblr" /><meta name="twitter:app:name:ipad" content="Tumblr" /><meta name="twitter:app:name:googleplay" content="Tumblr" /><meta name="twitter:app:id:iphone" content="305343404" /><meta name="twitter:app:id:ipad" content="305343404" /><meta name="twitter:app:id:googleplay" content="com.tumblr" /><meta name="twitter:app:url:iphone" content="tumblr://x-callback-url/blog?blogName=engineering&referrer=twitter-cards" /><meta name="twitter:app:url:ipad" content="tumblr://x-callback-url/blog?blogName=engineering&referrer=twitter-cards" /><meta name="twitter:app:url:googleplay" content="tumblr://x-callback-url/blog?blogName=engineering&referrer=twitter-cards" /><!-- GOOGLE CAROUSEL --><script type="application/ld+json"> {"@type":"ItemList","url":"https:\/\/engineering.tumblr.com","itemListElement":[{"@type":"ListItem","position":1,"url":"https:\/\/engineering.tumblr.com\/post\/763892885430157312\/tumblr-hack-day-september-2024-edition"},{"@type":"ListItem","position":2,"url":"https:\/\/engineering.tumblr.com\/post\/741781189843615744\/tumblr-hack-week-january-2024-edition"},{"@type":"ListItem","position":3,"url":"https:\/\/engineering.tumblr.com\/post\/733445594295762944\/alias-please-sudo"},{"@type":"ListItem","position":4,"url":"https:\/\/engineering.tumblr.com\/post\/730272830210621441\/tumblr-hack-week-september-2023-edition"},{"@type":"ListItem","position":5,"url":"https:\/\/engineering.tumblr.com\/post\/722102563011493888\/streambuilder-our-open-source-framework-for"},{"@type":"ListItem","position":6,"url":"https:\/\/engineering.tumblr.com\/post\/713599421825351680\/tumblr-hack-day-march-2023-edition"},{"@type":"ListItem","position":7,"url":"https:\/\/engineering.tumblr.com\/post\/704817291209146368\/tumblr-hack-day-december-2022-edition"},{"@type":"ListItem","position":8,"url":"https:\/\/engineering.tumblr.com\/post\/697281930624991232\/tumblr-hack-week-september-2022-edition"},{"@type":"ListItem","position":9,"url":"https:\/\/engineering.tumblr.com\/post\/690135035533230080\/making-gifs-load-faster"},{"@type":"ListItem","position":10,"url":"https:\/\/engineering.tumblr.com\/post\/678904863863783424\/tumblr-hack-week-march-2022-edition"},{"@type":"ListItem","position":11,"url":"https:\/\/engineering.tumblr.com\/post\/671123396649730048\/tumblr-hack-day-december-2021-edition"},{"@type":"ListItem","position":12,"url":"https:\/\/engineering.tumblr.com\/post\/666127838922014720\/oauth-2-on-the-tumblr-api"},{"@type":"ListItem","position":13,"url":"https:\/\/engineering.tumblr.com\/post\/665757792757563392\/https-required-on-tumblr-api"},{"@type":"ListItem","position":14,"url":"https:\/\/engineering.tumblr.com\/post\/664125302420750336\/tumblr-hack-week-september-2021-edition"},{"@type":"ListItem","position":15,"url":"https:\/\/engineering.tumblr.com\/post\/663504007568998401\/advance-your-career-with-automattic-rotations"}],"@context":"http:\/\/schema.org"}</script><link rel="canonical" href="https://www.tumblr.com/engineering" /></head> <body data-urlencoded-name="engineering" class="wide index-page display-related-posts"> <!-- This is in case the search engine skips the title tag--> <h1 style="display: none;">Tumblr Engineering</h1> <div class="app-nag"> <div class="app-nag-header clearfix"> <div class="app-nag-icon"> <div class="app-nag-icon-ios"> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1024 1024" enable-background="new 0 0 1024 1024" xml:space="preserve"> <path fill="#36465D" d="M1024,771c0,139.2-113.8,253-253,253H253C113.8,1024,0,910.2,0,771V253C0,113.8,113.8,0,253,0h518 c139.2,0,253,113.8,253,253V771z"/> <path fill="none" stroke="#FFF100" stroke-width="4" stroke-miterlimit="10" d="M463.9,209.4"/> <path opacity="0.6" fill="#231F20" d="M628.1,681c8.2,0,17.1-1.2,25.8-3.3V530.3h111.6V401.8h-68.6V473H585.4v162.4 C586,676.3,609.1,681,628.1,681z M654.4,250.5h-68.6v94h68.6V250.5z M754.3,722.9c-12.7,7.1-28.9,12.4-44.3,14.5l11.4,33.8 c-20.5,27-71.4,45.5-118.1,46.3c-1.6,0-3.1,0-4.7,0c0,0,0,0,0,0c-32.5,0-59.5-5.7-81.9-15.3c26.2,40,72.7,72.6,150.5,72.6c0,0,0,0,0,0c1.6,0,3.1,0,4.7,0c46.6-0.8,97.6-19.4,118.1-46.3L754.3,722.9z"/> <path fill="none" stroke="#FFF100" stroke-width="4" stroke-miterlimit="10" d="M355,359.5"/> <path fill="#FFFFFF" d="M577.5,830.6c65.1,0,129.7-23.2,151-51.3l4.3-5.6l-40.4-119.7c-0.4-1.1-1.4-1.9-2.6-1.9h-7.6h-3.5l-79.1,0 c-1.2,0-2.3-0.8-2.6-2c-1.1-4-1.7-8.9-1.8-14.9V489c0-1.5,1.2-2.7,2.7-2.7h106.1c1.5,0,2.7-1.2,2.7-2.7V333.8c0-1.5-1.2-2.7-2.7-2.7 H598.4c-1.5,0-2.7-1.2-2.7-2.7V182.5c0-1.5-1.2-2.7-2.7-2.7h-82.6h-28.9h-73.8c-13.3,0-28.5,9.8-30.8,28 c-9.3,75.3-43.8,120.5-108.7,142.2l-7.2,2.4c-1.1,0.4-1.9,1.4-1.9,2.6v128.6c0,1.5,1.2,2.7,2.7,2.7h50.4h0h15.9c0,0,0,120,0,158.3 C328.1,771,415.7,830.6,577.5,830.6z M701.6,769.5c-20.3,19.5-62,34.1-102,34.7c-1.5,0-3,0-4.5,0h0 c-131.5,0-166.6-100.4-166.6-159.7V462.3c0-1.5-1.2-2.7-2.7-2.7h-63.6c-1.5,0-2.7-1.2-2.7-2.7v-83c0-1.1,0.7-2.1,1.7-2.5 c68-26.5,105.9-79,115.9-160.3c0.6-4.5,4.3-4.6,4.3-4.6h84.9c1.5,0,2.7,1.2,2.7,2.7v145.9c0,1.5,1.2,2.7,2.7,2.7h105.7 c1.5,0,2.7,1.2,2.7,2.7v96.4c0,1.5-1.2,2.7-2.7,2.7H571.3c-1.5,0-2.7,1.2-2.7,2.7l0,173.2c0.6,39,19.5,58.8,56.1,58.8 c14.7,0,31.6-3.4,47.1-9.3c1.4-0.6,3,0.2,3.5,1.6l27,80C702.6,767.7,702.4,768.8,701.6,769.5z"/> <path opacity="0.5" fill="#2D3F54" d="M328.1,528.9h73.8v-40.2c0-1.3-1.1-2.4-2.4-2.4h-71.4V528.9z"/> </svg> </div> <div class="app-nag-icon-android"> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1024 1024" enable-background="new 0 0 1024 1024" xml:space="preserve"> <path fill="none" stroke="#FFF100" stroke-width="4" stroke-miterlimit="10" d="M463.9,209.4"></path> <path opacity="0.5" fill="#231F20" d="M628.1,681c8.2,0,17.1-1.2,25.8-3.3V530.3h111.6V401.8h-68.6V473H585.4v162.4 C586,676.3,609.1,681,628.1,681z M654.4,250.5h-68.6v94h68.6V250.5z M754.3,722.9c-12.7,7.1-28.9,12.4-44.3,14.5l11.4,33.8 c-20.5,27-71.4,45.5-118.1,46.3c-1.6,0-3.1,0-4.7,0c0,0,0,0,0,0c-32.5,0-59.5-5.7-81.9-15.3c26.2,40,72.7,72.6,150.5,72.6c0,0,0,0,0,0c1.6,0,3.1,0,4.7,0c46.6-0.8,97.6-19.4,118.1-46.3L754.3,722.9z"></path> <path fill="none" stroke="#FFF100" stroke-width="4" stroke-miterlimit="10" d="M355,359.5"></path> <path fill="#36465D" d="M577.5,830.6c65.1,0,129.7-23.2,151-51.3l4.3-5.6l-40.4-119.7c-0.4-1.1-1.4-1.9-2.6-1.9h-7.6h-3.5l-79.1,0 c-1.2,0-2.3-0.8-2.6-2c-1.1-4-1.7-8.9-1.8-14.9V489c0-1.5,1.2-2.7,2.7-2.7h106.1c1.5,0,2.7-1.2,2.7-2.7V333.8c0-1.5-1.2-2.7-2.7-2.7 H598.4c-1.5,0-2.7-1.2-2.7-2.7V182.5c0-1.5-1.2-2.7-2.7-2.7h-82.6h-28.9h-73.8c-13.3,0-28.5,9.8-30.8,28 c-9.3,75.3-43.8,120.5-108.7,142.2l-7.2,2.4c-1.1,0.4-1.9,1.4-1.9,2.6v128.6c0,1.5,1.2,2.7,2.7,2.7h50.4h0h15.9c0,0,0,120,0,158.3 C328.1,771,415.7,830.6,577.5,830.6z M701.6,769.5c-20.3,19.5-62,34.1-102,34.7c-1.5,0-3,0-4.5,0h0 c-131.5,0-166.6-100.4-166.6-159.7V462.3c0-1.5-1.2-2.7-2.7-2.7h-63.6c-1.5,0-2.7-1.2-2.7-2.7v-83c0-1.1,0.7-2.1,1.7-2.5 c68-26.5,105.9-79,115.9-160.3c0.6-4.5,4.3-4.6,4.3-4.6h84.9c1.5,0,2.7,1.2,2.7,2.7v145.9c0,1.5,1.2,2.7,2.7,2.7h105.7 c1.5,0,2.7,1.2,2.7,2.7v96.4c0,1.5-1.2,2.7-2.7,2.7H571.3c-1.5,0-2.7,1.2-2.7,2.7l0,173.2c0.6,39,19.5,58.8,56.1,58.8 c14.7,0,31.6-3.4,47.1-9.3c1.4-0.6,3,0.2,3.5,1.6l27,80C702.6,767.7,702.4,768.8,701.6,769.5z"></path> <path opacity="0.5" fill="#2D3F54" d="M328.1,528.9h73.8v-40.2c0-1.3-1.1-2.4-2.4-2.4h-71.4V528.9z"></path> </svg> </div> </div> <div class="app-nag-ratings"> <svg width="181px" height="30px" viewBox="0 0 181 30" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <path d="M15.8,25.2 L6.1,29.8 L7.5,19.2 L0.1,11.4 L10.6,9.5 L15.8,0 L20.9,9.5 L31.4,11.4 L24,19.2 L25.4,29.8 L15.8,25.2 Z" fill="#FFC00E"></path> <path d="M52.8,25.2 L43.1,29.8 L44.5,19.2 L37.1,11.4 L47.6,9.5 L52.8,0 L57.9,9.5 L68.4,11.4 L61,19.2 L62.4,29.8 L52.8,25.2 Z" fill="#FFC00E"></path> <path d="M89.8,25.2 L80.1,29.8 L81.5,19.2 L74.1,11.4 L84.6,9.5 L89.8,0 L94.9,9.5 L105.4,11.4 L98,19.2 L99.4,29.8 L89.8,25.2 Z" fill="#FFC00E"></path> <path d="M126.8,25.2 L117.1,29.8 L118.5,19.2 L111.1,11.4 L121.6,9.5 L126.8,0 L131.9,9.5 L142.4,11.4 L135,19.2 L136.4,29.8 L126.8,25.2 Z" fill="#FFC00E"></path> <path d="M163.8,25.2 L154.1,29.8 L155.5,19.2 L148.1,11.4 L158.6,9.5 L163.8,0 L168.9,9.5 L179.4,11.4 L172,19.2 L173.4,29.8 L163.8,25.2 Z" fill="#E7E7E7"></path> <path d="M163.3,25.1 L154.1,29.8 L155.5,19.2 L148.1,11.4 L158.6,9.5 L163.3,0.9 L163.3,25.1 Z" fill="#FFC00E"></path> </g> </svg> <div class="app-nag-ratings-text app-nag-ratings-text-android"> 1.5M ratings </div> <div class="app-nag-ratings-text app-nag-ratings-text-ios"> 277k ratings </div> </div> <div class="app-nag-close-button"> <svg width="15px" height="15px" viewBox="0 0 30 30" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <path d="M12.510351,14.6860639 L0,27.1964147 L2.175713,29.3721278 L14.686064,16.8617771 L27.196415,29.3721278 L29.372128,27.1964147 L16.861777,14.6860639 L29.372128,2.1757132 L27.196415,0 L14.686064,12.5103507 L2.175713,0 L0,2.1757132 L12.510351,14.6860639 L12.510351,14.6860639 Z" fill="#D3D3D3"></path> </g> </svg> </div> </div> <div class="app-nag-body"> <h2 class="app-nag-callout">See, that’s what the app is perfect for.</h2> <a class="app-nag-large-button app-nag-app-store-link button blue">Sounds perfect</a> <a class="app-nag-large-button app-nag-app-store-deny">Wahhhh, I don’t wanna</a> </div> </div> <section id="page" class="h-feed"> <div class="header-wrapper avatar-hidden "> <header id="header" class="top-blog-header"> <div class="header-image-wrapper "> <a href="/" class="header-image parallax cover " data-bg-image="https://64.media.tumblr.com/16d61a423f0ea35748d8de1c8db30bee/26bb002b0950f666-8e/s2048x3072/2177496b02726f8a3da8975056fc1be0b62ec694.png"> </a> <div class="loader-bg"></div> </div> <div class="blog-title-wrapper content"> <figure class="avatar-wrapper animate p-author h-card"> <a href="/" style="background-image: url(https://64.media.tumblr.com/6739c7ae038e9ff935a86a86cd89a27c/26bb002b0950f666-f6/s128x128u_c1/8b3e059dc8d66cccb78061ca8d9e7ddb06b2b0a3.pnj)" class="user-avatar" ><img src="https://64.media.tumblr.com/6739c7ae038e9ff935a86a86cd89a27c/26bb002b0950f666-f6/s128x128u_c1/8b3e059dc8d66cccb78061ca8d9e7ddb06b2b0a3.pnj" alt="engineering" class="print-only invisible"></a> </figure> <div class="title-group animate"> <span class="description p-summary"> We, y'know, build Tumblr and stuff. </span> </div> </div> </header> </div> <div class="nav-wrapper nav-responsive"> <nav class="nav-menu"> <ul class="inline-nav"> <li class="nav-item nav-item--posts"> <a href="/" class="label current-page">Posts</a> </li> <li class="nav-item nav-item--page"> <a href="/careers" class="label ">Careers</a> </li> <li class="nav-item nav-item--page"> <a href="https://www.tumblr.com/support" class="label external-page">Support Request</a> </li> <li class="nav-item nav-item--page"> <a href="https://changes.tumblr.com/" class="label external-page">Changes Blog</a> </li> <li class="nav-item nav-item--archive"> <a href="/archive" class="label external-page">Archive</a> </li> </ul> </nav> </div> <section id="posts" class="content clearfix avatar-hidden show-nav"> <div class="container"> <div class="main"> <article class="text not-page post-763892885430157312 " data-post-id="763892885430157312" > <div class="post-wrapper clearfix h-entry"> <header class="post-header "> </header> <section class="post"> <div class="post-content"> <h2 class="title p-name"><a href="https://engineering.tumblr.com/post/763892885430157312/tumblr-hack-day-september-2024-edition" class="u-url">Tumblr Hack Day, September 2024 Edition</a></h2> <div class="body-text e-content"><p>Once again it was Hack Day at Tumblr! You’ve probably seen one of these posts before. A couple of times per year we slow down our normal work and spend a day working on scratching a personal itch or features we want as user and see how far we can get with our hacks. One thing from <a href="https://engineering.tumblr.com/post/730272830210621441/tumblr-hack-week-september-2023-edition">the last Hack Week in January</a> made it out: new default blog avatars!</p><p>Here are some of the projects that got built for our most recent Hack Day in September. Some of these things you may also end up seeing on the site… and one of them isn’t included here because it’ll likely be a fun Halloween surprise. 👻</p><h2>Advanced search operators</h2><p>Instead of telling you about this here, we have the extreme pleasure of telling you that this already launched! <a href="https://www.tumblr.com/changes/762540728814583808/new-search-operators-for-better-searching">Read all about it over on the Changes blog.</a> Instead, what we can preview here are some potential new interface elements for these advanced search options, now that we have them thanks to <a class="tumblelog" href="https://tmblr.co/MeYLSQAtiIIlsoBnUNmAM5g">@lesianlen</a>:</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/456b82a04d131cde91d2e6b937485a93/a37ddfa0636fd216-26/s1280x1920/133525774992b53278bc35ec7953ed1b420d74c8.png" data-big-photo-height="1800" data-big-photo-width="2880"><img class="post_media_photo image" src="https://64.media.tumblr.com/456b82a04d131cde91d2e6b937485a93/a37ddfa0636fd216-26/s1280x1920/133525774992b53278bc35ec7953ed1b420d74c8.png" srcset="https://64.media.tumblr.com/456b82a04d131cde91d2e6b937485a93/a37ddfa0636fd216-26/s75x75_c1/991d59b9a0ea35dd076e4605030d7cbee5de98f2.png 75w, https://64.media.tumblr.com/456b82a04d131cde91d2e6b937485a93/a37ddfa0636fd216-26/s100x200/aca6da2c5f4dd2e372d22cddfdcc9ce5d25f54f2.png 100w, https://64.media.tumblr.com/456b82a04d131cde91d2e6b937485a93/a37ddfa0636fd216-26/s250x400/544acbd3e9026640deca65c8d4796f023e3cb5af.png 250w, https://64.media.tumblr.com/456b82a04d131cde91d2e6b937485a93/a37ddfa0636fd216-26/s400x600/a33bc0e738d782f13412a8f501bc6f35f73775aa.png 400w, https://64.media.tumblr.com/456b82a04d131cde91d2e6b937485a93/a37ddfa0636fd216-26/s500x750/7fb6ef5d067715b1e3d63586c7904356b060a256.png 500w, https://64.media.tumblr.com/456b82a04d131cde91d2e6b937485a93/a37ddfa0636fd216-26/s540x810/a0cc688a9406688eae97fffcd1b0152c6309699c.png 540w, https://64.media.tumblr.com/456b82a04d131cde91d2e6b937485a93/a37ddfa0636fd216-26/s640x960/c2a1b0cb4d09fa9fbc450eaab7b75ce3e9be8123.png 640w, https://64.media.tumblr.com/456b82a04d131cde91d2e6b937485a93/a37ddfa0636fd216-26/s1280x1920/133525774992b53278bc35ec7953ed1b420d74c8.png 1280w, https://64.media.tumblr.com/456b82a04d131cde91d2e6b937485a93/a37ddfa0636fd216-26/s2048x3072/9eba2cae025d3b44c8a45a457bfbf0c8febdf497.png 2048w" sizes="(max-width: 1280px) 100vw, 1280px" alt="image"></a></figure></div></div><h2>“Live” engagements on posts</h2><p>There are many thousands of reactions, likes, and reblogs happening on Tumblr every second. Right now you can only really “see” these happen if you are frantically refreshing your feed (which, we know, some of you do). Wouldn’t it be neat if the note count, reactions, etc, all update automatically as you scroll your favorite feed (or many feeds at once with <a href="https://help.tumblr.com/patio/">Patio</a>)? Check it out this hack from <a class="tumblelog" href="https://tmblr.co/MGKil8ubT5WBFIva_gXop-Q">@leogcrespo</a>:</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/d83e53d2138ee2b610aa84679ff4f615/a37ddfa0636fd216-23/s1280x1920/3d5645b340e3bb5316ef2f21b98554b58e1664e5.gifv" data-big-photo-height="308" data-big-photo-width="600"><img class="post_media_photo image" src="https://64.media.tumblr.com/d83e53d2138ee2b610aa84679ff4f615/a37ddfa0636fd216-23/s640x960/7d46159875b090e4e977ed0212e0488faa6fcabb.gifv" srcset="https://64.media.tumblr.com/d83e53d2138ee2b610aa84679ff4f615/a37ddfa0636fd216-23/s75x75_c1/a3abcc48a997e97e89a707693463032083e70a3b.gifv 75w, https://64.media.tumblr.com/d83e53d2138ee2b610aa84679ff4f615/a37ddfa0636fd216-23/s100x200/9f2c3b8562f4528a6ce2ced11279c338e926fdbc.gifv 100w, https://64.media.tumblr.com/d83e53d2138ee2b610aa84679ff4f615/a37ddfa0636fd216-23/s250x400/fb348cd76dc3ded35383050b20844ad51775cd90.gifv 250w, https://64.media.tumblr.com/d83e53d2138ee2b610aa84679ff4f615/a37ddfa0636fd216-23/s400x600/4f1f8e53ccef12a5f8ff28d43e6e1acc549bf589.gifv 400w, https://64.media.tumblr.com/d83e53d2138ee2b610aa84679ff4f615/a37ddfa0636fd216-23/s500x750/b4af1de88d761ce33f773ea538ed6a212ac4cfc0.gifv 500w, https://64.media.tumblr.com/d83e53d2138ee2b610aa84679ff4f615/a37ddfa0636fd216-23/s540x810/4009bb532738a1398fb3ef559f5a3c1baf5f0f8b.gifv 540w, https://64.media.tumblr.com/d83e53d2138ee2b610aa84679ff4f615/a37ddfa0636fd216-23/s640x960/7d46159875b090e4e977ed0212e0488faa6fcabb.gifv 600w" sizes="(max-width: 600px) 100vw, 600px" alt="image"></a></figure></div></div><h2>Communities activity tracker</h2><p>Likewise, some of our beta testing Communities are extremely active, with new members, comments, and reactions flying around. Right now we don’t have a way to show those actions, as they happen, inside the community, but we know we’ll need something like this. <a class="tumblelog" href="https://tmblr.co/MleeuhLZpSUnzG4e_os2MIg">@yi5h</a> hacked together a sidebar widget “activity tracker” that shows recent activity happening inside a community in near-real-time:</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/27b28c18c967c2f609e329d81906a8b0/a37ddfa0636fd216-50/s1280x1920/cc633529a5614d570dfb7a11fd1a93c745623072.gifv" data-big-photo-height="997" data-big-photo-width="1200"><img class="post_media_photo image" src="https://64.media.tumblr.com/27b28c18c967c2f609e329d81906a8b0/a37ddfa0636fd216-50/s1280x1920/cc633529a5614d570dfb7a11fd1a93c745623072.gifv" srcset="https://64.media.tumblr.com/27b28c18c967c2f609e329d81906a8b0/a37ddfa0636fd216-50/s75x75_c1/b6ef5df9edc1ad5d3febbb02dac52124808de589.gifv 75w, https://64.media.tumblr.com/27b28c18c967c2f609e329d81906a8b0/a37ddfa0636fd216-50/s100x200/d6eba1bc1cdd1f865da02b04964b227d388c2b98.gifv 100w, https://64.media.tumblr.com/27b28c18c967c2f609e329d81906a8b0/a37ddfa0636fd216-50/s250x400/30f0f9b2cc55576641018de443ce0cf0bf1b1fa2.gifv 250w, https://64.media.tumblr.com/27b28c18c967c2f609e329d81906a8b0/a37ddfa0636fd216-50/s400x600/f8a8a16d5c965800d500b65c4507c33e4f12cc5e.gifv 400w, https://64.media.tumblr.com/27b28c18c967c2f609e329d81906a8b0/a37ddfa0636fd216-50/s500x750/6e5dcc067c8096dc2c14ab12fe31e4dbcdb426c0.gifv 500w, https://64.media.tumblr.com/27b28c18c967c2f609e329d81906a8b0/a37ddfa0636fd216-50/s540x810/5f87514949169fdddf47c88a65574ae4e67ca8b1.gifv 540w, https://64.media.tumblr.com/27b28c18c967c2f609e329d81906a8b0/a37ddfa0636fd216-50/s640x960/1e5a2650fc162d5391fc7557f873f678478b1cc5.gifv 640w, https://64.media.tumblr.com/27b28c18c967c2f609e329d81906a8b0/a37ddfa0636fd216-50/s1280x1920/cc633529a5614d570dfb7a11fd1a93c745623072.gifv 1200w" sizes="(max-width: 1200px) 100vw, 1200px" alt="image"></a></figure></div></div><p>As always, stay tuned to the <a class="tumblelog" href="https://tmblr.co/MYXvAUPIj9KzlTb7SqaHO0A">@changes</a> blog to see if any of these hacks make it on Tumblr for real! Especially the aforementioned-but-as-yet-unrevealed Halloween surprise…</p></div> </div> <section class="inline-meta post-extra"> </section> <section class="inline-meta post-extra has-tags"> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20engineering">tumblr engineering</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20hack%20day">tumblr hack day</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20hack%20week">tumblr hack week</a> </section> </section> <section class="panel"> <footer class="post-footer"> <section class="panel"> <section class="inline-meta date-notes"> <div class="date-note-wrapper"> <span> <a href="https://engineering.tumblr.com/post/763892885430157312/tumblr-hack-day-september-2024-edition#notes" class="meta-item post-notes">259 notes</a> </span> <a href="https://engineering.tumblr.com/post/763892885430157312/tumblr-hack-day-september-2024-edition" title="6 months ago" class="meta-item post-date">Oct 9th, 2024</a><time class="dt-published" datetime="2024-10-09 16:17:05"></time> </div> </section> <section class="post-controls"> <div class="controls-wrapper"> <div class="control share-control"> <nav class="pop"> <a href="#" class="share selector"></a> <div class="pop-menu share-menu south" id="share_763892885430157312"> <ul> <li class="open-in-app"><a href="#" class="share-item open-in-app" data-post="763892885430157312">Open in app</a></li> <li><a href="https://facebook.com/sharer.php?u=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F763892885430157312%2Ftumblr-hack-day-september-2024-edition&t=Tumblr%20Hack%20Day%2C%20September%202024%20Edition" class="share-item facebook" target="_blank">Facebook</a></li> <li><a href="https://twitter.com/intent/tweet?text=Tumblr%20Hack%20Day%2C%20September%202024%20Edition%20Once%20again%20it%20was%20Hack%20Day%20at%20Tumblr%21%20You%E2%80%99ve%20probably%20seen%20one%20of%20these%20posts%20before.%20A%20couple%20of%20times%20per%20year%20we%20slow%20down%20our%20normal%20work%20and%20spend%20a%20day%20working%20on%20scratching%20a%20personal%20itch%20or...%20https%3A%2F%2Ftmblr.co%2FZI3nWxgPv8WoWq00" class="share-item twitter" target="_blank">Tweet</a></li> <li><a href="https://reddit.com/submit?url=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F763892885430157312%2Ftumblr-hack-day-september-2024-edition" class="share-item reddit" target="_blank">Reddit</a></li> <li><a href="mailto:?subject=A%20post%20from%20Tumblr%20Engineering&body=Tumblr%20Hack%20Day%2C%20September%202024%20Edition%20Once%20again%20it%20was%20Hack%20Day%20at%20Tumblr%21%20You%E2%80%99ve%20probably%20seen%20one%20of%20these%20posts%20before.%20A%20couple%20of%20times%20per%20year%20we...%20https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F763892885430157312%2Ftumblr-hack-day-september-2024-edition" class="share-item mail">Mail</a></li> <li><a href="https://engineering.tumblr.com/post/763892885430157312/embed" class="share-item permalink">Embed</a></li> <li><a href="https://engineering.tumblr.com/post/763892885430157312/tumblr-hack-day-september-2024-edition" class="share-item permalink">Permalink <i class="arrow"></i></a></li> </ul> </div> </nav> </div> <div class="control reblog-control"><a href="https://www.tumblr.com/reblog/engineering/763892885430157312/4ttl9r9M" class="reblog_button"style="display: block;width:24px;height:24px;"><svg width="100%" height="100%" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000"><path d="M5.01092527,5.99908429 L16.0088498,5.99908429 L16.136,9.508 L20.836,4.752 L16.136,0.083 L16.1360004,3.01110845 L2.09985349,3.01110845 C1.50585349,3.01110845 0.979248041,3.44726568 0.979248041,4.45007306 L0.979248041,10.9999998 L3.98376463,8.30993634 L3.98376463,6.89801007 C3.98376463,6.20867902 4.71892527,5.99908429 5.01092527,5.99908429 Z"></path><path d="M17.1420002,13.2800293 C17.1420002,13.5720293 17.022957,14.0490723 16.730957,14.0490723 L4.92919922,14.0490723 L4.92919922,11 L0.5,15.806 L4.92919922,20.5103758 L5.00469971,16.9990234 L18.9700928,16.9990234 C19.5640928,16.9990234 19.9453125,16.4010001 19.9453125,15.8060001 L19.9453125,9.5324707 L17.142,12.203"></path></svg></a></div> <div class="control like-control"><div class="like_button" data-post-id="763892885430157312" data-blog-name="engineering" id="like_button_763892885430157312"><iframe id="like_iframe_763892885430157312" src="https://assets.tumblr.com/assets/html/like_iframe.html?_v=c96f30edcf75919c3976e1403422560b#name=engineering&post_id=763892885430157312&color=black&rk=4ttl9r9M&slug=tumblr-hack-day-september-2024-edition" scrolling="no" width="24" height="24" frameborder="0" class="like_toggle" allowTransparency="true" name="like_iframe_763892885430157312"></iframe></div></div> </div> </section> </section> <section class="inline-meta date-notes"> <span class="notes-pop-container"> </span> </section> </footer> </section> </div> </article> <article class="text not-page post-741781189843615744 " data-post-id="741781189843615744" > <div class="post-wrapper clearfix h-entry"> <header class="post-header "> </header> <section class="post"> <div class="post-content"> <h2 class="title p-name"><a href="https://engineering.tumblr.com/post/741781189843615744/tumblr-hack-week-january-2024-edition" class="u-url">Tumblr Hack Week, January 2024 Edition</a></h2> <div class="body-text e-content"><p>Once again it was Hack <i>Week</i> (more than just a day!) at Tumblr! This is getting repetitive in the best way. A couple of times per year we slow down our normal work and spend a week working on scratching a personal itch or features we want as user and see how far we can get with our hacks. One thing from <a href="https://engineering.tumblr.com/post/730272830210621441/tumblr-hack-week-september-2023-edition">the last Hack Week in September</a> made it all the way to a new experiment out to some testers: Tumblr Patio!<br /></p><p>Here are some of the projects that got built for our most recent Hack Week in January. Some of these things you may also end up seeing on the site…</p><h2>Spoiler text, spoiler blocks, and centered text!</h2><p>This one is so obvious and amazing, it’s wild we don’t already have it. For Hack Week, Katie added the ability to select text in a paragraph to be hidden behind a wall of black that can be revealed with a tap. This can be super useful to hide spoilers. And even better: whole spoiler <i>blocks</i>. And while we’re here, the ability to center text!</p><figure data-orig-width="1000" data-orig-height="726" class="tmblr-full"><img src="https://64.media.tumblr.com/27c05156acd7eef34bec9970aa9fa4ee/5fc8c4885c4bc672-16/s1280x1920/ddacb49c2f94c523ecc2e86ad90af488133cae2e.gifv" alt="image" data-orig-width="1000" data-orig-height="726" width="700" height="508" /></figure><figure data-orig-width="1000" data-orig-height="726" class="tmblr-full"><img src="https://64.media.tumblr.com/c1254432bff8f09b4b5c07f1c584f313/5fc8c4885c4bc672-fb/s1280x1920/8fd35fafd648431e9516b64f4e2480ac62f80664.gifv" alt="image" data-orig-width="1000" data-orig-height="726" width="700" height="508" /></figure><h2>A plethora of new default blog avatars<br /></h2><p>We haven’t updated our default avatars in several years. (Some of you may remember <a href="https://www.tumblr.com/images/default_avatar_128.png">this one</a> from 10+ years ago.) They’re feeling a bit stale to us, so why not update them? And while we’re at it… make a ton more variations! Paul from the Tumblr Design team came up with a suite of new default avatars, using our latest Tumblr color palette. Here’s a look at some of them, but there are actually many dozens more using different colors:<br /></p><figure data-orig-width="624" data-orig-height="520" class="tmblr-full"><img src="https://64.media.tumblr.com/2fd85abbccdf6d45732ee446228f5eb1/5fc8c4885c4bc672-07/s640x960/0006f6574f2bd74f41627631c46e3c6a354b064a.png" alt="image" data-orig-width="624" data-orig-height="520" width="624" height="520" /></figure><h2>Notifications and emails about engagement on your posts</h2><p>This one is for the folks on Tumblr who love numbers and their Activity page. Daniel, <a href="https://tmblr.co/MyvpIBfmEABnQ7wjzcfem5Q">@jesseatblr</a>​, and the Feeds & Machine Learning team worked on some new notifications and emails we could send out to people about how their posts have been doing lately on the platform, such as how many views they’ve gotten, and by how many people. We already have this available (and more) when you Blaze a post, but why not open it up to more people? It’s really useful to the folks who use Tumblr to help build an audience for their work!<br /></p><figure data-orig-width="739" data-orig-height="442" class="tmblr-full"><img src="https://64.media.tumblr.com/6c3e3b85e5f96d3220adb57740c190a5/5fc8c4885c4bc672-8a/s1280x1920/fea12cb171908c7581b113dc86b47938c40bfb1f.png" alt="image" data-orig-width="739" data-orig-height="442" width="700" height="419" /></figure><h2>A new way of navigating the web: the Command Palette</h2><p>Some apps we use a lot have a “command palette” accessible via a keyboard shortcut for quick keyboard-driven access to different parts of the platform. For example, Slack and Discord have Command + K to access their quick switchers to hop around conversations. What if Tumblr had one? Kelly and Paul built one! Press Command/Control + K on Tumblr and you can use your keyboard to jump to your blog, Activity, your recent conversations, search, dozens of places!<br /></p><figure data-orig-width="1000" data-orig-height="746" class="tmblr-full"><img src="https://64.media.tumblr.com/2e074764ae2245ece3bc07c66f95b665/5fc8c4885c4bc672-ab/s1280x1920/97008717e1efdfc7ce2b6964b3d7de36ae476369.gifv" alt="image" data-orig-width="1000" data-orig-height="746" width="700" height="522" /></figure><p>As always, stay tuned to the <a href="https://tmblr.co/MYXvAUPIj9KzlTb7SqaHO0A">@changes</a>​ blog to see if any of these hacks make it on Tumblr for real!<br /></p></div> </div> <section class="inline-meta post-extra"> </section> <section class="inline-meta post-extra has-tags"> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20engineering">tumblr engineering</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20hack%20week">tumblr hack week</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20hack%20day">tumblr hack day</a> </section> </section> <section class="panel"> <footer class="post-footer"> <section class="panel"> <section class="inline-meta date-notes"> <div class="date-note-wrapper"> <span> <a href="https://engineering.tumblr.com/post/741781189843615744/tumblr-hack-week-january-2024-edition#notes" class="meta-item post-notes">2,139 notes</a> </span> <a href="https://engineering.tumblr.com/post/741781189843615744/tumblr-hack-week-january-2024-edition" title="1 year ago" class="meta-item post-date">Feb 8th, 2024</a><time class="dt-published" datetime="2024-02-08 13:41:09"></time> </div> </section> <section class="post-controls"> <div class="controls-wrapper"> <div class="control share-control"> <nav class="pop"> <a href="#" class="share selector"></a> <div class="pop-menu share-menu south" id="share_741781189843615744"> <ul> <li class="open-in-app"><a href="#" class="share-item open-in-app" data-post="741781189843615744">Open in app</a></li> <li><a href="https://facebook.com/sharer.php?u=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F741781189843615744%2Ftumblr-hack-week-january-2024-edition&t=Tumblr%20Hack%20Week%2C%20January%202024%20Edition" class="share-item facebook" target="_blank">Facebook</a></li> <li><a href="https://twitter.com/intent/tweet?text=Tumblr%20Hack%20Week%2C%20January%202024%20Edition%20-%20Once%20again%20it%20was%20Hack%20Week%20%28more%20than%20just%20a%20day%21%29%20at%20Tumblr%21%20This%20is%20getting%20repetitive%20in%20the%20best%20way.%20A%20couple%20of%20times%20per%20year%20we%20slow%20down%20our%20normal%20work%20and%20spend%20a%20week%20working%20on%20scratching...%20https%3A%2F%2Ftmblr.co%2FZI3nWxfBLW-XiW00" class="share-item twitter" target="_blank">Tweet</a></li> <li><a href="https://reddit.com/submit?url=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F741781189843615744%2Ftumblr-hack-week-january-2024-edition" class="share-item reddit" target="_blank">Reddit</a></li> <li><a href="mailto:?subject=A%20post%20from%20Tumblr%20Engineering&body=Tumblr%20Hack%20Week%2C%20January%202024%20Edition%20-%20Once%20again%20it%20was%20Hack%20Week%20%28more%20than%20just%20a%20day%21%29%20at%20Tumblr%21%20This%20is%20getting%20repetitive%20in%20the%20best%20way.%20A%20couple%20of...%20https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F741781189843615744%2Ftumblr-hack-week-january-2024-edition" class="share-item mail">Mail</a></li> <li><a href="https://engineering.tumblr.com/post/741781189843615744/embed" class="share-item permalink">Embed</a></li> <li><a href="https://engineering.tumblr.com/post/741781189843615744/tumblr-hack-week-january-2024-edition" class="share-item permalink">Permalink <i class="arrow"></i></a></li> </ul> </div> </nav> </div> <div class="control reblog-control"><a href="https://www.tumblr.com/reblog/engineering/741781189843615744/0BRgMBIJ" class="reblog_button"style="display: block;width:24px;height:24px;"><svg width="100%" height="100%" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000"><path d="M5.01092527,5.99908429 L16.0088498,5.99908429 L16.136,9.508 L20.836,4.752 L16.136,0.083 L16.1360004,3.01110845 L2.09985349,3.01110845 C1.50585349,3.01110845 0.979248041,3.44726568 0.979248041,4.45007306 L0.979248041,10.9999998 L3.98376463,8.30993634 L3.98376463,6.89801007 C3.98376463,6.20867902 4.71892527,5.99908429 5.01092527,5.99908429 Z"></path><path d="M17.1420002,13.2800293 C17.1420002,13.5720293 17.022957,14.0490723 16.730957,14.0490723 L4.92919922,14.0490723 L4.92919922,11 L0.5,15.806 L4.92919922,20.5103758 L5.00469971,16.9990234 L18.9700928,16.9990234 C19.5640928,16.9990234 19.9453125,16.4010001 19.9453125,15.8060001 L19.9453125,9.5324707 L17.142,12.203"></path></svg></a></div> <div class="control like-control"><div class="like_button" data-post-id="741781189843615744" data-blog-name="engineering" id="like_button_741781189843615744"><iframe id="like_iframe_741781189843615744" src="https://assets.tumblr.com/assets/html/like_iframe.html?_v=c96f30edcf75919c3976e1403422560b#name=engineering&post_id=741781189843615744&color=black&rk=0BRgMBIJ&slug=tumblr-hack-week-january-2024-edition" scrolling="no" width="24" height="24" frameborder="0" class="like_toggle" allowTransparency="true" name="like_iframe_741781189843615744"></iframe></div></div> </div> </section> </section> <section class="inline-meta date-notes"> <span class="notes-pop-container"> </span> </section> </footer> </section> </div> </article> <article class="text not-page post-733445594295762944 " data-post-id="733445594295762944" > <div class="post-wrapper clearfix h-entry"> <header class="post-header "> </header> <section class="post"> <div class="post-content"> <div class="body-text e-content"><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/7e36533fe1233ed21aa6673631af4e62/f15a07668b93275c-c6/s1280x1920/8eeb7b6ccaf5553a6f9d74a6b4393ac41f0e8728.jpg" data-big-photo-height="240" data-big-photo-width="880"><img class="post_media_photo image" src="https://64.media.tumblr.com/7e36533fe1233ed21aa6673631af4e62/f15a07668b93275c-c6/s1280x1920/8eeb7b6ccaf5553a6f9d74a6b4393ac41f0e8728.jpg" srcset="https://64.media.tumblr.com/7e36533fe1233ed21aa6673631af4e62/f15a07668b93275c-c6/s75x75_c1/3290092dad8af0e6c055af78b3a429cb292a2e02.jpg 75w, https://64.media.tumblr.com/7e36533fe1233ed21aa6673631af4e62/f15a07668b93275c-c6/s100x200/e9c0ffcbf041ae22728099dde141af43239b6e12.jpg 100w, https://64.media.tumblr.com/7e36533fe1233ed21aa6673631af4e62/f15a07668b93275c-c6/s250x400/19aabbe6a8fe394d5a711333970c3c31d4d7ced9.jpg 250w, https://64.media.tumblr.com/7e36533fe1233ed21aa6673631af4e62/f15a07668b93275c-c6/s400x600/edddd126e179b8360d6d2996364ab0afde9ac8c0.jpg 400w, https://64.media.tumblr.com/7e36533fe1233ed21aa6673631af4e62/f15a07668b93275c-c6/s500x750/b27a0ba2d5cbe6b4d24d74dc5709fa8e86d8cf4f.jpg 500w, https://64.media.tumblr.com/7e36533fe1233ed21aa6673631af4e62/f15a07668b93275c-c6/s540x810/f0395a3cd853d0fb39390d970e19cb0fe8ce954b.jpg 540w, https://64.media.tumblr.com/7e36533fe1233ed21aa6673631af4e62/f15a07668b93275c-c6/s640x960/a4eed2e1bb53709c1d0dd172fd6b48bbf2814d64.jpg 640w, https://64.media.tumblr.com/7e36533fe1233ed21aa6673631af4e62/f15a07668b93275c-c6/s1280x1920/8eeb7b6ccaf5553a6f9d74a6b4393ac41f0e8728.jpg 880w" sizes="(max-width: 880px) 100vw, 880px" alt="image"></a></figure></div></div><h2>alias please=sudo</h2><p>Keeping a site like Tumblr alive and snappy for you to post at a moment’s notice, all day and night, is no small feat. Pesky crabs sneak into our data centers and cut cables all the time…</p><p>If you want to help our small but excellent systems team, want to work from anywhere, and are deep into nginx, mysql, kubernetes, and caching, <a href="https://href.li/?https://automattic.com/work-with-us/job/systems-engineering/">join us in this adventure.</a> Or, if you have a friend or a colleague who’s good with servers, <a href="https://href.li/?https://automattic.com/work-with-us/job/systems-engineering/">send them our way.</a></p></div> </div> <section class="inline-meta post-extra"> </section> <section class="inline-meta post-extra has-tags"> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20engineering">tumblr engineering</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/engineering">engineering</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/systems%20engineering">systems engineering</a> </section> </section> <section class="panel"> <footer class="post-footer"> <section class="panel"> <section class="inline-meta date-notes"> <div class="date-note-wrapper"> <span> <a href="https://engineering.tumblr.com/post/733445594295762944/alias-please-sudo#notes" class="meta-item post-notes">126 notes</a> </span> <a href="https://engineering.tumblr.com/post/733445594295762944/alias-please-sudo" title="1 year ago" class="meta-item post-date">Nov 8th, 2023</a><time class="dt-published" datetime="2023-11-08 13:30:25"></time> </div> </section> <section class="post-controls"> <div class="controls-wrapper"> <div class="control share-control"> <nav class="pop"> <a href="#" class="share selector"></a> <div class="pop-menu share-menu south" id="share_733445594295762944"> <ul> <li class="open-in-app"><a href="#" class="share-item open-in-app" data-post="733445594295762944">Open in app</a></li> <li><a href="https://facebook.com/sharer.php?u=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F733445594295762944%2Falias-please-sudo&t=" class="share-item facebook" target="_blank">Facebook</a></li> <li><a href="https://twitter.com/intent/tweet?text=alias%20please%3Dsudo%20Keeping%20a%20site%20like%20Tumblr%20alive%20and%20snappy%20for%20you%20to%20post%20at%20a%20moment%E2%80%99s%20notice%2C%20all%20day%20and%20night%2C%20is%20no%20small%20feat.%20Pesky%20crabs%20sneak%20into%20our%20data%20centers%20and%20cut%20cables%20all%20the%20time%E2%80%A6%20If%20you%20want%20to%20help%20our%20small%20but...%20https%3A%2F%2Ftmblr.co%2FZI3nWxejkE7E4m00" class="share-item twitter" target="_blank">Tweet</a></li> <li><a href="https://reddit.com/submit?url=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F733445594295762944%2Falias-please-sudo" class="share-item reddit" target="_blank">Reddit</a></li> <li><a href="mailto:?subject=A%20post%20from%20Tumblr%20Engineering&body=alias%20please%3Dsudo%20Keeping%20a%20site%20like%20Tumblr%20alive%20and%20snappy%20for%20you%20to%20post%20at%20a%20moment%E2%80%99s%20notice%2C%20all%20day%20and%20night%2C%20is%20no%20small%20feat.%20Pesky%20crabs%20sneak%20into%20our%20data%20centers%20and...%20https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F733445594295762944%2Falias-please-sudo" class="share-item mail">Mail</a></li> <li><a href="https://engineering.tumblr.com/post/733445594295762944/embed" class="share-item permalink">Embed</a></li> <li><a href="https://engineering.tumblr.com/post/733445594295762944/alias-please-sudo" class="share-item permalink">Permalink <i class="arrow"></i></a></li> </ul> </div> </nav> </div> <div class="control reblog-control"><a href="https://www.tumblr.com/reblog/engineering/733445594295762944/utjJIu1Y" class="reblog_button"style="display: block;width:24px;height:24px;"><svg width="100%" height="100%" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000"><path d="M5.01092527,5.99908429 L16.0088498,5.99908429 L16.136,9.508 L20.836,4.752 L16.136,0.083 L16.1360004,3.01110845 L2.09985349,3.01110845 C1.50585349,3.01110845 0.979248041,3.44726568 0.979248041,4.45007306 L0.979248041,10.9999998 L3.98376463,8.30993634 L3.98376463,6.89801007 C3.98376463,6.20867902 4.71892527,5.99908429 5.01092527,5.99908429 Z"></path><path d="M17.1420002,13.2800293 C17.1420002,13.5720293 17.022957,14.0490723 16.730957,14.0490723 L4.92919922,14.0490723 L4.92919922,11 L0.5,15.806 L4.92919922,20.5103758 L5.00469971,16.9990234 L18.9700928,16.9990234 C19.5640928,16.9990234 19.9453125,16.4010001 19.9453125,15.8060001 L19.9453125,9.5324707 L17.142,12.203"></path></svg></a></div> <div class="control like-control"><div class="like_button" data-post-id="733445594295762944" data-blog-name="engineering" id="like_button_733445594295762944"><iframe id="like_iframe_733445594295762944" src="https://assets.tumblr.com/assets/html/like_iframe.html?_v=c96f30edcf75919c3976e1403422560b#name=engineering&post_id=733445594295762944&color=black&rk=utjJIu1Y&slug=alias-please-sudo" scrolling="no" width="24" height="24" frameborder="0" class="like_toggle" allowTransparency="true" name="like_iframe_733445594295762944"></iframe></div></div> </div> </section> </section> <section class="inline-meta date-notes"> <span class="notes-pop-container"> </span> </section> </footer> </section> </div> </article> <article class="text not-page post-730272830210621441 " data-post-id="730272830210621441" > <div class="post-wrapper clearfix h-entry"> <header class="post-header "> </header> <section class="post"> <div class="post-content"> <h2 class="title p-name"><a href="https://engineering.tumblr.com/post/730272830210621441/tumblr-hack-week-september-2023-edition" class="u-url">Tumblr Hack Week, September 2023 Edition</a></h2> <div class="body-text e-content"><p>Once again it was Hack <i>Week</i> (more than just a day!) at Tumblr! A couple of times per year we slow down our normal work and spend a week working on scratching a personal itch or features we want as user and see how far we can get with our hacks. One thing from <a href="https://engineering.tumblr.com/post/713599421825351680/tumblr-hack-day-march-2023-edition">the last Hack Day in March</a> made it all the way to production: redesigning how direct messaging looks on Tumblr! Pretty cool!</p><p>Here are some of the projects that got made for this most recent Hack Week in September. Some of these things you may also end up seeing on the site…</p><h2>Tumblr Patio</h2><p>Maybe this will look familiar to you, but we love this idea of being able to organize Tumblr feeds into many “columns” side-by-side, creating a very dense but lively view of Tumblr. Lenny, Kelly, and Paul hacked this together, and we’re pretty excited to see where it’ll go. Each column can be a different feed on Tumblr, like For You, Following, your Activity, a specific blog, a search, Trending, even a <a href="https://www.tumblr.com/labs/728187838181605376/introducing-collections">Collection</a>, so many possibilities!</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/41abfb0c47a07b6da938ffbcf6afe146/0b1501327ebf4709-1e/s1280x1920/5febef49b391d8957310cd57d185184bd96c8725.gifv" data-big-photo-height="602" data-big-photo-width="1280"><img class="post_media_photo image" src="https://64.media.tumblr.com/41abfb0c47a07b6da938ffbcf6afe146/0b1501327ebf4709-1e/s1280x1920/5febef49b391d8957310cd57d185184bd96c8725.gifv" srcset="https://64.media.tumblr.com/41abfb0c47a07b6da938ffbcf6afe146/0b1501327ebf4709-1e/s75x75_c1/a9cd897a42b060a9291b5539a2cb952ec4922678.gifv 75w, https://64.media.tumblr.com/41abfb0c47a07b6da938ffbcf6afe146/0b1501327ebf4709-1e/s100x200/b3954639b0d8612ca1411b5c144de5867d02a6a5.gifv 100w, https://64.media.tumblr.com/41abfb0c47a07b6da938ffbcf6afe146/0b1501327ebf4709-1e/s250x400/d8e1c9d47e7f6b0d37801722d5729ff710dd5a6c.gifv 250w, https://64.media.tumblr.com/41abfb0c47a07b6da938ffbcf6afe146/0b1501327ebf4709-1e/s400x600/856018cf25dde8531ad5c65843c2618f46dce9ea.gifv 400w, https://64.media.tumblr.com/41abfb0c47a07b6da938ffbcf6afe146/0b1501327ebf4709-1e/s500x750/e5c28f3996ee42a59f9857baf380643a4f97e84a.gifv 500w, https://64.media.tumblr.com/41abfb0c47a07b6da938ffbcf6afe146/0b1501327ebf4709-1e/s540x810/d2a20fb34a8fea4e419aafd0e29bd727962b7987.gifv 540w, https://64.media.tumblr.com/41abfb0c47a07b6da938ffbcf6afe146/0b1501327ebf4709-1e/s640x960/a4361cbc584fea719b6a7b161829b45257cc2772.gifv 640w, https://64.media.tumblr.com/41abfb0c47a07b6da938ffbcf6afe146/0b1501327ebf4709-1e/s1280x1920/5febef49b391d8957310cd57d185184bd96c8725.gifv 1280w" sizes="(max-width: 1280px) 100vw, 1280px" alt="image"></a></figure></div></div><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/14d170e49744d740c7a0fb4f352ac3fb/0b1501327ebf4709-5b/s1280x1920/e9197f3f5142fcfa6b47deaf9475846409246d42.gifv" data-big-photo-height="604" data-big-photo-width="1280"><img class="post_media_photo image" src="https://64.media.tumblr.com/14d170e49744d740c7a0fb4f352ac3fb/0b1501327ebf4709-5b/s1280x1920/e9197f3f5142fcfa6b47deaf9475846409246d42.gifv" srcset="https://64.media.tumblr.com/14d170e49744d740c7a0fb4f352ac3fb/0b1501327ebf4709-5b/s75x75_c1/fe6f7bfb86a816fbd38d9a9766c8f94989de41bf.gifv 75w, https://64.media.tumblr.com/14d170e49744d740c7a0fb4f352ac3fb/0b1501327ebf4709-5b/s100x200/807216a14d204064b4c6baf85308149a9f0cc9d0.gifv 100w, https://64.media.tumblr.com/14d170e49744d740c7a0fb4f352ac3fb/0b1501327ebf4709-5b/s250x400/912e1faf51fe486dc9b64e4d203c5ba57f006452.gifv 250w, https://64.media.tumblr.com/14d170e49744d740c7a0fb4f352ac3fb/0b1501327ebf4709-5b/s400x600/1b5f18a273b9e1477dbccf039ab921119c41d0e6.gifv 400w, https://64.media.tumblr.com/14d170e49744d740c7a0fb4f352ac3fb/0b1501327ebf4709-5b/s500x750/0bf72d829ee9d3430822add21161a99fb0254aef.gifv 500w, https://64.media.tumblr.com/14d170e49744d740c7a0fb4f352ac3fb/0b1501327ebf4709-5b/s540x810/7d6fac1b8c3beafa1245440ab00789e19863834d.gifv 540w, https://64.media.tumblr.com/14d170e49744d740c7a0fb4f352ac3fb/0b1501327ebf4709-5b/s640x960/3f23019a15796f19320db97121da28d3d25e3911.gifv 640w, https://64.media.tumblr.com/14d170e49744d740c7a0fb4f352ac3fb/0b1501327ebf4709-5b/s1280x1920/e9197f3f5142fcfa6b47deaf9475846409246d42.gifv 1280w" sizes="(max-width: 1280px) 100vw, 1280px" alt="image"></a></figure></div></div><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/00276016aea74993b8733b04b61fe106/0b1501327ebf4709-35/s1280x1920/3a9fe930ce9b7f601e4dbc395296967a9616cda3.gifv" data-big-photo-height="472" data-big-photo-width="1000"><img class="post_media_photo image" src="https://64.media.tumblr.com/00276016aea74993b8733b04b61fe106/0b1501327ebf4709-35/s1280x1920/3a9fe930ce9b7f601e4dbc395296967a9616cda3.gifv" srcset="https://64.media.tumblr.com/00276016aea74993b8733b04b61fe106/0b1501327ebf4709-35/s75x75_c1/12cf41a430e0c87d1e238548d5396ce7f41dbb85.gifv 75w, https://64.media.tumblr.com/00276016aea74993b8733b04b61fe106/0b1501327ebf4709-35/s100x200/06c4fa70ade7ea0ff2a95d48322126bf00ec6191.gifv 100w, https://64.media.tumblr.com/00276016aea74993b8733b04b61fe106/0b1501327ebf4709-35/s250x400/200dabfd3c518a67c139e1d58398448a94d761a4.gifv 250w, https://64.media.tumblr.com/00276016aea74993b8733b04b61fe106/0b1501327ebf4709-35/s400x600/be796ec498051e951cd74a45c335c2edfa79f735.gifv 400w, https://64.media.tumblr.com/00276016aea74993b8733b04b61fe106/0b1501327ebf4709-35/s500x750/95c58022e86adaddf62405ee7edb6b081494d97e.gifv 500w, https://64.media.tumblr.com/00276016aea74993b8733b04b61fe106/0b1501327ebf4709-35/s540x810/1debd1a35432e215bce5c7978e96181c7138e7ff.gifv 540w, https://64.media.tumblr.com/00276016aea74993b8733b04b61fe106/0b1501327ebf4709-35/s640x960/7c2fb38e6739163c85dfcfbe428cf95307c71a0d.gifv 640w, https://64.media.tumblr.com/00276016aea74993b8733b04b61fe106/0b1501327ebf4709-35/s1280x1920/3a9fe930ce9b7f601e4dbc395296967a9616cda3.gifv 1000w" sizes="(max-width: 1000px) 100vw, 1000px" alt="image"></a></figure></div></div><h2>Tumblr Booths</h2><p>Meanwhile, a separate team of <a class="tumblelog" href="https://tmblr.co/M2Xur9JrY9otrFMdQoh9Phg">@autoplanes</a>, Katie, <a class="tumblelog" href="https://tmblr.co/Mva9poZdpyVfHBw57qFXxxQ">@lex</a>, Shaun, and Eve dug into the idea of selling digital and physical goods through blogs on Tumblr, leveraging our sibling platform <a href="https://href.li/?https://woocommerce.com/">WooCommerce</a>! Blogs could put whatever they’d like for sale here, and have a dedicated space for it. We know there are so many amazing artists and artisans here who could use this to more easily sell their creations on Tumblr!</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/40a0eff02093800a8bc1b4d097f02215/0b1501327ebf4709-dc/s1280x1920/4a312445907103d52eda66c3a63c259b4f9d344d.gifv" data-big-photo-height="" data-big-photo-width=""><img class="post_media_photo image" src="https://64.media.tumblr.com/40a0eff02093800a8bc1b4d097f02215/0b1501327ebf4709-dc/s500x750/9bedad77e7956d9cda9162fb692c9d41e61cf18b.gifv" srcset="https://64.media.tumblr.com/40a0eff02093800a8bc1b4d097f02215/0b1501327ebf4709-dc/s75x75_c1/c6377f8842fa3bb3ccf56f249a40653c034a3bfb.gifv 75w, https://64.media.tumblr.com/40a0eff02093800a8bc1b4d097f02215/0b1501327ebf4709-dc/s100x200/13e76da66a144c18e83b36512cba48060daf631b.gifv 100w, https://64.media.tumblr.com/40a0eff02093800a8bc1b4d097f02215/0b1501327ebf4709-dc/s250x400/9c18d147659706b8580307ab31a0e207a765a925.gifv 250w, https://64.media.tumblr.com/40a0eff02093800a8bc1b4d097f02215/0b1501327ebf4709-dc/s400x600/c8e66d377f4c9706dba110703ea3db3d14956d10.gifv 400w, https://64.media.tumblr.com/40a0eff02093800a8bc1b4d097f02215/0b1501327ebf4709-dc/s500x750/9bedad77e7956d9cda9162fb692c9d41e61cf18b.gifv 496w" sizes="(max-width: 496px) 100vw, 496px" alt="image"></a></figure></div></div><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/25251a5d922d8f76856b22775c6f2f47/0b1501327ebf4709-a7/s1280x1920/8408d24af8640739e874ffd2e50c31483d5f7d91.gifv" data-big-photo-height="" data-big-photo-width=""><img class="post_media_photo image" src="https://64.media.tumblr.com/25251a5d922d8f76856b22775c6f2f47/0b1501327ebf4709-a7/s500x750/ecd4fd78445fa05b22203639f03087913771139c.gifv" srcset="https://64.media.tumblr.com/25251a5d922d8f76856b22775c6f2f47/0b1501327ebf4709-a7/s75x75_c1/a2e205163deeccd9d8e73816ddf49f2b264bda3c.gifv 75w, https://64.media.tumblr.com/25251a5d922d8f76856b22775c6f2f47/0b1501327ebf4709-a7/s100x200/7ff26e6251e9c0533efae0bc0d77d82d5b373a09.gifv 100w, https://64.media.tumblr.com/25251a5d922d8f76856b22775c6f2f47/0b1501327ebf4709-a7/s250x400/e94d95c5b8104e30f320a7913ac45da08e3de86b.gifv 250w, https://64.media.tumblr.com/25251a5d922d8f76856b22775c6f2f47/0b1501327ebf4709-a7/s400x600/aabcd1eb028075eee1c60005dbc26a51393511ec.gifv 400w, https://64.media.tumblr.com/25251a5d922d8f76856b22775c6f2f47/0b1501327ebf4709-a7/s500x750/ecd4fd78445fa05b22203639f03087913771139c.gifv 492w" sizes="(max-width: 492px) 100vw, 492px" alt="image"></a></figure></div></div><h2>Avatar Frames/Hats</h2><p>This one is a golden oldie, it keeps coming back hack day after hack day, and each time it gets even better. Santi and Maxime hacked together some example avatar “frames” and “hats” that folks on Tumblr could purchase for their blog. Maybe eventually people could <i>create</i> these and sell them or gift them to each other!</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/b9156c8de486487a1b44ba16610ad847/0b1501327ebf4709-94/s1280x1920/c60bce24ef2f58ee4767b754484a55828e05465c.png" data-big-photo-height="370" data-big-photo-width="1190"><img class="post_media_photo image" src="https://64.media.tumblr.com/b9156c8de486487a1b44ba16610ad847/0b1501327ebf4709-94/s1280x1920/c60bce24ef2f58ee4767b754484a55828e05465c.png" srcset="https://64.media.tumblr.com/b9156c8de486487a1b44ba16610ad847/0b1501327ebf4709-94/s75x75_c1/3a02ad1382d8f1bbe812bc6bd88d45e9c27e67c6.png 75w, https://64.media.tumblr.com/b9156c8de486487a1b44ba16610ad847/0b1501327ebf4709-94/s100x200/b1635ac28d8b60cfc9bf59bd22b8ee5dfe7178c1.png 100w, https://64.media.tumblr.com/b9156c8de486487a1b44ba16610ad847/0b1501327ebf4709-94/s250x400/501c630410ccf89b097f845a045bdc56048eba84.png 250w, https://64.media.tumblr.com/b9156c8de486487a1b44ba16610ad847/0b1501327ebf4709-94/s400x600/08866ee59484c4fe78296721185bf18ef7f0c784.png 400w, https://64.media.tumblr.com/b9156c8de486487a1b44ba16610ad847/0b1501327ebf4709-94/s500x750/b286e86bbd017459997351787d5c9778bcc9659a.png 500w, https://64.media.tumblr.com/b9156c8de486487a1b44ba16610ad847/0b1501327ebf4709-94/s540x810/356ed70ce6331a07b032737c66d47b8807096ae5.png 540w, https://64.media.tumblr.com/b9156c8de486487a1b44ba16610ad847/0b1501327ebf4709-94/s640x960/0762b48f2137f31827fea2370b4cd37a1e7695b7.png 640w, https://64.media.tumblr.com/b9156c8de486487a1b44ba16610ad847/0b1501327ebf4709-94/s1280x1920/c60bce24ef2f58ee4767b754484a55828e05465c.png 1190w" sizes="(max-width: 1190px) 100vw, 1190px" alt="image"></a></figure></div></div><p>As always, stay tuned to the <a class="tumblelog" href="https://tmblr.co/MYXvAUPIj9KzlTb7SqaHO0A">@changes</a> blog to see if any of these hacks make it on Tumblr for real!</p></div> </div> <section class="inline-meta post-extra"> </section> <section class="inline-meta post-extra has-tags"> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20engineering">tumblr engineering</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20hack%20week">tumblr hack week</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20hack%20day">tumblr hack day</a> </section> </section> <section class="panel"> <footer class="post-footer"> <section class="panel"> <section class="inline-meta date-notes"> <div class="date-note-wrapper"> <span> <a href="https://engineering.tumblr.com/post/730272830210621441/tumblr-hack-week-september-2023-edition#notes" class="meta-item post-notes">512 notes</a> </span> <a href="https://engineering.tumblr.com/post/730272830210621441/tumblr-hack-week-september-2023-edition" title="1 year ago" class="meta-item post-date">Oct 4th, 2023</a><time class="dt-published" datetime="2023-10-04 14:00:42"></time> </div> </section> <section class="post-controls"> <div class="controls-wrapper"> <div class="control share-control"> <nav class="pop"> <a href="#" class="share selector"></a> <div class="pop-menu share-menu south" id="share_730272830210621441"> <ul> <li class="open-in-app"><a href="#" class="share-item open-in-app" data-post="730272830210621441">Open in app</a></li> <li><a href="https://facebook.com/sharer.php?u=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F730272830210621441%2Ftumblr-hack-week-september-2023-edition&t=Tumblr%20Hack%20Week%2C%20September%202023%20Edition" class="share-item facebook" target="_blank">Facebook</a></li> <li><a href="https://twitter.com/intent/tweet?text=Tumblr%20Hack%20Week%2C%20September%202023%20Edition%20Once%20again%20it%20was%20Hack%20Week%20%28more%20than%20just%20a%20day%21%29%20at%20Tumblr%21%20A%20couple%20of%20times%20per%20year%20we%20slow%20down%20our%20normal%20work%20and%20spend%20a%20week%20working%20on%20scratching%20a%20personal%20itch%20or%20features%20we%20want%20as%20user...%20https%3A%2F%2Ftmblr.co%2FZI3nWxeYSqKPqi01" class="share-item twitter" target="_blank">Tweet</a></li> <li><a href="https://reddit.com/submit?url=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F730272830210621441%2Ftumblr-hack-week-september-2023-edition" class="share-item reddit" target="_blank">Reddit</a></li> <li><a href="mailto:?subject=A%20post%20from%20Tumblr%20Engineering&body=Tumblr%20Hack%20Week%2C%20September%202023%20Edition%20Once%20again%20it%20was%20Hack%20Week%20%28more%20than%20just%20a%20day%21%29%20at%20Tumblr%21%20A%20couple%20of%20times%20per%20year%20we%20slow%20down%20our%20normal...%20https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F730272830210621441%2Ftumblr-hack-week-september-2023-edition" class="share-item mail">Mail</a></li> <li><a href="https://engineering.tumblr.com/post/730272830210621441/embed" class="share-item permalink">Embed</a></li> <li><a href="https://engineering.tumblr.com/post/730272830210621441/tumblr-hack-week-september-2023-edition" class="share-item permalink">Permalink <i class="arrow"></i></a></li> </ul> </div> </nav> </div> <div class="control reblog-control"><a href="https://www.tumblr.com/reblog/engineering/730272830210621441/FDNCyLSh" class="reblog_button"style="display: block;width:24px;height:24px;"><svg width="100%" height="100%" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000"><path d="M5.01092527,5.99908429 L16.0088498,5.99908429 L16.136,9.508 L20.836,4.752 L16.136,0.083 L16.1360004,3.01110845 L2.09985349,3.01110845 C1.50585349,3.01110845 0.979248041,3.44726568 0.979248041,4.45007306 L0.979248041,10.9999998 L3.98376463,8.30993634 L3.98376463,6.89801007 C3.98376463,6.20867902 4.71892527,5.99908429 5.01092527,5.99908429 Z"></path><path d="M17.1420002,13.2800293 C17.1420002,13.5720293 17.022957,14.0490723 16.730957,14.0490723 L4.92919922,14.0490723 L4.92919922,11 L0.5,15.806 L4.92919922,20.5103758 L5.00469971,16.9990234 L18.9700928,16.9990234 C19.5640928,16.9990234 19.9453125,16.4010001 19.9453125,15.8060001 L19.9453125,9.5324707 L17.142,12.203"></path></svg></a></div> <div class="control like-control"><div class="like_button" data-post-id="730272830210621441" data-blog-name="engineering" id="like_button_730272830210621441"><iframe id="like_iframe_730272830210621441" src="https://assets.tumblr.com/assets/html/like_iframe.html?_v=c96f30edcf75919c3976e1403422560b#name=engineering&post_id=730272830210621441&color=black&rk=FDNCyLSh&slug=tumblr-hack-week-september-2023-edition" scrolling="no" width="24" height="24" frameborder="0" class="like_toggle" allowTransparency="true" name="like_iframe_730272830210621441"></iframe></div></div> </div> </section> </section> <section class="inline-meta date-notes"> <span class="notes-pop-container"> </span> </section> </footer> </section> </div> </article> <article class="text not-page post-722102563011493888 " data-post-id="722102563011493888" > <div class="post-wrapper clearfix h-entry"> <header class="post-header "> </header> <section class="post"> <div class="post-content"> <div class="body-text e-content"><h1><b>StreamBuilder: our open-source framework for powering your dashboard.</b></h1><p>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 <b>StreamBuilder</b>, and we’ve been using it for many years.</p><p>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.</p><p>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, <a href="https://github.com/Automattic/stream-builder">check it out here on GitHub</a>!</p><p>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.</p><p>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.</p><p><b>So, what’s included in the box?</b></p><ul><li>The full framework library of code that we use today, on Tumblr, to power almost every feed of content you see on the platform.</li><li>A YAML syntax for composing streams of content, and how to filter, inject, and rank them.</li><li>Abstractions for programmatically composing, filtering, ranking, injecting, and debugging streams.</li><li>Abstractions for composing streams together—such as with carousels, for streams-within-streams.</li><li>An abstraction for cursor-based pagination for complex stream templates.</li><li>Unit tests covering the public interface for the library and most of the underlying code.</li></ul><p><b>What’s still to come</b></p><ul><li>Documentation. We have a lot to migrate from our own internal tools and put in here!</li><li>More example stream templates and example implementations of different common streams.</li></ul><p>If you have questions, please <a href="https://github.com/Automattic/stream-builder">check out the code</a> and file an issue there.</p></div> </div> <section class="inline-meta post-extra"> </section> <section class="inline-meta post-extra has-tags"> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/opensource">opensource</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/engineering">engineering</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr">tumblr</a> </section> </section> <section class="panel"> <footer class="post-footer"> <section class="panel"> <section class="inline-meta date-notes"> <div class="date-note-wrapper"> <span> <a href="https://engineering.tumblr.com/post/722102563011493888/streambuilder-our-open-source-framework-for#notes" class="meta-item post-notes">4,683 notes</a> </span> <a href="https://engineering.tumblr.com/post/722102563011493888/streambuilder-our-open-source-framework-for" title="1 year ago" class="meta-item post-date">Jul 6th, 2023</a><time class="dt-published" datetime="2023-07-06 09:37:48"></time> </div> </section> <section class="post-controls"> <div class="controls-wrapper"> <div class="control share-control"> <nav class="pop"> <a href="#" class="share selector"></a> <div class="pop-menu share-menu south" id="share_722102563011493888"> <ul> <li class="open-in-app"><a href="#" class="share-item open-in-app" data-post="722102563011493888">Open in app</a></li> <li><a href="https://facebook.com/sharer.php?u=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F722102563011493888%2Fstreambuilder-our-open-source-framework-for&t=" class="share-item facebook" target="_blank">Facebook</a></li> <li><a href="https://twitter.com/intent/tweet?text=StreamBuilder%3A%20our%20open-source%20framework%20for%20powering%20your%20dashboard.%20Today%2C%20we%E2%80%99re%20abnormally%20jazzed%20to%20announce%20that%20we%E2%80%99re%20open-sourcing%20the%20custom%20framework%20we%20built%20to%20power%20your%20dashboard%20on%20Tumblr.%20We%20call%20it%20StreamBuilder%2C%20and%20we%E2%80%99ve%20been...%20https%3A%2F%2Ftmblr.co%2FZI3nWxe5R7I7im00" class="share-item twitter" target="_blank">Tweet</a></li> <li><a href="https://reddit.com/submit?url=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F722102563011493888%2Fstreambuilder-our-open-source-framework-for" class="share-item reddit" target="_blank">Reddit</a></li> <li><a href="mailto:?subject=A%20post%20from%20Tumblr%20Engineering&body=StreamBuilder%3A%20our%20open-source%20framework%20for%20powering%20your%20dashboard.%20Today%2C%20we%E2%80%99re%20abnormally%20jazzed%20to%20announce%20that%20we%E2%80%99re%20open-sourcing%20the%20custom...%20https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F722102563011493888%2Fstreambuilder-our-open-source-framework-for" class="share-item mail">Mail</a></li> <li><a href="https://engineering.tumblr.com/post/722102563011493888/embed" class="share-item permalink">Embed</a></li> <li><a href="https://engineering.tumblr.com/post/722102563011493888/streambuilder-our-open-source-framework-for" class="share-item permalink">Permalink <i class="arrow"></i></a></li> </ul> </div> </nav> </div> <div class="control reblog-control"><a href="https://www.tumblr.com/reblog/engineering/722102563011493888/r8wNS93U" class="reblog_button"style="display: block;width:24px;height:24px;"><svg width="100%" height="100%" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000"><path d="M5.01092527,5.99908429 L16.0088498,5.99908429 L16.136,9.508 L20.836,4.752 L16.136,0.083 L16.1360004,3.01110845 L2.09985349,3.01110845 C1.50585349,3.01110845 0.979248041,3.44726568 0.979248041,4.45007306 L0.979248041,10.9999998 L3.98376463,8.30993634 L3.98376463,6.89801007 C3.98376463,6.20867902 4.71892527,5.99908429 5.01092527,5.99908429 Z"></path><path d="M17.1420002,13.2800293 C17.1420002,13.5720293 17.022957,14.0490723 16.730957,14.0490723 L4.92919922,14.0490723 L4.92919922,11 L0.5,15.806 L4.92919922,20.5103758 L5.00469971,16.9990234 L18.9700928,16.9990234 C19.5640928,16.9990234 19.9453125,16.4010001 19.9453125,15.8060001 L19.9453125,9.5324707 L17.142,12.203"></path></svg></a></div> <div class="control like-control"><div class="like_button" data-post-id="722102563011493888" data-blog-name="engineering" id="like_button_722102563011493888"><iframe id="like_iframe_722102563011493888" src="https://assets.tumblr.com/assets/html/like_iframe.html?_v=c96f30edcf75919c3976e1403422560b#name=engineering&post_id=722102563011493888&color=black&rk=r8wNS93U&slug=streambuilder-our-open-source-framework-for" scrolling="no" width="24" height="24" frameborder="0" class="like_toggle" allowTransparency="true" name="like_iframe_722102563011493888"></iframe></div></div> </div> </section> </section> <section class="inline-meta date-notes"> <span class="notes-pop-container"> </span> </section> </footer> </section> </div> </article> <article class="text not-page post-713599421825351680 " data-post-id="713599421825351680" > <div class="post-wrapper clearfix h-entry"> <header class="post-header "> </header> <section class="post"> <div class="post-content"> <h2 class="title p-name"><a href="https://engineering.tumblr.com/post/713599421825351680/tumblr-hack-day-march-2023-edition" class="u-url">Tumblr Hack Day, March 2023 Edition</a></h2> <div class="body-text e-content"><p>Well well well, it was Hack Day once again at Tumblr. A few times per year we slow down our normal work and spend a day (or sometimes a whole week) working on whatever we want and see how far we can get with our hacks. Here are some of the projects that got made for our most recent Hack Day earlier this month. Some of these things you may also end up seeing on the site…</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/0807dffbcf1e9db8a3ddf31b4f026c39/dec349afc8bbeb99-9a/s1280x1920/7edf2837f89b95b31317dfda6e0864260368345e.png" data-big-photo-height="686" data-big-photo-width="1500"><img class="post_media_photo image" src="https://64.media.tumblr.com/0807dffbcf1e9db8a3ddf31b4f026c39/dec349afc8bbeb99-9a/s1280x1920/7edf2837f89b95b31317dfda6e0864260368345e.png" srcset="https://64.media.tumblr.com/0807dffbcf1e9db8a3ddf31b4f026c39/dec349afc8bbeb99-9a/s75x75_c1/bd9d60b28a8ad605ed7057f9d56fdfe2a1758e05.png 75w, https://64.media.tumblr.com/0807dffbcf1e9db8a3ddf31b4f026c39/dec349afc8bbeb99-9a/s100x200/c28136d6fb46236bb5b06849d3524172aa2a1449.png 100w, https://64.media.tumblr.com/0807dffbcf1e9db8a3ddf31b4f026c39/dec349afc8bbeb99-9a/s250x400/d5990a2d46b09d5183cee103b251f364d86d574b.png 250w, https://64.media.tumblr.com/0807dffbcf1e9db8a3ddf31b4f026c39/dec349afc8bbeb99-9a/s400x600/286e04a1daac5bb1f92231d5e610aed80bbf1c2c.png 400w, https://64.media.tumblr.com/0807dffbcf1e9db8a3ddf31b4f026c39/dec349afc8bbeb99-9a/s500x750/c31f576cb12cd92db1fb3deee87efa1f741d77c7.png 500w, https://64.media.tumblr.com/0807dffbcf1e9db8a3ddf31b4f026c39/dec349afc8bbeb99-9a/s540x810/cd0cf982fe753d793b0208d1865e7326bac8aa40.png 540w, https://64.media.tumblr.com/0807dffbcf1e9db8a3ddf31b4f026c39/dec349afc8bbeb99-9a/s640x960/866563a1f61cb31edc39d42672e0e123d23c813d.png 640w, https://64.media.tumblr.com/0807dffbcf1e9db8a3ddf31b4f026c39/dec349afc8bbeb99-9a/s1280x1920/7edf2837f89b95b31317dfda6e0864260368345e.png 1280w, https://64.media.tumblr.com/0807dffbcf1e9db8a3ddf31b4f026c39/dec349afc8bbeb99-9a/s2048x3072/a10138f06f43173037f613167f32acc41495996c.png 1500w" sizes="(max-width: 1280px) 100vw, 1280px" alt="image"></a></figure></div></div><p>Wesley worked on adding the ability to translate the text content of posts using <a href="https://libretranslate.com/">LibreTranslate,</a> which works really well! We know this is a big pain point for folks who use Tumblr around the world, so we’re excited to keep experimenting with this.</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/f2b6b4cf33b232ba2f3caebd47978744/dec349afc8bbeb99-8a/s1280x1920/fb21fe4a88eada88668fe46589127148a8400341.png" data-big-photo-height="1686" data-big-photo-width="1436"><img class="post_media_photo image" src="https://64.media.tumblr.com/f2b6b4cf33b232ba2f3caebd47978744/dec349afc8bbeb99-8a/s1280x1920/fb21fe4a88eada88668fe46589127148a8400341.png" srcset="https://64.media.tumblr.com/f2b6b4cf33b232ba2f3caebd47978744/dec349afc8bbeb99-8a/s75x75_c1/07f84c828e2322afebe1e8353be334874bae7b83.png 75w, https://64.media.tumblr.com/f2b6b4cf33b232ba2f3caebd47978744/dec349afc8bbeb99-8a/s100x200/288b8d6eb5a150934c6a42431db01ee84a781d41.png 100w, https://64.media.tumblr.com/f2b6b4cf33b232ba2f3caebd47978744/dec349afc8bbeb99-8a/s250x400/9b5013566a8e140e133eab7f541db50786f1c9a2.png 250w, https://64.media.tumblr.com/f2b6b4cf33b232ba2f3caebd47978744/dec349afc8bbeb99-8a/s400x600/00a8d8605fb916550141af6c4a58f25a10861d4f.png 400w, https://64.media.tumblr.com/f2b6b4cf33b232ba2f3caebd47978744/dec349afc8bbeb99-8a/s500x750/2b65ac9d31737c68ea64d8d5b5abaf625211d1f7.png 500w, https://64.media.tumblr.com/f2b6b4cf33b232ba2f3caebd47978744/dec349afc8bbeb99-8a/s540x810/22d04d8126a6f716b8789cc01ff2d2d8109ca7d1.png 540w, https://64.media.tumblr.com/f2b6b4cf33b232ba2f3caebd47978744/dec349afc8bbeb99-8a/s640x960/d675d60a245271f5f6e571e222a905ccc7bf195a.png 640w, https://64.media.tumblr.com/f2b6b4cf33b232ba2f3caebd47978744/dec349afc8bbeb99-8a/s1280x1920/fb21fe4a88eada88668fe46589127148a8400341.png 1280w, https://64.media.tumblr.com/f2b6b4cf33b232ba2f3caebd47978744/dec349afc8bbeb99-8a/s2048x3072/1f3d57f4586c5478b5e9dfc0d84ebe0a78729ee6.png 1436w" sizes="(max-width: 1280px) 100vw, 1280px" alt="image"></a></figure></div></div><p>Omar built a Feature Wishlist for the Android app, which has different lists for community-driven and staff-driven feature ideas, with the ability to upvote which ones you’d like the most! Really cool, we’re trying to think of ways like this to expand what we can do to collaborate with the community, like we already do with the <a class="tumblelog" href="https://tmblr.co/MN2qHGaDAWarjyCsTTyYwpQ">@wip</a> and <a class="tumblelog" href="https://tmblr.co/MYXvAUPIj9KzlTb7SqaHO0A">@changes</a> blogs.</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/41fddb58a35075542d1242c1af742042/dec349afc8bbeb99-42/s1280x1920/0f391b46bd1eb592f496190efc2847c2d17690db.png" data-big-photo-height="330" data-big-photo-width="1114"><img class="post_media_photo image" src="https://64.media.tumblr.com/41fddb58a35075542d1242c1af742042/dec349afc8bbeb99-42/s1280x1920/0f391b46bd1eb592f496190efc2847c2d17690db.png" srcset="https://64.media.tumblr.com/41fddb58a35075542d1242c1af742042/dec349afc8bbeb99-42/s75x75_c1/1b77733baf42b2714bbe0c8bb5354bba4098ecea.png 75w, https://64.media.tumblr.com/41fddb58a35075542d1242c1af742042/dec349afc8bbeb99-42/s100x200/257fbc9ee66e4af564d6969e1dd7bc92c42280a2.png 100w, https://64.media.tumblr.com/41fddb58a35075542d1242c1af742042/dec349afc8bbeb99-42/s250x400/eb93a4267d50e6214ee6abf08cf902abf2a6b947.png 250w, https://64.media.tumblr.com/41fddb58a35075542d1242c1af742042/dec349afc8bbeb99-42/s400x600/f241eacc4ef0f8b9ecc0dbfbc2dd051ef0936c5e.png 400w, https://64.media.tumblr.com/41fddb58a35075542d1242c1af742042/dec349afc8bbeb99-42/s500x750/7e291414810b3bb33f339e876d6959828ab4fc58.png 500w, https://64.media.tumblr.com/41fddb58a35075542d1242c1af742042/dec349afc8bbeb99-42/s540x810/caa400241ca935003d15774a195f41b94ccf9f7a.png 540w, https://64.media.tumblr.com/41fddb58a35075542d1242c1af742042/dec349afc8bbeb99-42/s640x960/06e85f087a46b56edbfcc64cbc9986398e8a571f.png 640w, https://64.media.tumblr.com/41fddb58a35075542d1242c1af742042/dec349afc8bbeb99-42/s1280x1920/0f391b46bd1eb592f496190efc2847c2d17690db.png 1114w" sizes="(max-width: 1114px) 100vw, 1114px" alt="image"></a></figure></div></div><p>One thing that’s been bugging <a class="tumblelog" href="https://tmblr.co/Mba1WdB15nZPOJFNurRGsQg">@blowery</a> forever is trying to figure out who exactly added the tags when you’re viewing a reblog of a post. It can be hard to tell whether the person reblogging it added the tags, or if they’re meant to come from the reblogged post. To help distinguish this, they hacked together putting the reblogger’s avatar next to the tags they added at the bottom of their reblog!</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/8dc2cd4ab5b962ca86a7a16771d88d74/dec349afc8bbeb99-82/s1280x1920/205a26dbd612a5f6b83099176c98c84f252a57b4.png" data-big-photo-height="990" data-big-photo-width="1196"><img class="post_media_photo image" src="https://64.media.tumblr.com/8dc2cd4ab5b962ca86a7a16771d88d74/dec349afc8bbeb99-82/s1280x1920/205a26dbd612a5f6b83099176c98c84f252a57b4.png" srcset="https://64.media.tumblr.com/8dc2cd4ab5b962ca86a7a16771d88d74/dec349afc8bbeb99-82/s75x75_c1/20ea23775a1d04ba26e0442aa87338b595d101e4.png 75w, https://64.media.tumblr.com/8dc2cd4ab5b962ca86a7a16771d88d74/dec349afc8bbeb99-82/s100x200/b8483e1055d5b1ef3b9f7c10f9c91dadeee367dc.png 100w, https://64.media.tumblr.com/8dc2cd4ab5b962ca86a7a16771d88d74/dec349afc8bbeb99-82/s250x400/ffaf2fdd845cce56c9373ecdd6e37fbf6e1ab606.png 250w, https://64.media.tumblr.com/8dc2cd4ab5b962ca86a7a16771d88d74/dec349afc8bbeb99-82/s400x600/e20ed7410471c9b703b4e25e505a2905c9807eac.png 400w, https://64.media.tumblr.com/8dc2cd4ab5b962ca86a7a16771d88d74/dec349afc8bbeb99-82/s500x750/143db660668207bf5d4e63a66c341229f9d417e2.png 500w, https://64.media.tumblr.com/8dc2cd4ab5b962ca86a7a16771d88d74/dec349afc8bbeb99-82/s540x810/3b973d3780f4e3ee019184447757b74650831123.png 540w, https://64.media.tumblr.com/8dc2cd4ab5b962ca86a7a16771d88d74/dec349afc8bbeb99-82/s640x960/7217e9d5cdaf4e7c4011a0cb4138d1a52a6a9159.png 640w, https://64.media.tumblr.com/8dc2cd4ab5b962ca86a7a16771d88d74/dec349afc8bbeb99-82/s1280x1920/205a26dbd612a5f6b83099176c98c84f252a57b4.png 1196w" sizes="(max-width: 1196px) 100vw, 1196px" alt="image"></a></figure></div></div><p><a class="tumblelog" href="https://tmblr.co/MVBfGKD-AkVQUXBqdhW6Zag">@straku</a> hacked together a more modern look for our 1:1 messaging on Tumblr, bringing the message bubbles into a left-and-right back-and-forth format, and using some better colors. Looks a lot snazzier!</p><p>As always, stay tuned to the <a class="tumblelog" href="https://tmblr.co/MYXvAUPIj9KzlTb7SqaHO0A">@changes</a> blog to see if any of these hacks make it on Tumblr for real!</p></div> </div> <section class="inline-meta post-extra"> </section> <section class="inline-meta post-extra has-tags"> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20engineering">tumblr engineering</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20hack%20day">tumblr hack day</a> </section> </section> <section class="panel"> <footer class="post-footer"> <section class="panel"> <section class="inline-meta date-notes"> <div class="date-note-wrapper"> <span> <a href="https://engineering.tumblr.com/post/713599421825351680/tumblr-hack-day-march-2023-edition#notes" class="meta-item post-notes">257 notes</a> </span> <a href="https://engineering.tumblr.com/post/713599421825351680/tumblr-hack-day-march-2023-edition" title="2 years ago" class="meta-item post-date">Apr 3rd, 2023</a><time class="dt-published" datetime="2023-04-03 13:04:00"></time> </div> </section> <section class="post-controls"> <div class="controls-wrapper"> <div class="control share-control"> <nav class="pop"> <a href="#" class="share selector"></a> <div class="pop-menu share-menu south" id="share_713599421825351680"> <ul> <li class="open-in-app"><a href="#" class="share-item open-in-app" data-post="713599421825351680">Open in app</a></li> <li><a href="https://facebook.com/sharer.php?u=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F713599421825351680%2Ftumblr-hack-day-march-2023-edition&t=Tumblr%20Hack%20Day%2C%20March%202023%20Edition" class="share-item facebook" target="_blank">Facebook</a></li> <li><a href="https://twitter.com/intent/tweet?text=Tumblr%20Hack%20Day%2C%20March%202023%20Edition%20Well%20well%20well%2C%20it%20was%20Hack%20Day%20once%20again%20at%20Tumblr.%20A%20few%20times%20per%20year%20we%20slow%20down%20our%20normal%20work%20and%20spend%20a%20day%20%28or%20sometimes%20a%20whole%20week%29%20working%20on%20whatever%20we%20want%20and%20see%20how%20far%20we%20can%20get%20with...%20https%3A%2F%2Ftmblr.co%2FZI3nWxddDkInqm00" class="share-item twitter" target="_blank">Tweet</a></li> <li><a href="https://reddit.com/submit?url=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F713599421825351680%2Ftumblr-hack-day-march-2023-edition" class="share-item reddit" target="_blank">Reddit</a></li> <li><a href="mailto:?subject=A%20post%20from%20Tumblr%20Engineering&body=Tumblr%20Hack%20Day%2C%20March%202023%20Edition%20Well%20well%20well%2C%20it%20was%20Hack%20Day%20once%20again%20at%20Tumblr.%20A%20few%20times%20per%20year%20we%20slow%20down%20our%20normal%20work%20and%20spend%20a%20day%20%28or...%20https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F713599421825351680%2Ftumblr-hack-day-march-2023-edition" class="share-item mail">Mail</a></li> <li><a href="https://engineering.tumblr.com/post/713599421825351680/embed" class="share-item permalink">Embed</a></li> <li><a href="https://engineering.tumblr.com/post/713599421825351680/tumblr-hack-day-march-2023-edition" class="share-item permalink">Permalink <i class="arrow"></i></a></li> </ul> </div> </nav> </div> <div class="control reblog-control"><a href="https://www.tumblr.com/reblog/engineering/713599421825351680/S3E5WDc8" class="reblog_button"style="display: block;width:24px;height:24px;"><svg width="100%" height="100%" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000"><path d="M5.01092527,5.99908429 L16.0088498,5.99908429 L16.136,9.508 L20.836,4.752 L16.136,0.083 L16.1360004,3.01110845 L2.09985349,3.01110845 C1.50585349,3.01110845 0.979248041,3.44726568 0.979248041,4.45007306 L0.979248041,10.9999998 L3.98376463,8.30993634 L3.98376463,6.89801007 C3.98376463,6.20867902 4.71892527,5.99908429 5.01092527,5.99908429 Z"></path><path d="M17.1420002,13.2800293 C17.1420002,13.5720293 17.022957,14.0490723 16.730957,14.0490723 L4.92919922,14.0490723 L4.92919922,11 L0.5,15.806 L4.92919922,20.5103758 L5.00469971,16.9990234 L18.9700928,16.9990234 C19.5640928,16.9990234 19.9453125,16.4010001 19.9453125,15.8060001 L19.9453125,9.5324707 L17.142,12.203"></path></svg></a></div> <div class="control like-control"><div class="like_button" data-post-id="713599421825351680" data-blog-name="engineering" id="like_button_713599421825351680"><iframe id="like_iframe_713599421825351680" src="https://assets.tumblr.com/assets/html/like_iframe.html?_v=c96f30edcf75919c3976e1403422560b#name=engineering&post_id=713599421825351680&color=black&rk=S3E5WDc8&slug=tumblr-hack-day-march-2023-edition" scrolling="no" width="24" height="24" frameborder="0" class="like_toggle" allowTransparency="true" name="like_iframe_713599421825351680"></iframe></div></div> </div> </section> </section> <section class="inline-meta date-notes"> <span class="notes-pop-container"> </span> </section> </footer> </section> </div> </article> <article class="text not-page post-704817291209146368 " data-post-id="704817291209146368" > <div class="post-wrapper clearfix h-entry"> <header class="post-header "> </header> <section class="post"> <div class="post-content"> <h2 class="title p-name"><a href="https://engineering.tumblr.com/post/704817291209146368/tumblr-hack-day-december-2022-edition" class="u-url">Tumblr Hack Day, December 2022 Edition</a></h2> <div class="body-text e-content"><p>Ah yes, it was Hack Day once again at Tumblr. A few times per year we slow down our normal work and spend a day (or sometimes a whole week) working on whatever we want and see how far we can get with our hacks. The main star of <a href="https://engineering.tumblr.com/post/697281930624991232/tumblr-hack-week-september-2022-edition">the last Hack Week </a>was… pretty much all of them!</p><p>Here are some of the projects that got made for our most recent Hack Day earlier this month. Some of these things you may also end up seeing on the site…</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/6332cd0a7e4212ffd4651171a5d84eb1/9e8924dae836008f-c4/s1280x1920/d911a76056a06880aaa1184146780ffce2e0b3da.jpg" data-big-photo-height="930" data-big-photo-width="2024"><img class="post_media_photo image" src="https://64.media.tumblr.com/6332cd0a7e4212ffd4651171a5d84eb1/9e8924dae836008f-c4/s1280x1920/d911a76056a06880aaa1184146780ffce2e0b3da.jpg" srcset="https://64.media.tumblr.com/6332cd0a7e4212ffd4651171a5d84eb1/9e8924dae836008f-c4/s75x75_c1/065a528ec10cc0e86c04c3cf457f99622c81dbcf.jpg 75w, https://64.media.tumblr.com/6332cd0a7e4212ffd4651171a5d84eb1/9e8924dae836008f-c4/s100x200/95e6409860ec74df76da31c57525c9adff381029.jpg 100w, https://64.media.tumblr.com/6332cd0a7e4212ffd4651171a5d84eb1/9e8924dae836008f-c4/s250x400/a95f75a08ac9d1673b22eb0f8a15b9f84a3049b4.jpg 250w, https://64.media.tumblr.com/6332cd0a7e4212ffd4651171a5d84eb1/9e8924dae836008f-c4/s400x600/36bd73fb865fa9ab45033e6db14f06b543ae5dcb.jpg 400w, https://64.media.tumblr.com/6332cd0a7e4212ffd4651171a5d84eb1/9e8924dae836008f-c4/s500x750/b17e7151a7464c015eb8773b16bf07c40d0f3b8a.jpg 500w, https://64.media.tumblr.com/6332cd0a7e4212ffd4651171a5d84eb1/9e8924dae836008f-c4/s540x810/562ba801458212152886e2fd49ef5de62b4c20f1.jpg 540w, https://64.media.tumblr.com/6332cd0a7e4212ffd4651171a5d84eb1/9e8924dae836008f-c4/s640x960/f0a8add36e74b7582ec529bbad7f1579b809db0b.jpg 640w, https://64.media.tumblr.com/6332cd0a7e4212ffd4651171a5d84eb1/9e8924dae836008f-c4/s1280x1920/d911a76056a06880aaa1184146780ffce2e0b3da.jpg 1280w, https://64.media.tumblr.com/6332cd0a7e4212ffd4651171a5d84eb1/9e8924dae836008f-c4/s2048x3072/cc6c047773449893ce7a9357997025a722575b0e.jpg 2024w" sizes="(max-width: 1280px) 100vw, 1280px" alt="image"></a></figure></div></div><p><a class="tumblelog" href="https://tmblr.co/MleeuhLZpSUnzG4e_os2MIg">@yi5h</a> worked on a huge suite of “rewards” that folks on Tumblr could unlock by doing various things on the platform, such as reblogging, creating content, even just logging in! Maybe you could earn badges this way to put on your blog…</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/5b029fd7ee96f0f887009962dca4210a/9e8924dae836008f-ba/s1280x1920/a533ebe2e552bd044905fe12ffc0eddb620888a9.png" data-big-photo-height="966" data-big-photo-width="990"><img class="post_media_photo image" src="https://64.media.tumblr.com/5b029fd7ee96f0f887009962dca4210a/9e8924dae836008f-ba/s1280x1920/a533ebe2e552bd044905fe12ffc0eddb620888a9.png" srcset="https://64.media.tumblr.com/5b029fd7ee96f0f887009962dca4210a/9e8924dae836008f-ba/s75x75_c1/19573b2e09c627c113881bb11045c9d0350d67c2.png 75w, https://64.media.tumblr.com/5b029fd7ee96f0f887009962dca4210a/9e8924dae836008f-ba/s100x200/7afb1dc6d811eb39e487b87907132adf1fbdaeca.png 100w, https://64.media.tumblr.com/5b029fd7ee96f0f887009962dca4210a/9e8924dae836008f-ba/s250x400/8f723a03135fb32c57492af68cbaf7b40510f33f.png 250w, https://64.media.tumblr.com/5b029fd7ee96f0f887009962dca4210a/9e8924dae836008f-ba/s400x600/9799c6bddd173ee1b79d131cf99932818670b950.png 400w, https://64.media.tumblr.com/5b029fd7ee96f0f887009962dca4210a/9e8924dae836008f-ba/s500x750/953d2dfc4cb334bf71ab2946265a52ae8c82fe60.png 500w, https://64.media.tumblr.com/5b029fd7ee96f0f887009962dca4210a/9e8924dae836008f-ba/s540x810/09537b7af20bf44dcd88be861db81fdfa3bb5adc.png 540w, https://64.media.tumblr.com/5b029fd7ee96f0f887009962dca4210a/9e8924dae836008f-ba/s640x960/b9792ffd9a3cfb34a7a5960a8cb6e95076802cde.png 640w, https://64.media.tumblr.com/5b029fd7ee96f0f887009962dca4210a/9e8924dae836008f-ba/s1280x1920/a533ebe2e552bd044905fe12ffc0eddb620888a9.png 990w" sizes="(max-width: 990px) 100vw, 990px" alt="image"></a></figure></div></div><p><a class="tumblelog" href="https://tmblr.co/MVBfGKD-AkVQUXBqdhW6Zag">@straku</a> hacked together a new way of viewing reblog trails. We commonly get feedback that reblog trails are difficult to understand, so styling them differently to make the information clearer is fun to try out!</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/3a5a6df965e3f3ccfce95c71807961da/9e8924dae836008f-b1/s1280x1920/13c47589495a88442733292c20819596dc4c3f7b.png" data-big-photo-height="364" data-big-photo-width="845"><img class="post_media_photo image" src="https://64.media.tumblr.com/3a5a6df965e3f3ccfce95c71807961da/9e8924dae836008f-b1/s1280x1920/13c47589495a88442733292c20819596dc4c3f7b.png" srcset="https://64.media.tumblr.com/3a5a6df965e3f3ccfce95c71807961da/9e8924dae836008f-b1/s75x75_c1/254e15c633f6e04d907c82934d80ec0d53b73a31.png 75w, https://64.media.tumblr.com/3a5a6df965e3f3ccfce95c71807961da/9e8924dae836008f-b1/s100x200/226f637ca9dcf817812ca9738f9edac0bd12b83a.png 100w, https://64.media.tumblr.com/3a5a6df965e3f3ccfce95c71807961da/9e8924dae836008f-b1/s250x400/1aeaa8bc5cace791ae60edce5d419c7de953c5ad.png 250w, https://64.media.tumblr.com/3a5a6df965e3f3ccfce95c71807961da/9e8924dae836008f-b1/s400x600/f66a28f79509322ac9bf622b60f8d760892307e3.png 400w, https://64.media.tumblr.com/3a5a6df965e3f3ccfce95c71807961da/9e8924dae836008f-b1/s500x750/af6c0af1ee2f8d6a6737e66ea3a5ffc95914c1a0.png 500w, https://64.media.tumblr.com/3a5a6df965e3f3ccfce95c71807961da/9e8924dae836008f-b1/s540x810/be19a6c73ce16e7c07056e0dd1ce95b321d5e297.png 540w, https://64.media.tumblr.com/3a5a6df965e3f3ccfce95c71807961da/9e8924dae836008f-b1/s640x960/35f660a00bcc003cf448907445f30984002412eb.png 640w, https://64.media.tumblr.com/3a5a6df965e3f3ccfce95c71807961da/9e8924dae836008f-b1/s1280x1920/13c47589495a88442733292c20819596dc4c3f7b.png 845w" sizes="(max-width: 845px) 100vw, 845px" alt="image"></a></figure></div></div><p>Meanwhile, Evgeniy built a beautifully simple “Back to Top” button for the Android app, which does exactly what it sounds like: brings you back to the top of whatever feed you’re currently viewing. No more scrolling, scrolling, scrolling — just one tap!</p><p>As always, stay tuned to the <a class="tumblelog" href="https://tmblr.co/MYXvAUPIj9KzlTb7SqaHO0A">@changes</a> blog to see if any of these hacks make it on Tumblr for real!</p></div> </div> <section class="inline-meta post-extra"> </section> <section class="inline-meta post-extra has-tags"> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20engineering">tumblr engineering</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20hack%20day">tumblr hack day</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20hack%20week">tumblr hack week</a> </section> </section> <section class="panel"> <footer class="post-footer"> <section class="panel"> <section class="inline-meta date-notes"> <div class="date-note-wrapper"> <span> <a href="https://engineering.tumblr.com/post/704817291209146368/tumblr-hack-day-december-2022-edition#notes" class="meta-item post-notes">280 notes</a> </span> <a href="https://engineering.tumblr.com/post/704817291209146368/tumblr-hack-day-december-2022-edition" title="2 years ago" class="meta-item post-date">Dec 27th, 2022</a><time class="dt-published" datetime="2022-12-27 13:35:48"></time> </div> </section> <section class="post-controls"> <div class="controls-wrapper"> <div class="control share-control"> <nav class="pop"> <a href="#" class="share selector"></a> <div class="pop-menu share-menu south" id="share_704817291209146368"> <ul> <li class="open-in-app"><a href="#" class="share-item open-in-app" data-post="704817291209146368">Open in app</a></li> <li><a href="https://facebook.com/sharer.php?u=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F704817291209146368%2Ftumblr-hack-day-december-2022-edition&t=Tumblr%20Hack%20Day%2C%20December%202022%20Edition" class="share-item facebook" target="_blank">Facebook</a></li> <li><a href="https://twitter.com/intent/tweet?text=Tumblr%20Hack%20Day%2C%20December%202022%20Edition%20Ah%20yes%2C%20it%20was%20Hack%20Day%20once%20again%20at%20Tumblr.%20A%20few%20times%20per%20year%20we%20slow%20down%20our%20normal%20work%20and%20spend%20a%20day%20%28or%20sometimes%20a%20whole%20week%29%20working%20on%20whatever%20we%20want%20and%20see%20how%20far%20we%20can%20get%20with%20our...%20https%3A%2F%2Ftmblr.co%2FZI3nWxd80vUI4m00" class="share-item twitter" target="_blank">Tweet</a></li> <li><a href="https://reddit.com/submit?url=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F704817291209146368%2Ftumblr-hack-day-december-2022-edition" class="share-item reddit" target="_blank">Reddit</a></li> <li><a href="mailto:?subject=A%20post%20from%20Tumblr%20Engineering&body=Tumblr%20Hack%20Day%2C%20December%202022%20Edition%20Ah%20yes%2C%20it%20was%20Hack%20Day%20once%20again%20at%20Tumblr.%20A%20few%20times%20per%20year%20we%20slow%20down%20our%20normal%20work%20and%20spend%20a%20day%20%28or...%20https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F704817291209146368%2Ftumblr-hack-day-december-2022-edition" class="share-item mail">Mail</a></li> <li><a href="https://engineering.tumblr.com/post/704817291209146368/embed" class="share-item permalink">Embed</a></li> <li><a href="https://engineering.tumblr.com/post/704817291209146368/tumblr-hack-day-december-2022-edition" class="share-item permalink">Permalink <i class="arrow"></i></a></li> </ul> </div> </nav> </div> <div class="control reblog-control"><a href="https://www.tumblr.com/reblog/engineering/704817291209146368/aePqO5RR" class="reblog_button"style="display: block;width:24px;height:24px;"><svg width="100%" height="100%" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000"><path d="M5.01092527,5.99908429 L16.0088498,5.99908429 L16.136,9.508 L20.836,4.752 L16.136,0.083 L16.1360004,3.01110845 L2.09985349,3.01110845 C1.50585349,3.01110845 0.979248041,3.44726568 0.979248041,4.45007306 L0.979248041,10.9999998 L3.98376463,8.30993634 L3.98376463,6.89801007 C3.98376463,6.20867902 4.71892527,5.99908429 5.01092527,5.99908429 Z"></path><path d="M17.1420002,13.2800293 C17.1420002,13.5720293 17.022957,14.0490723 16.730957,14.0490723 L4.92919922,14.0490723 L4.92919922,11 L0.5,15.806 L4.92919922,20.5103758 L5.00469971,16.9990234 L18.9700928,16.9990234 C19.5640928,16.9990234 19.9453125,16.4010001 19.9453125,15.8060001 L19.9453125,9.5324707 L17.142,12.203"></path></svg></a></div> <div class="control like-control"><div class="like_button" data-post-id="704817291209146368" data-blog-name="engineering" id="like_button_704817291209146368"><iframe id="like_iframe_704817291209146368" src="https://assets.tumblr.com/assets/html/like_iframe.html?_v=c96f30edcf75919c3976e1403422560b#name=engineering&post_id=704817291209146368&color=black&rk=aePqO5RR&slug=tumblr-hack-day-december-2022-edition" scrolling="no" width="24" height="24" frameborder="0" class="like_toggle" allowTransparency="true" name="like_iframe_704817291209146368"></iframe></div></div> </div> </section> </section> <section class="inline-meta date-notes"> <span class="notes-pop-container"> </span> </section> </footer> </section> </div> </article> <article class="text not-page post-697281930624991232 " data-post-id="697281930624991232" > <div class="post-wrapper clearfix h-entry"> <header class="post-header "> </header> <section class="post"> <div class="post-content"> <h2 class="title p-name"><a href="https://engineering.tumblr.com/post/697281930624991232/tumblr-hack-week-september-2022-edition" class="u-url">Tumblr Hack Week, September 2022 Edition</a></h2> <div class="body-text e-content"><p>It was Hack <i>Week</i> (more than just a day!) once again at Tumblr! A couple of times per year we slow down our normal work and spend a week working on whatever we want and see how far we can get with our hacks. The main star of <a href="https://engineering.tumblr.com/post/678904863863783424/tumblr-hack-week-march-2022-edition">the last Hack Week </a>was the “Summon crab!” button, and we loved it so much that we rolled it out not just for April Fools this year, but we made it <a href="https://staff.tumblr.com/post/689764170806312960/clack-clack-clack">our first gift-able widget in TumblrMart!</a></p><p>Here are some of the projects that got made for this most recent Hack Week in September. Some of these things you may also end up seeing on the site…</p><h2>Tumbeast Digital Pet</h2><p>Ben worked on adding our friendly server room <a href="https://tumbeastwildlifecenter.tumblr.com/">Tumbeasts</a> to Tumblr as a cute little digital pet. You can feed them and play with them, and they poop and get unhappy and need tending, of course. Who wouldn’t want one of these to take care of every day on Tumblr, forever and ever?</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/88a1ed238b8c84a85cac7619e9293790/57899414a8cdb0dd-90/s1280x1920/394cd74d554a05e5cb044b2d07c907d8653f499d.jpg" data-big-photo-height="" data-big-photo-width=""><img class="post_media_photo image" src="https://64.media.tumblr.com/88a1ed238b8c84a85cac7619e9293790/57899414a8cdb0dd-90/s500x750/fb00f57667096b6d70dd30a4ef7f927a511f1ab7.jpg" srcset="https://64.media.tumblr.com/88a1ed238b8c84a85cac7619e9293790/57899414a8cdb0dd-90/s75x75_c1/09cfbcd4f5c8a5d43932a35d6a275e86bba6a79f.jpg 75w, https://64.media.tumblr.com/88a1ed238b8c84a85cac7619e9293790/57899414a8cdb0dd-90/s100x200/b1abb1d9229deea2749ccd9eef80697c4c299902.jpg 100w, https://64.media.tumblr.com/88a1ed238b8c84a85cac7619e9293790/57899414a8cdb0dd-90/s250x400/b31a57a0b8416590643af0e54ef55604d15e60fd.jpg 250w, https://64.media.tumblr.com/88a1ed238b8c84a85cac7619e9293790/57899414a8cdb0dd-90/s400x600/5e7e9a3e20270e3e4414483b5cc1f8058595e523.jpg 400w, https://64.media.tumblr.com/88a1ed238b8c84a85cac7619e9293790/57899414a8cdb0dd-90/s500x750/fb00f57667096b6d70dd30a4ef7f927a511f1ab7.jpg 426w" sizes="(max-width: 426px) 100vw, 426px" alt="image"></a></figure></div></div><h2>Tumblr Blaze on TumblrMart</h2><p><a class="tumblelog" href="https://tmblr.co/McIEdYd_dgxlXcBN7hHaltQ">@adalpari</a> added Tumblr Blaze as a gift-able item in TumblrMart, which would allow folks to buy Blaze “credits” for other people. Perfect for those times you see an amazing post on Tumblr that definitely deserves to be spread around, and you don’t mind throwing some money at letting that person have a chance to spread it via Blaze!</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/ff6256953bf841f9c092ebe9ed370307/57899414a8cdb0dd-62/s1280x1920/ffa64f096dde9f0a0449a73e0fa09b88fd61b39a.jpg" data-big-photo-height="1024" data-big-photo-width="512"><img class="post_media_photo image" src="https://64.media.tumblr.com/ff6256953bf841f9c092ebe9ed370307/57899414a8cdb0dd-62/s1280x1920/ffa64f096dde9f0a0449a73e0fa09b88fd61b39a.jpg" srcset="https://64.media.tumblr.com/ff6256953bf841f9c092ebe9ed370307/57899414a8cdb0dd-62/s75x75_c1/3c2355f0a45078d3d1aca70f5c4f4f0f813b15a2.jpg 75w, https://64.media.tumblr.com/ff6256953bf841f9c092ebe9ed370307/57899414a8cdb0dd-62/s100x200/93a35af00748d1b1d2e3cb4e7412669092244fb3.jpg 100w, https://64.media.tumblr.com/ff6256953bf841f9c092ebe9ed370307/57899414a8cdb0dd-62/s250x400/b860da89fe30cf5f4383cbbb1418be008107a211.jpg 200w, https://64.media.tumblr.com/ff6256953bf841f9c092ebe9ed370307/57899414a8cdb0dd-62/s400x600/7d61e68ec556936d517db6e2fa68c5f9013ceff5.jpg 300w, https://64.media.tumblr.com/ff6256953bf841f9c092ebe9ed370307/57899414a8cdb0dd-62/s500x750/704004a5f5b26358619442fe529a7251733e68c6.jpg 375w, https://64.media.tumblr.com/ff6256953bf841f9c092ebe9ed370307/57899414a8cdb0dd-62/s540x810/f44d290d402c864edded17dbe78169eb1dad69b0.jpg 405w, https://64.media.tumblr.com/ff6256953bf841f9c092ebe9ed370307/57899414a8cdb0dd-62/s640x960/5a197b5e9eff40d5cad98182491831ce0e68bc9e.jpg 480w, https://64.media.tumblr.com/ff6256953bf841f9c092ebe9ed370307/57899414a8cdb0dd-62/s1280x1920/ffa64f096dde9f0a0449a73e0fa09b88fd61b39a.jpg 512w" sizes="(max-width: 512px) 100vw, 512px" alt="image"></a></figure></div></div><h2>User Account Switcher</h2><p><a class="tumblelog" href="https://tmblr.co/MleeuhLZpSUnzG4e_os2MIg">@yi5h</a> hacked together an account switcher for the web, so that folks can log in to more than one Tumblr account and easily switch back and forth between them. Super handy if you have one account for your roleplaying character, and another for your Star Trek fandom discussions. Very useful!</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/e078883e4d244189da7d2ed7f02c66f4/57899414a8cdb0dd-d0/s1280x1920/8da67ae22010ab26e08c7c50327309a4faf8dfb4.png" data-big-photo-height="348" data-big-photo-width="922"><img class="post_media_photo image" src="https://64.media.tumblr.com/e078883e4d244189da7d2ed7f02c66f4/57899414a8cdb0dd-d0/s1280x1920/8da67ae22010ab26e08c7c50327309a4faf8dfb4.png" srcset="https://64.media.tumblr.com/e078883e4d244189da7d2ed7f02c66f4/57899414a8cdb0dd-d0/s75x75_c1/aa6630054f920f771e867dd129a72c04ee13c703.png 75w, https://64.media.tumblr.com/e078883e4d244189da7d2ed7f02c66f4/57899414a8cdb0dd-d0/s100x200/93f338f3c095195f7672ace2289f94ceba2d36fb.png 100w, https://64.media.tumblr.com/e078883e4d244189da7d2ed7f02c66f4/57899414a8cdb0dd-d0/s250x400/875e1de81240ce406a697d16c1671a7de0a67a23.png 250w, https://64.media.tumblr.com/e078883e4d244189da7d2ed7f02c66f4/57899414a8cdb0dd-d0/s400x600/b2d511f91acfa19423a510f7300bba972e1999c8.png 400w, https://64.media.tumblr.com/e078883e4d244189da7d2ed7f02c66f4/57899414a8cdb0dd-d0/s500x750/d8049598bf55d104e6a9acfca98ff312fddbdce1.png 500w, https://64.media.tumblr.com/e078883e4d244189da7d2ed7f02c66f4/57899414a8cdb0dd-d0/s540x810/152a780d2bb4fbc67c47b385a790a757d2fed0a2.png 540w, https://64.media.tumblr.com/e078883e4d244189da7d2ed7f02c66f4/57899414a8cdb0dd-d0/s640x960/2129eee04ca83639932feb712c4077e508534068.png 640w, https://64.media.tumblr.com/e078883e4d244189da7d2ed7f02c66f4/57899414a8cdb0dd-d0/s1280x1920/8da67ae22010ab26e08c7c50327309a4faf8dfb4.png 922w" sizes="(max-width: 922px) 100vw, 922px" alt="image"></a></figure></div></div><h2>Tumblr Collections</h2><p>On web as well, João made a version of an idea that’s floated around many times, the idea of being able to organize posts on Tumblr into “collections” that can be named and shared. I think everyone would very much enjoy having a collection called “waves” that’s just soothing GIFs of ocean waves.</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/939491cd4f7ed54f91fa4b582c52da78/57899414a8cdb0dd-31/s1280x1920/5960b6a3570ba5854330b8dae60b04d2e3ea61ad.jpg" data-big-photo-height="742" data-big-photo-width="1280"><img class="post_media_photo image" src="https://64.media.tumblr.com/939491cd4f7ed54f91fa4b582c52da78/57899414a8cdb0dd-31/s1280x1920/5960b6a3570ba5854330b8dae60b04d2e3ea61ad.jpg" srcset="https://64.media.tumblr.com/939491cd4f7ed54f91fa4b582c52da78/57899414a8cdb0dd-31/s75x75_c1/0eebaf3f42cf0b3a0b3c161220214ca4e1c1b993.jpg 75w, https://64.media.tumblr.com/939491cd4f7ed54f91fa4b582c52da78/57899414a8cdb0dd-31/s100x200/be43ad96ed17bda347ad9ea8d2ad360f9ec43b00.jpg 100w, https://64.media.tumblr.com/939491cd4f7ed54f91fa4b582c52da78/57899414a8cdb0dd-31/s250x400/70fd8b565c441b301c43bb6734fb54309ec28a34.jpg 250w, https://64.media.tumblr.com/939491cd4f7ed54f91fa4b582c52da78/57899414a8cdb0dd-31/s400x600/2bf58d7f48813ddaa9048848946a1c4955c00c26.jpg 400w, https://64.media.tumblr.com/939491cd4f7ed54f91fa4b582c52da78/57899414a8cdb0dd-31/s500x750/b8ea495c45f5899617bf27829cff257bf981a4cb.jpg 500w, https://64.media.tumblr.com/939491cd4f7ed54f91fa4b582c52da78/57899414a8cdb0dd-31/s540x810/c685b601f8eba273754936651ba86ffaffcc5dfb.jpg 540w, https://64.media.tumblr.com/939491cd4f7ed54f91fa4b582c52da78/57899414a8cdb0dd-31/s640x960/dc2a77e8345cfab05e4764c0ee3ba32e2a9ff528.jpg 640w, https://64.media.tumblr.com/939491cd4f7ed54f91fa4b582c52da78/57899414a8cdb0dd-31/s1280x1920/5960b6a3570ba5854330b8dae60b04d2e3ea61ad.jpg 1280w" sizes="(max-width: 1280px) 100vw, 1280px" alt="image"></a></figure></div></div><p>As always, stay tuned to the <a class="tumblelog" href="https://tmblr.co/MYXvAUPIj9KzlTb7SqaHO0A">@changes</a> blog to see if any of these hacks make it on Tumblr for real!</p></div> </div> <section class="inline-meta post-extra"> </section> <section class="inline-meta post-extra has-tags"> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20engineering">tumblr engineering</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20hack%20day">tumblr hack day</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20hack%20week">tumblr hack week</a> </section> </section> <section class="panel"> <footer class="post-footer"> <section class="panel"> <section class="inline-meta date-notes"> <div class="date-note-wrapper"> <span> <a href="https://engineering.tumblr.com/post/697281930624991232/tumblr-hack-week-september-2022-edition#notes" class="meta-item post-notes">1,912 notes</a> </span> <a href="https://engineering.tumblr.com/post/697281930624991232/tumblr-hack-week-september-2022-edition" title="2 years ago" class="meta-item post-date">Oct 5th, 2022</a><time class="dt-published" datetime="2022-10-05 10:24:28"></time> </div> </section> <section class="post-controls"> <div class="controls-wrapper"> <div class="control share-control"> <nav class="pop"> <a href="#" class="share selector"></a> <div class="pop-menu share-menu south" id="share_697281930624991232"> <ul> <li class="open-in-app"><a href="#" class="share-item open-in-app" data-post="697281930624991232">Open in app</a></li> <li><a href="https://facebook.com/sharer.php?u=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F697281930624991232%2Ftumblr-hack-week-september-2022-edition&t=Tumblr%20Hack%20Week%2C%20September%202022%20Edition" class="share-item facebook" target="_blank">Facebook</a></li> <li><a href="https://twitter.com/intent/tweet?text=Tumblr%20Hack%20Week%2C%20September%202022%20Edition%20It%20was%20Hack%20Week%20%28more%20than%20just%20a%20day%21%29%20once%20again%20at%20Tumblr%21%20A%20couple%20of%20times%20per%20year%20we%20slow%20down%20our%20normal%20work%20and%20spend%20a%20week%20working%20on%20whatever%20we%20want%20and%20see%20how%20far%20we%20can%20get%20with%20our...%20https%3A%2F%2Ftmblr.co%2FZI3nWxcjFZYtCu00" class="share-item twitter" target="_blank">Tweet</a></li> <li><a href="https://reddit.com/submit?url=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F697281930624991232%2Ftumblr-hack-week-september-2022-edition" class="share-item reddit" target="_blank">Reddit</a></li> <li><a href="mailto:?subject=A%20post%20from%20Tumblr%20Engineering&body=Tumblr%20Hack%20Week%2C%20September%202022%20Edition%20It%20was%20Hack%20Week%20%28more%20than%20just%20a%20day%21%29%20once%20again%20at%20Tumblr%21%20A%20couple%20of%20times%20per%20year%20we%20slow%20down%20our%20normal...%20https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F697281930624991232%2Ftumblr-hack-week-september-2022-edition" class="share-item mail">Mail</a></li> <li><a href="https://engineering.tumblr.com/post/697281930624991232/embed" class="share-item permalink">Embed</a></li> <li><a href="https://engineering.tumblr.com/post/697281930624991232/tumblr-hack-week-september-2022-edition" class="share-item permalink">Permalink <i class="arrow"></i></a></li> </ul> </div> </nav> </div> <div class="control reblog-control"><a href="https://www.tumblr.com/reblog/engineering/697281930624991232/jndEElGn" class="reblog_button"style="display: block;width:24px;height:24px;"><svg width="100%" height="100%" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000"><path d="M5.01092527,5.99908429 L16.0088498,5.99908429 L16.136,9.508 L20.836,4.752 L16.136,0.083 L16.1360004,3.01110845 L2.09985349,3.01110845 C1.50585349,3.01110845 0.979248041,3.44726568 0.979248041,4.45007306 L0.979248041,10.9999998 L3.98376463,8.30993634 L3.98376463,6.89801007 C3.98376463,6.20867902 4.71892527,5.99908429 5.01092527,5.99908429 Z"></path><path d="M17.1420002,13.2800293 C17.1420002,13.5720293 17.022957,14.0490723 16.730957,14.0490723 L4.92919922,14.0490723 L4.92919922,11 L0.5,15.806 L4.92919922,20.5103758 L5.00469971,16.9990234 L18.9700928,16.9990234 C19.5640928,16.9990234 19.9453125,16.4010001 19.9453125,15.8060001 L19.9453125,9.5324707 L17.142,12.203"></path></svg></a></div> <div class="control like-control"><div class="like_button" data-post-id="697281930624991232" data-blog-name="engineering" id="like_button_697281930624991232"><iframe id="like_iframe_697281930624991232" src="https://assets.tumblr.com/assets/html/like_iframe.html?_v=c96f30edcf75919c3976e1403422560b#name=engineering&post_id=697281930624991232&color=black&rk=jndEElGn&slug=tumblr-hack-week-september-2022-edition" scrolling="no" width="24" height="24" frameborder="0" class="like_toggle" allowTransparency="true" name="like_iframe_697281930624991232"></iframe></div></div> </div> </section> </section> <section class="inline-meta date-notes"> <span class="notes-pop-container"> </span> </section> </footer> </section> </div> </article> <article class="text not-page post-690135035533230080 " data-post-id="690135035533230080" > <div class="post-wrapper clearfix h-entry"> <header class="post-header "> </header> <section class="post"> <div class="post-content"> <h2 class="title p-name"><a href="https://engineering.tumblr.com/post/690135035533230080/making-gifs-load-faster" class="u-url">Making GIFs load faster</a></h2> <div class="body-text e-content"><p>AKA <i>why are some of my GIFs being turned into videos?</i></p><h2>Overview</h2><ul><li>We’re experimenting with serving GIFs as <a href="https://en.wikipedia.org/wiki/Advanced_Video_Coding">MP4 videos</a> instead of GIFV (which typically serves animated <a href="https://en.wikipedia.org/wiki/WebP">WebP</a>) on the web to a small subset of folks on Tumblr, not everyone. This does not affect anyone using the mobile apps.</li><li>The performance improvements from using MP4s in this way are huge, and will make Tumblr load animated images faster and use less data in almost every circumstance, with no discernible loss in quality.</li><li>This conversion only applies to specific types of GIFs, such as ones <i>without</i> transparency in the first frame. We’ve tested this conversion on thousands of GIFs, and we’re still tuning it to be virtually indistinguishable from the original GIF.</li><li>XKit’s “Vanilla Videos” extension was causing a bug with this experiment, but a recent new XKit version release has fixed that issue.</li><li>If you’re served an MP4 instead of a GIF, clicking on the image will still open it in a lightbox, which you can download as GIFV or GIF, depending on what’s served.</li><li>Since this is still just an experiment, there is no way to opt-out yet; adding some kind of opt-out (on the creator and/or consumer side) is a possibility though.</li><li>If you’re served a GIF as MP4 and it looks wrong, please <a href="https://www.tumblr.com/support">contact Support</a> with a link to the image and what looks wrong about the conversion. We need examples to help us improve the experience. Also, please do not send duplicate support requests.</li></ul><p class="read_more_container"><a href="https://engineering.tumblr.com/post/690135035533230080/making-gifs-load-faster" class="read_more">Keep reading</a></p></div> </div> <section class="inline-meta post-extra"> </section> <section class="inline-meta post-extra has-tags"> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20update">tumblr update</a> </section> </section> <section class="panel"> <footer class="post-footer"> <section class="panel"> <section class="inline-meta date-notes"> <div class="date-note-wrapper"> <span> <a href="https://engineering.tumblr.com/post/690135035533230080/making-gifs-load-faster#notes" class="meta-item post-notes">2,484 notes</a> </span> <a href="https://engineering.tumblr.com/post/690135035533230080/making-gifs-load-faster" title="2 years ago" class="meta-item post-date">Jul 18th, 2022</a><time class="dt-published" datetime="2022-07-18 13:07:38"></time> </div> </section> <section class="post-controls"> <div class="controls-wrapper"> <div class="control share-control"> <nav class="pop"> <a href="#" class="share selector"></a> <div class="pop-menu share-menu south" id="share_690135035533230080"> <ul> <li class="open-in-app"><a href="#" class="share-item open-in-app" data-post="690135035533230080">Open in app</a></li> <li><a href="https://facebook.com/sharer.php?u=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F690135035533230080%2Fmaking-gifs-load-faster&t=Making%20GIFs%20load%20faster" class="share-item facebook" target="_blank">Facebook</a></li> <li><a href="https://twitter.com/intent/tweet?text=%20%20https%3A%2F%2Ftmblr.co%2FZI3nWxcJsYY80e00" class="share-item twitter" target="_blank">Tweet</a></li> <li><a href="https://reddit.com/submit?url=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F690135035533230080%2Fmaking-gifs-load-faster" class="share-item reddit" target="_blank">Reddit</a></li> <li><a href="mailto:?subject=A%20post%20from%20Tumblr%20Engineering&body=%20%20https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F690135035533230080%2Fmaking-gifs-load-faster" class="share-item mail">Mail</a></li> <li><a href="https://engineering.tumblr.com/post/690135035533230080/embed" class="share-item permalink">Embed</a></li> <li><a href="https://engineering.tumblr.com/post/690135035533230080/making-gifs-load-faster" class="share-item permalink">Permalink <i class="arrow"></i></a></li> </ul> </div> </nav> </div> <div class="control reblog-control"><a href="https://www.tumblr.com/reblog/engineering/690135035533230080/5mOZytmJ" class="reblog_button"style="display: block;width:24px;height:24px;"><svg width="100%" height="100%" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000"><path d="M5.01092527,5.99908429 L16.0088498,5.99908429 L16.136,9.508 L20.836,4.752 L16.136,0.083 L16.1360004,3.01110845 L2.09985349,3.01110845 C1.50585349,3.01110845 0.979248041,3.44726568 0.979248041,4.45007306 L0.979248041,10.9999998 L3.98376463,8.30993634 L3.98376463,6.89801007 C3.98376463,6.20867902 4.71892527,5.99908429 5.01092527,5.99908429 Z"></path><path d="M17.1420002,13.2800293 C17.1420002,13.5720293 17.022957,14.0490723 16.730957,14.0490723 L4.92919922,14.0490723 L4.92919922,11 L0.5,15.806 L4.92919922,20.5103758 L5.00469971,16.9990234 L18.9700928,16.9990234 C19.5640928,16.9990234 19.9453125,16.4010001 19.9453125,15.8060001 L19.9453125,9.5324707 L17.142,12.203"></path></svg></a></div> <div class="control like-control"><div class="like_button" data-post-id="690135035533230080" data-blog-name="engineering" id="like_button_690135035533230080"><iframe id="like_iframe_690135035533230080" src="https://assets.tumblr.com/assets/html/like_iframe.html?_v=c96f30edcf75919c3976e1403422560b#name=engineering&post_id=690135035533230080&color=black&rk=5mOZytmJ&slug=making-gifs-load-faster" scrolling="no" width="24" height="24" frameborder="0" class="like_toggle" allowTransparency="true" name="like_iframe_690135035533230080"></iframe></div></div> </div> </section> </section> <section class="inline-meta date-notes"> <span class="notes-pop-container"> </span> </section> </footer> </section> </div> </article> <article class="text not-page post-678904863863783424 " data-post-id="678904863863783424" > <div class="post-wrapper clearfix h-entry"> <header class="post-header "> </header> <section class="post"> <div class="post-content"> <h2 class="title p-name"><a href="https://engineering.tumblr.com/post/678904863863783424/tumblr-hack-week-march-2022-edition" class="u-url">Tumblr Hack Week, March 2022 Edition</a></h2> <div class="body-text e-content"><p>It was Hack <i>Week</i> (more than just a day!) once again at Tumblr! A couple of times per year we grind everything to a halt and spend a week working on whatever we want and see how far we can get with our hacks. <a href="https://href.li/?https://engineering.tumblr.com/post/671123396649730048/tumblr-hack-day-december-2021-edition">Since last time</a>, we’ve launched the ability to have a <a href="https://href.li/?https://tumblr.zendesk.com/hc/articles/4421081082775">Discord => Tumblr integration</a>, we’re close to launching Twitch embed support, and custom logos are now possible in the mobile apps! And <a href="https://href.li/?https://engineering.tumblr.com/post/654257188393697280/tumblr-hack-day-june-2021-edition">from a previous Hack Day</a>, we’ve launched “Timestamps Everywhere” on web, and we’re working on rolling it out to the mobile apps very soon!</p><p>Here are some of the projects that got made for this last Hack Week. Some of these things you may also end up seeing on the site…</p><h2>Interacting as a Sideblog/Secondary blog</h2><p><a class="tumblelog" href="https://tmblr.co/MyfyLHHzsbnFdgVinrj2NTA">@designpatternpirate put</a> together a proof of concept for switching to a sideblog/secondary blog when liking or replying to posts. Using this hack, you’d be able to switch which of your blogs you’re “acting as” when hitting the like button or when replying to a post, to start. You’d even have separate Likes pages for each blog!</p><h2>“One Year Ago” Dashboard Feed</h2><p>André hacked together a feed which shows a portal backwards in time, to what the blogs you’re following were posting a year ago today:</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/9303e1ab4ff03be446e0c8a456abce2e/f066dc8b9245d671-b7/s1280x1920/10a32d1f239ea90a93de91118acb49961f9830b6.png" data-big-photo-height="904" data-big-photo-width="1348"><img class="post_media_photo image" src="https://64.media.tumblr.com/9303e1ab4ff03be446e0c8a456abce2e/f066dc8b9245d671-b7/s1280x1920/10a32d1f239ea90a93de91118acb49961f9830b6.png" srcset="https://64.media.tumblr.com/9303e1ab4ff03be446e0c8a456abce2e/f066dc8b9245d671-b7/s75x75_c1/9517f7f5bae19a70215c7b865f2b1e72ec290d8b.png 75w, https://64.media.tumblr.com/9303e1ab4ff03be446e0c8a456abce2e/f066dc8b9245d671-b7/s100x200/ae0ecd30ab03d91aef4a404beb0923000a4e82bf.png 100w, https://64.media.tumblr.com/9303e1ab4ff03be446e0c8a456abce2e/f066dc8b9245d671-b7/s250x400/ade98890c9409927b6993138fa45f50d1cb585f0.png 250w, https://64.media.tumblr.com/9303e1ab4ff03be446e0c8a456abce2e/f066dc8b9245d671-b7/s400x600/0f77f385343e73b2def3812af1c9e29f6610d146.png 400w, https://64.media.tumblr.com/9303e1ab4ff03be446e0c8a456abce2e/f066dc8b9245d671-b7/s500x750/9eeb6b689f273b50106c6ace9e2b894a17404bb2.png 500w, https://64.media.tumblr.com/9303e1ab4ff03be446e0c8a456abce2e/f066dc8b9245d671-b7/s540x810/c7c9d7400da050ddc3ab2d677ec497cee331247f.png 540w, https://64.media.tumblr.com/9303e1ab4ff03be446e0c8a456abce2e/f066dc8b9245d671-b7/s640x960/b22bc2ee33dc6fab08797fb72b1ac379159c1a8a.png 640w, https://64.media.tumblr.com/9303e1ab4ff03be446e0c8a456abce2e/f066dc8b9245d671-b7/s1280x1920/10a32d1f239ea90a93de91118acb49961f9830b6.png 1280w, https://64.media.tumblr.com/9303e1ab4ff03be446e0c8a456abce2e/f066dc8b9245d671-b7/s2048x3072/24358ae93c94ec209453202e35121f518c1af5f2.png 1348w" sizes="(max-width: 1280px) 100vw, 1280px" alt="image"></a></figure></div></div><h2>Moving Android notification settings</h2><p>On Android, Omar moved all of our notification settings out of the Tumblr app and into the Android OS level notifications settings view, like other apps do:</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/fb0d55f0a41eef005c9fcd6703c17077/f066dc8b9245d671-6e/s1280x1920/656f57cb7bdbb21f4a1f0468427040ba991e9336.png" data-big-photo-height="1012" data-big-photo-width="1502"><img class="post_media_photo image" src="https://64.media.tumblr.com/fb0d55f0a41eef005c9fcd6703c17077/f066dc8b9245d671-6e/s1280x1920/656f57cb7bdbb21f4a1f0468427040ba991e9336.png" srcset="https://64.media.tumblr.com/fb0d55f0a41eef005c9fcd6703c17077/f066dc8b9245d671-6e/s75x75_c1/ab37f69624f4545f890b5eca3b9b996f7dbd0175.png 75w, https://64.media.tumblr.com/fb0d55f0a41eef005c9fcd6703c17077/f066dc8b9245d671-6e/s100x200/e986e82e79b6bea0d1833ff43e7711bb06ce6581.png 100w, https://64.media.tumblr.com/fb0d55f0a41eef005c9fcd6703c17077/f066dc8b9245d671-6e/s250x400/fae4ff70b907425d53d55fb231b1bbc1670a800a.png 250w, https://64.media.tumblr.com/fb0d55f0a41eef005c9fcd6703c17077/f066dc8b9245d671-6e/s400x600/3299a2121e3761e7d72f4f91f06f3fc7da62cb58.png 400w, https://64.media.tumblr.com/fb0d55f0a41eef005c9fcd6703c17077/f066dc8b9245d671-6e/s500x750/3cde07cbbd347580930e22114492eb2fd3a0cbfe.png 500w, https://64.media.tumblr.com/fb0d55f0a41eef005c9fcd6703c17077/f066dc8b9245d671-6e/s540x810/aa47a520b684b551d8a5dec58847a074e60f3d96.png 540w, https://64.media.tumblr.com/fb0d55f0a41eef005c9fcd6703c17077/f066dc8b9245d671-6e/s640x960/02dad6ccd55318904b187b11cccf4417e2921234.png 640w, https://64.media.tumblr.com/fb0d55f0a41eef005c9fcd6703c17077/f066dc8b9245d671-6e/s1280x1920/656f57cb7bdbb21f4a1f0468427040ba991e9336.png 1280w, https://64.media.tumblr.com/fb0d55f0a41eef005c9fcd6703c17077/f066dc8b9245d671-6e/s2048x3072/3973e0692dca957b86c9ee6074b06af17b9ba27d.png 1502w" sizes="(max-width: 1280px) 100vw, 1280px" alt="image"></a></figure></div></div><h2>“Time for crab!” 🦀</h2><p><a class="tumblelog" href="https://tmblr.co/MUk2SVqutOi6RE2KuLF0p3w">@superchlorine</a> hacked together a delightful button for the dashboard that summons crabs which scuttle across the page, and even comment on what they’re traipsing over:</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/a63e74d87dfdad3a20afbb1658440249/f066dc8b9245d671-91/s1280x1920/c171db0d58978a991bb4e50d1dad657d153edd6c.png" data-big-photo-height="615" data-big-photo-width="813"><img class="post_media_photo image" src="https://64.media.tumblr.com/a63e74d87dfdad3a20afbb1658440249/f066dc8b9245d671-91/s1280x1920/c171db0d58978a991bb4e50d1dad657d153edd6c.png" srcset="https://64.media.tumblr.com/a63e74d87dfdad3a20afbb1658440249/f066dc8b9245d671-91/s75x75_c1/3b595b019a64b19342949ab6a206c7e8035001b6.png 75w, https://64.media.tumblr.com/a63e74d87dfdad3a20afbb1658440249/f066dc8b9245d671-91/s100x200/8b12c66f9fbdf64d3318e710bb3a9727c4b022ec.png 100w, https://64.media.tumblr.com/a63e74d87dfdad3a20afbb1658440249/f066dc8b9245d671-91/s250x400/296776fa027a1f7d714d61aeba23625cbeca9d0a.png 250w, https://64.media.tumblr.com/a63e74d87dfdad3a20afbb1658440249/f066dc8b9245d671-91/s400x600/17d72ba76c5b63a7ead3844d549cbee857ac7529.png 400w, https://64.media.tumblr.com/a63e74d87dfdad3a20afbb1658440249/f066dc8b9245d671-91/s500x750/d83657e74312ead590e46f5e214a8ce6383a522c.png 500w, https://64.media.tumblr.com/a63e74d87dfdad3a20afbb1658440249/f066dc8b9245d671-91/s540x810/0c5ca7fd6f59f7467f5a78e3fec0e003b53c2857.png 540w, https://64.media.tumblr.com/a63e74d87dfdad3a20afbb1658440249/f066dc8b9245d671-91/s640x960/2df10b2aa08b1b50703dbab22d7cb5213ac34324.png 640w, https://64.media.tumblr.com/a63e74d87dfdad3a20afbb1658440249/f066dc8b9245d671-91/s1280x1920/c171db0d58978a991bb4e50d1dad657d153edd6c.png 813w" sizes="(max-width: 813px) 100vw, 813px" alt="image"></a></figure></div></div><p>As always, stay tuned to the <a class="tumblelog" href="https://tmblr.co/MYXvAUPIj9KzlTb7SqaHO0A">@changes</a> blog to see if any of these hacks make it on Tumblr for real!</p></div> </div> <section class="inline-meta post-extra"> </section> <section class="inline-meta post-extra has-tags"> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20engineering">tumblr engineering</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20hack%20day">tumblr hack day</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20hack%20week">tumblr hack week</a> </section> </section> <section class="panel"> <footer class="post-footer"> <section class="panel"> <section class="inline-meta date-notes"> <div class="date-note-wrapper"> <span> <a href="https://engineering.tumblr.com/post/678904863863783424/tumblr-hack-week-march-2022-edition#notes" class="meta-item post-notes">1,097 notes</a> </span> <a href="https://engineering.tumblr.com/post/678904863863783424/tumblr-hack-week-march-2022-edition" title="3 years ago" class="meta-item post-date">Mar 16th, 2022</a><time class="dt-published" datetime="2022-03-16 14:08:51"></time> </div> </section> <section class="post-controls"> <div class="controls-wrapper"> <div class="control share-control"> <nav class="pop"> <a href="#" class="share selector"></a> <div class="pop-menu share-menu south" id="share_678904863863783424"> <ul> <li class="open-in-app"><a href="#" class="share-item open-in-app" data-post="678904863863783424">Open in app</a></li> <li><a href="https://facebook.com/sharer.php?u=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F678904863863783424%2Ftumblr-hack-week-march-2022-edition&t=Tumblr%20Hack%20Week%2C%20March%202022%20Edition" class="share-item facebook" target="_blank">Facebook</a></li> <li><a href="https://twitter.com/intent/tweet?text=Tumblr%20Hack%20Week%2C%20March%202022%20Edition%20It%20was%20Hack%20Week%20%28more%20than%20just%20a%20day%21%29%20once%20again%20at%20Tumblr%21%20A%20couple%20of%20times%20per%20year%20we%20grind%20everything%20to%20a%20halt%20and%20spend%20a%20week%20working%20on%20whatever%20we%20want%20and%20see%20how%20far%20we%20can%20get%20with%20our...%20https%3A%2F%2Ftmblr.co%2FZI3nWxbhz61kui00" class="share-item twitter" target="_blank">Tweet</a></li> <li><a href="https://reddit.com/submit?url=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F678904863863783424%2Ftumblr-hack-week-march-2022-edition" class="share-item reddit" target="_blank">Reddit</a></li> <li><a href="mailto:?subject=A%20post%20from%20Tumblr%20Engineering&body=Tumblr%20Hack%20Week%2C%20March%202022%20Edition%20It%20was%20Hack%20Week%20%28more%20than%20just%20a%20day%21%29%20once%20again%20at%20Tumblr%21%20A%20couple%20of%20times%20per%20year%20we%20grind%20everything%20to%20a%20halt%20and...%20https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F678904863863783424%2Ftumblr-hack-week-march-2022-edition" class="share-item mail">Mail</a></li> <li><a href="https://engineering.tumblr.com/post/678904863863783424/embed" class="share-item permalink">Embed</a></li> <li><a href="https://engineering.tumblr.com/post/678904863863783424/tumblr-hack-week-march-2022-edition" class="share-item permalink">Permalink <i class="arrow"></i></a></li> </ul> </div> </nav> </div> <div class="control reblog-control"><a href="https://www.tumblr.com/reblog/engineering/678904863863783424/3Ylt6KVJ" class="reblog_button"style="display: block;width:24px;height:24px;"><svg width="100%" height="100%" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000"><path d="M5.01092527,5.99908429 L16.0088498,5.99908429 L16.136,9.508 L20.836,4.752 L16.136,0.083 L16.1360004,3.01110845 L2.09985349,3.01110845 C1.50585349,3.01110845 0.979248041,3.44726568 0.979248041,4.45007306 L0.979248041,10.9999998 L3.98376463,8.30993634 L3.98376463,6.89801007 C3.98376463,6.20867902 4.71892527,5.99908429 5.01092527,5.99908429 Z"></path><path d="M17.1420002,13.2800293 C17.1420002,13.5720293 17.022957,14.0490723 16.730957,14.0490723 L4.92919922,14.0490723 L4.92919922,11 L0.5,15.806 L4.92919922,20.5103758 L5.00469971,16.9990234 L18.9700928,16.9990234 C19.5640928,16.9990234 19.9453125,16.4010001 19.9453125,15.8060001 L19.9453125,9.5324707 L17.142,12.203"></path></svg></a></div> <div class="control like-control"><div class="like_button" data-post-id="678904863863783424" data-blog-name="engineering" id="like_button_678904863863783424"><iframe id="like_iframe_678904863863783424" src="https://assets.tumblr.com/assets/html/like_iframe.html?_v=c96f30edcf75919c3976e1403422560b#name=engineering&post_id=678904863863783424&color=black&rk=3Ylt6KVJ&slug=tumblr-hack-week-march-2022-edition" scrolling="no" width="24" height="24" frameborder="0" class="like_toggle" allowTransparency="true" name="like_iframe_678904863863783424"></iframe></div></div> </div> </section> </section> <section class="inline-meta date-notes"> <span class="notes-pop-container"> </span> </section> </footer> </section> </div> </article> <article class="text not-page post-671123396649730048 " data-post-id="671123396649730048" > <div class="post-wrapper clearfix h-entry"> <header class="post-header "> </header> <section class="post"> <div class="post-content"> <h2 class="title p-name"><a href="https://engineering.tumblr.com/post/671123396649730048/tumblr-hack-day-december-2021-edition" class="u-url">Tumblr Hack Day, December 2021 Edition</a></h2> <div class="body-text e-content"><p>It was Hack Day once again at Tumblr! A couple of times per year we grind everything to a halt and spend 24 hours working on whatever we want and see how far we can get with our hacks. Here are some of the projects that got made for Hack Day! Some of these things you may end up seeing on the site…</p><h2>Twitch Embeds</h2><p>Wesley hacked together the ability to post Twitch streams to Tumblr! These can be live streams or clips.</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/c77fd55135b26f5e2ad34634806fc59e/87a9b0342f5a4afe-bd/s1280x1920/7d2ff190e341cc983185709fd9c2cf0c9ca8b260.png" data-big-photo-height="" data-big-photo-width=""><img class="post_media_photo image" src="https://64.media.tumblr.com/c77fd55135b26f5e2ad34634806fc59e/87a9b0342f5a4afe-bd/s500x750/da83ad4efe1c5f1da3379952dc1e72efae5008be.png" srcset="https://64.media.tumblr.com/c77fd55135b26f5e2ad34634806fc59e/87a9b0342f5a4afe-bd/s75x75_c1/770432beca34721a0cbc6234b6140b42b3c919c1.png 75w, https://64.media.tumblr.com/c77fd55135b26f5e2ad34634806fc59e/87a9b0342f5a4afe-bd/s100x200/d3f0850bc8693eb1c48fbc3f8befe21b100ebae9.png 100w, https://64.media.tumblr.com/c77fd55135b26f5e2ad34634806fc59e/87a9b0342f5a4afe-bd/s250x400/406ee773d6e0781ef8c61ad56492e6a03d370e61.png 250w, https://64.media.tumblr.com/c77fd55135b26f5e2ad34634806fc59e/87a9b0342f5a4afe-bd/s400x600/1be1de499e02fce5271e1f579958232a88bc2f1a.png 400w, https://64.media.tumblr.com/c77fd55135b26f5e2ad34634806fc59e/87a9b0342f5a4afe-bd/s500x750/da83ad4efe1c5f1da3379952dc1e72efae5008be.png 437w" sizes="(max-width: 437px) 100vw, 437px" alt="image"></a></figure></div></div><h2>Tumblr to Discord</h2><p><a class="tumblelog" href="https://tmblr.co/MJwcljpp-8llRTtB-1dDdsg">@cyle</a> put together a very simple webhook integration between Tumblr and Discord so you can send events about your blog to a Discord server:</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/f88afeed2119985edb6fd03d02967e0c/87a9b0342f5a4afe-84/s1280x1920/2bac46114c2e43d23334edd7edb06c0c95790071.png" data-big-photo-height="364" data-big-photo-width="518"><img class="post_media_photo image" src="https://64.media.tumblr.com/f88afeed2119985edb6fd03d02967e0c/87a9b0342f5a4afe-84/s540x810/6fd7fd0792c6ac161b4f54f8ea6e19daa4719e49.png" srcset="https://64.media.tumblr.com/f88afeed2119985edb6fd03d02967e0c/87a9b0342f5a4afe-84/s75x75_c1/1f7a340c84de836daba0b70030a808db91def3c8.png 75w, https://64.media.tumblr.com/f88afeed2119985edb6fd03d02967e0c/87a9b0342f5a4afe-84/s100x200/dd64817c7200b62292f392c4755e286ad1a064da.png 100w, https://64.media.tumblr.com/f88afeed2119985edb6fd03d02967e0c/87a9b0342f5a4afe-84/s250x400/7728df419f21e2e66646e7134fdf4128d513d9b4.png 250w, https://64.media.tumblr.com/f88afeed2119985edb6fd03d02967e0c/87a9b0342f5a4afe-84/s400x600/001d093b6c9c4a7db4eee122f3fbf01d4972a41c.png 400w, https://64.media.tumblr.com/f88afeed2119985edb6fd03d02967e0c/87a9b0342f5a4afe-84/s500x750/9fb42d147d6d62c2b0076736d3922e282e24129f.png 500w, https://64.media.tumblr.com/f88afeed2119985edb6fd03d02967e0c/87a9b0342f5a4afe-84/s540x810/6fd7fd0792c6ac161b4f54f8ea6e19daa4719e49.png 518w" sizes="(max-width: 518px) 100vw, 518px" alt="image"></a></figure></div></div><h2>Custom Tumblr logos on mobile</h2><p><a class="tumblelog" href="https://tmblr.co/M6rgOspu16BCQHgWf--NMlg">@mlu</a>, <a class="tumblelog" href="https://tmblr.co/MSG50fnWHgwhtlRGz03_64g">@dakotairene</a>, and friends hacked together the ability for us to put custom Tumblr logos in the mobile apps’ dashboard tab bar, like we do on the web!</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/2b71a9ae7c225cabb60f0d11d0a521e0/87a9b0342f5a4afe-75/s1280x1920/4baa511e6502c2c609bdccb629e2c6cc7ed30274.png" data-big-photo-height="" data-big-photo-width=""><img class="post_media_photo image" src="https://64.media.tumblr.com/2b71a9ae7c225cabb60f0d11d0a521e0/87a9b0342f5a4afe-75/s500x750/ef2f03e88bea666cea2dd508d29c3b37780e2906.png" srcset="https://64.media.tumblr.com/2b71a9ae7c225cabb60f0d11d0a521e0/87a9b0342f5a4afe-75/s75x75_c1/7efb4d467f715d6786f961f5efcd77272ee1241c.png 75w, https://64.media.tumblr.com/2b71a9ae7c225cabb60f0d11d0a521e0/87a9b0342f5a4afe-75/s100x200/1dba51b76b4c78986572dafe60c3003edeac2fd4.png 100w, https://64.media.tumblr.com/2b71a9ae7c225cabb60f0d11d0a521e0/87a9b0342f5a4afe-75/s250x400/37d60652d7e249f416c2bc1218b98a1ec13b52ad.png 250w, https://64.media.tumblr.com/2b71a9ae7c225cabb60f0d11d0a521e0/87a9b0342f5a4afe-75/s400x600/70164e98446e7cc6be6d89053780aa5a696d9203.png 400w, https://64.media.tumblr.com/2b71a9ae7c225cabb60f0d11d0a521e0/87a9b0342f5a4afe-75/s500x750/ef2f03e88bea666cea2dd508d29c3b37780e2906.png 469w" sizes="(max-width: 469px) 100vw, 469px" alt="image"></a></figure></div></div><h2>Tumblr Time Machine</h2><p>Lucila constructed an elaborate Tumblr Time Machine, so you can filter search results to a specific year:</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/6af9c767b9721166e74ca2e653401567/87a9b0342f5a4afe-88/s1280x1920/a493bb1619d311e4d837454e02128d14d2b1a3ff.png" data-big-photo-height="379" data-big-photo-width="749"><img class="post_media_photo image" src="https://64.media.tumblr.com/6af9c767b9721166e74ca2e653401567/87a9b0342f5a4afe-88/s1280x1920/a493bb1619d311e4d837454e02128d14d2b1a3ff.png" srcset="https://64.media.tumblr.com/6af9c767b9721166e74ca2e653401567/87a9b0342f5a4afe-88/s75x75_c1/e4a9506bbbab66b03fa1dde53a814a36841f6321.png 75w, https://64.media.tumblr.com/6af9c767b9721166e74ca2e653401567/87a9b0342f5a4afe-88/s100x200/7165120272aac0d168c2b8abafade425fbf14b48.png 100w, https://64.media.tumblr.com/6af9c767b9721166e74ca2e653401567/87a9b0342f5a4afe-88/s250x400/115f34ca4ba1697f3ccbf316fbd848209ff21d30.png 250w, https://64.media.tumblr.com/6af9c767b9721166e74ca2e653401567/87a9b0342f5a4afe-88/s400x600/33f285f45ee788ebd26aa8da572c555c7cc53b30.png 400w, https://64.media.tumblr.com/6af9c767b9721166e74ca2e653401567/87a9b0342f5a4afe-88/s500x750/f4418ac252ffc86b73bcb7c289c0f3de9eeceaa8.png 500w, https://64.media.tumblr.com/6af9c767b9721166e74ca2e653401567/87a9b0342f5a4afe-88/s540x810/53a0040e7c6abe79c41e191ab07a21e3e96d240f.png 540w, https://64.media.tumblr.com/6af9c767b9721166e74ca2e653401567/87a9b0342f5a4afe-88/s640x960/5acd443ab47c8f55ee8ddfa4dd255ef5bb512b5b.png 640w, https://64.media.tumblr.com/6af9c767b9721166e74ca2e653401567/87a9b0342f5a4afe-88/s1280x1920/a493bb1619d311e4d837454e02128d14d2b1a3ff.png 749w" sizes="(max-width: 749px) 100vw, 749px" alt="image"></a></figure></div></div><p>Stay tuned to the <a class="tumblelog" href="https://tmblr.co/MYXvAUPIj9KzlTb7SqaHO0A">@changes</a> blog to see if any of these hacks make it on Tumblr for real!</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/eb90e0a49302bd520c8e276b73935923/87a9b0342f5a4afe-ee/s1280x1920/13c725c1d567297532f6fa0b3fa89c7b8ba792ed.gifv" data-big-photo-height="720" data-big-photo-width="720"><img class="post_media_photo image" src="https://64.media.tumblr.com/eb90e0a49302bd520c8e276b73935923/87a9b0342f5a4afe-ee/s1280x1920/13c725c1d567297532f6fa0b3fa89c7b8ba792ed.gifv" srcset="https://64.media.tumblr.com/eb90e0a49302bd520c8e276b73935923/87a9b0342f5a4afe-ee/s75x75_c1/3028752dc5a093206e2bdc0a4899c17ac5ca2e72.gifv 75w, https://64.media.tumblr.com/eb90e0a49302bd520c8e276b73935923/87a9b0342f5a4afe-ee/s100x200/0b671fe9614234f1daff17c94b6466e7f8cf9a6e.gifv 100w, https://64.media.tumblr.com/eb90e0a49302bd520c8e276b73935923/87a9b0342f5a4afe-ee/s250x400/6e36ef5a0dcfd147128819ee2bb4b089338c63bb.gifv 250w, https://64.media.tumblr.com/eb90e0a49302bd520c8e276b73935923/87a9b0342f5a4afe-ee/s400x600/3d9eeecfa5d07491b01ebf5b0bd154f751562026.gifv 400w, https://64.media.tumblr.com/eb90e0a49302bd520c8e276b73935923/87a9b0342f5a4afe-ee/s500x750/2fd58731e19cb7be351aa878d9b2d916d9795246.gifv 500w, https://64.media.tumblr.com/eb90e0a49302bd520c8e276b73935923/87a9b0342f5a4afe-ee/s540x810/2d8e9d3f0eace916d7145f492e0380e6c14bdb28.gifv 540w, https://64.media.tumblr.com/eb90e0a49302bd520c8e276b73935923/87a9b0342f5a4afe-ee/s640x960/2c2cb8445e385826ec4d3d9691aabbdebe0618c1.gifv 640w, https://64.media.tumblr.com/eb90e0a49302bd520c8e276b73935923/87a9b0342f5a4afe-ee/s1280x1920/13c725c1d567297532f6fa0b3fa89c7b8ba792ed.gifv 720w" sizes="(max-width: 720px) 100vw, 720px" alt="image"></a></figure></div></div><p>(GIF by <a class="tumblelog" href="https://tmblr.co/M1pArinfLiQR_nJOLfMzZgw">@jjjjjjjjjjohn</a> )</p></div> </div> <section class="inline-meta post-extra"> </section> <section class="inline-meta post-extra has-tags"> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20engineering">tumblr engineering</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20hack%20day">tumblr hack day</a> </section> </section> <section class="panel"> <footer class="post-footer"> <section class="panel"> <section class="inline-meta date-notes"> <div class="date-note-wrapper"> <span> <a href="https://engineering.tumblr.com/post/671123396649730048/tumblr-hack-day-december-2021-edition#notes" class="meta-item post-notes">2,158 notes</a> </span> <a href="https://engineering.tumblr.com/post/671123396649730048/tumblr-hack-day-december-2021-edition" title="3 years ago" class="meta-item post-date">Dec 20th, 2021</a><time class="dt-published" datetime="2021-12-20 15:45:46"></time> </div> </section> <section class="post-controls"> <div class="controls-wrapper"> <div class="control share-control"> <nav class="pop"> <a href="#" class="share selector"></a> <div class="pop-menu share-menu south" id="share_671123396649730048"> <ul> <li class="open-in-app"><a href="#" class="share-item open-in-app" data-post="671123396649730048">Open in app</a></li> <li><a href="https://facebook.com/sharer.php?u=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F671123396649730048%2Ftumblr-hack-day-december-2021-edition&t=Tumblr%20Hack%20Day%2C%20December%202021%20Edition" class="share-item facebook" target="_blank">Facebook</a></li> <li><a href="https://twitter.com/intent/tweet?text=Tumblr%20Hack%20Day%2C%20December%202021%20Edition%20It%20was%20Hack%20Day%20once%20again%20at%20Tumblr%21%20A%20couple%20of%20times%20per%20year%20we%20grind%20everything%20to%20a%20halt%20and%20spend%2024%20hours%20working%20on%20whatever%20we%20want%20and%20see%20how%20far%20we%20can%20get%20with%20our%20hacks.%20Here%20are%20some%20of...%20https%3A%2F%2Ftmblr.co%2FZI3nWxbGJonfmi00" class="share-item twitter" target="_blank">Tweet</a></li> <li><a href="https://reddit.com/submit?url=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F671123396649730048%2Ftumblr-hack-day-december-2021-edition" class="share-item reddit" target="_blank">Reddit</a></li> <li><a href="mailto:?subject=A%20post%20from%20Tumblr%20Engineering&body=Tumblr%20Hack%20Day%2C%20December%202021%20Edition%20It%20was%20Hack%20Day%20once%20again%20at%20Tumblr%21%20A%20couple%20of%20times%20per%20year%20we%20grind%20everything%20to%20a%20halt%20and%20spend%2024%20hours%20working...%20https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F671123396649730048%2Ftumblr-hack-day-december-2021-edition" class="share-item mail">Mail</a></li> <li><a href="https://engineering.tumblr.com/post/671123396649730048/embed" class="share-item permalink">Embed</a></li> <li><a href="https://engineering.tumblr.com/post/671123396649730048/tumblr-hack-day-december-2021-edition" class="share-item permalink">Permalink <i class="arrow"></i></a></li> </ul> </div> </nav> </div> <div class="control reblog-control"><a href="https://www.tumblr.com/reblog/engineering/671123396649730048/eFS0e6mT" class="reblog_button"style="display: block;width:24px;height:24px;"><svg width="100%" height="100%" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000"><path d="M5.01092527,5.99908429 L16.0088498,5.99908429 L16.136,9.508 L20.836,4.752 L16.136,0.083 L16.1360004,3.01110845 L2.09985349,3.01110845 C1.50585349,3.01110845 0.979248041,3.44726568 0.979248041,4.45007306 L0.979248041,10.9999998 L3.98376463,8.30993634 L3.98376463,6.89801007 C3.98376463,6.20867902 4.71892527,5.99908429 5.01092527,5.99908429 Z"></path><path d="M17.1420002,13.2800293 C17.1420002,13.5720293 17.022957,14.0490723 16.730957,14.0490723 L4.92919922,14.0490723 L4.92919922,11 L0.5,15.806 L4.92919922,20.5103758 L5.00469971,16.9990234 L18.9700928,16.9990234 C19.5640928,16.9990234 19.9453125,16.4010001 19.9453125,15.8060001 L19.9453125,9.5324707 L17.142,12.203"></path></svg></a></div> <div class="control like-control"><div class="like_button" data-post-id="671123396649730048" data-blog-name="engineering" id="like_button_671123396649730048"><iframe id="like_iframe_671123396649730048" src="https://assets.tumblr.com/assets/html/like_iframe.html?_v=c96f30edcf75919c3976e1403422560b#name=engineering&post_id=671123396649730048&color=black&rk=eFS0e6mT&slug=tumblr-hack-day-december-2021-edition" scrolling="no" width="24" height="24" frameborder="0" class="like_toggle" allowTransparency="true" name="like_iframe_671123396649730048"></iframe></div></div> </div> </section> </section> <section class="inline-meta date-notes"> <span class="notes-pop-container"> </span> </section> </footer> </section> </div> </article> <article class="text not-page post-666127838922014720 " data-post-id="666127838922014720" > <div class="post-wrapper clearfix h-entry"> <header class="post-header "> </header> <section class="post"> <div class="post-content"> <h2 class="title p-name"><a href="https://engineering.tumblr.com/post/666127838922014720/oauth-2-on-the-tumblr-api" class="u-url">OAuth 2 on the Tumblr API</a></h2> <div class="body-text e-content"><p>Ten years ago HTTPS wasn’t as nearly as widespread as today. It is hard to believe that HTTPS was essentially opt-in, if available at all! Back then, people also had to get creative when inventing means to delegate access to someone else. One solution was OAuth 1, conceived by the IETF, later <a href="https://engineering.tumblr.com/post/7541361718/introducing-tumblrs-new-api">adopted by Tumblr in 2011</a>.</p><p>Time went by, and here we are in 2021, with hardly any popular website not shielded with HTTPS (<a href="https://engineering.tumblr.com/post/184390252036/https-for-all-tumblrs">including your own blog!</a>). Today, it wouldn’t make much sense to adopt OAuth 1 as inconvenient as it is. Yet here we are, still asking people to use outdated protocols for their new fancy Tumblr apps. Not anymore!</p><p>Starting today, you have another option: we’re officially opening up <a href="https://href.li/?https://oauth.net/2/">OAuth 2</a> support for the Tumblr API!</p><h2>Get started</h2><p>OAuth 2 flow requires you to know two key URIs:</p><ul><li>For authorization requests, you should use <a href="https://www.tumblr.com/docs/en/api/v2#oauth2authorize---authorization-request">/oauth2/authorize</a></li><li>To exchange authorization codes and refresh tokens, you’ll need to use <a href="https://www.tumblr.com/docs/en/api/v2#v2oauth2token---authorization-code-grant-request">/v2/oauth2/token</a></li></ul><p>If you’re familiar with OAuth 2, <a href="https://www.tumblr.com/oauth/apps">register an application</a> and check out our <a href="https://www.tumblr.com/docs/en/api/v2">API documentation</a> (specifically the <a href="https://www.tumblr.com/docs/en/api/v2#oauth2-authorization">section on OAuth 2</a>) to get up and running.</p><h2>The future of OAuth 1</h2><p>There are no plans to shut down OAuth 1. Your app will continue to work as usual. But be sure to keep an eye on this blog just in case anything new pops up that would prevent us from serving OAuth 1 requests.</p><p>What’s more, if you wish to adopt OAuth 2 in your app, given its superior simplicity, you don’t have to migrate entirely to OAuth 2 at once. Instead, you can keep the old sign-up / log-in flow working, <a href="https://www.tumblr.com/docs/en/api/v2#v2oauth2exchange---oauth1-to-oauth2-token-exchange">and exchange OAuth 1 access token to OAuth 2 tokens on the fly</a>. There’s only one catch: this exchange will invalidate the original access token, so you should be using only the OAuth 2 Bearer authentication for any subsequent requests.</p><h2>Next steps</h2><ul><li>We’ll be adding support for OAuth 2 to our API clients in the coming months. Follow this blog to learn firsthand when this happens.</li><li>Although we do support client-side OAuth 2 flow, we can’t recommend using it unless absolutely required. We might harden it with <a href="https://href.li/?https://www.oauth.com/oauth2-servers/pkce/">PKCE</a> someday, though.</li></ul><p>That’s all from us today. Happy hacking!</p></div> </div> <section class="inline-meta post-extra"> </section> <section class="inline-meta post-extra has-tags"> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20api">tumblr api</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20engineering">tumblr engineering</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/oauth2">oauth2</a> </section> </section> <section class="panel"> <footer class="post-footer"> <section class="panel"> <section class="inline-meta date-notes"> <div class="date-note-wrapper"> <span> <a href="https://engineering.tumblr.com/post/666127838922014720/oauth-2-on-the-tumblr-api#notes" class="meta-item post-notes">117 notes</a> </span> <a href="https://engineering.tumblr.com/post/666127838922014720/oauth-2-on-the-tumblr-api" title="3 years ago" class="meta-item post-date">Oct 26th, 2021</a><time class="dt-published" datetime="2021-10-26 13:23:31"></time> </div> </section> <section class="post-controls"> <div class="controls-wrapper"> <div class="control share-control"> <nav class="pop"> <a href="#" class="share selector"></a> <div class="pop-menu share-menu south" id="share_666127838922014720"> <ul> <li class="open-in-app"><a href="#" class="share-item open-in-app" data-post="666127838922014720">Open in app</a></li> <li><a href="https://facebook.com/sharer.php?u=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F666127838922014720%2Foauth-2-on-the-tumblr-api&t=OAuth%202%20on%20the%20Tumblr%20API" class="share-item facebook" target="_blank">Facebook</a></li> <li><a href="https://twitter.com/intent/tweet?text=OAuth%202%20on%20the%20Tumblr%20API%20Ten%20years%20ago%20HTTPS%20wasn%E2%80%99t%20as%20nearly%20as%20widespread%20as%20today.%20It%20is%20hard%20to%20believe%20that%20HTTPS%20was%20essentially%20opt-in%2C%20if%20available%20at%20all%21%20Back%20then%2C%20people%20also%20had%20to%20get%20creative%20when%20inventing%20means%20to%20delegate...%20https%3A%2F%2Ftmblr.co%2FZI3nWxa_ZxrzyW00" class="share-item twitter" target="_blank">Tweet</a></li> <li><a href="https://reddit.com/submit?url=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F666127838922014720%2Foauth-2-on-the-tumblr-api" class="share-item reddit" target="_blank">Reddit</a></li> <li><a href="mailto:?subject=A%20post%20from%20Tumblr%20Engineering&body=OAuth%202%20on%20the%20Tumblr%20API%20Ten%20years%20ago%20HTTPS%20wasn%E2%80%99t%20as%20nearly%20as%20widespread%20as%20today.%20It%20is%20hard%20to%20believe%20that%20HTTPS%20was%20essentially%20opt-in%2C%20if%20available%20at%20all%21%20Back...%20https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F666127838922014720%2Foauth-2-on-the-tumblr-api" class="share-item mail">Mail</a></li> <li><a href="https://engineering.tumblr.com/post/666127838922014720/embed" class="share-item permalink">Embed</a></li> <li><a href="https://engineering.tumblr.com/post/666127838922014720/oauth-2-on-the-tumblr-api" class="share-item permalink">Permalink <i class="arrow"></i></a></li> </ul> </div> </nav> </div> <div class="control reblog-control"><a href="https://www.tumblr.com/reblog/engineering/666127838922014720/MegqaIb1" class="reblog_button"style="display: block;width:24px;height:24px;"><svg width="100%" height="100%" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000"><path d="M5.01092527,5.99908429 L16.0088498,5.99908429 L16.136,9.508 L20.836,4.752 L16.136,0.083 L16.1360004,3.01110845 L2.09985349,3.01110845 C1.50585349,3.01110845 0.979248041,3.44726568 0.979248041,4.45007306 L0.979248041,10.9999998 L3.98376463,8.30993634 L3.98376463,6.89801007 C3.98376463,6.20867902 4.71892527,5.99908429 5.01092527,5.99908429 Z"></path><path d="M17.1420002,13.2800293 C17.1420002,13.5720293 17.022957,14.0490723 16.730957,14.0490723 L4.92919922,14.0490723 L4.92919922,11 L0.5,15.806 L4.92919922,20.5103758 L5.00469971,16.9990234 L18.9700928,16.9990234 C19.5640928,16.9990234 19.9453125,16.4010001 19.9453125,15.8060001 L19.9453125,9.5324707 L17.142,12.203"></path></svg></a></div> <div class="control like-control"><div class="like_button" data-post-id="666127838922014720" data-blog-name="engineering" id="like_button_666127838922014720"><iframe id="like_iframe_666127838922014720" src="https://assets.tumblr.com/assets/html/like_iframe.html?_v=c96f30edcf75919c3976e1403422560b#name=engineering&post_id=666127838922014720&color=black&rk=MegqaIb1&slug=oauth-2-on-the-tumblr-api" scrolling="no" width="24" height="24" frameborder="0" class="like_toggle" allowTransparency="true" name="like_iframe_666127838922014720"></iframe></div></div> </div> </section> </section> <section class="inline-meta date-notes"> <span class="notes-pop-container"> </span> </section> </footer> </section> </div> </article> <article class="text not-page post-665757792757563392 " data-post-id="665757792757563392" > <div class="post-wrapper clearfix h-entry"> <header class="post-header "> </header> <section class="post"> <div class="post-content"> <h2 class="title p-name"><a href="https://engineering.tumblr.com/post/665757792757563392/https-required-on-tumblr-api" class="u-url">Requiring HTTPS on the Tumblr API</a></h2> <div class="body-text e-content"><p>The time has come folks! We’re officially dropping support for insecure (http://) requests to the Tumblr API after October 31st, 2021. Instead, please use https:// for all requests. The following day we’ll start failing all insecure requests and invalidating any credentials sent in plain text. You can expect the API to respond with a 403 Forbidden status and a 5006 subcode in this scenario.</p><p>Yes, this means you can still get freaky for one last Halloween, but please make sure you add the <i>s</i> to <i>https</i> before you head out for your annual trick-or-treating adventure!</p></div> </div> <section class="inline-meta post-extra"> </section> <section class="inline-meta post-extra has-tags"> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20api">tumblr api</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/https">https</a> </section> </section> <section class="panel"> <footer class="post-footer"> <section class="panel"> <section class="inline-meta date-notes"> <div class="date-note-wrapper"> <span> <a href="https://engineering.tumblr.com/post/665757792757563392/https-required-on-tumblr-api#notes" class="meta-item post-notes">221 notes</a> </span> <a href="https://engineering.tumblr.com/post/665757792757563392/https-required-on-tumblr-api" title="3 years ago" class="meta-item post-date">Oct 22nd, 2021</a><time class="dt-published" datetime="2021-10-22 11:21:47"></time> </div> </section> <section class="post-controls"> <div class="controls-wrapper"> <div class="control share-control"> <nav class="pop"> <a href="#" class="share selector"></a> <div class="pop-menu share-menu south" id="share_665757792757563392"> <ul> <li class="open-in-app"><a href="#" class="share-item open-in-app" data-post="665757792757563392">Open in app</a></li> <li><a href="https://facebook.com/sharer.php?u=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F665757792757563392%2Fhttps-required-on-tumblr-api&t=Requiring%20HTTPS%20on%20the%20Tumblr%20API" class="share-item facebook" target="_blank">Facebook</a></li> <li><a href="https://twitter.com/intent/tweet?text=Requiring%20HTTPS%20on%20the%20Tumblr%20API%20The%20time%20has%20come%20folks%21%20We%E2%80%99re%20officially%20dropping%20support%20for%20insecure%20%28http%3A%2F%2F%29%20requests%20to%20the%20Tumblr%20API%20after%20October%2031st%2C%202021.%20Instead%2C%20please%20use%20https%3A%2F%2F%20for%20all%20requests.%20The%20following%20day%20we%E2%80%99ll...%20https%3A%2F%2Ftmblr.co%2FZI3nWxazFozdmq00" class="share-item twitter" target="_blank">Tweet</a></li> <li><a href="https://reddit.com/submit?url=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F665757792757563392%2Fhttps-required-on-tumblr-api" class="share-item reddit" target="_blank">Reddit</a></li> <li><a href="mailto:?subject=A%20post%20from%20Tumblr%20Engineering&body=Requiring%20HTTPS%20on%20the%20Tumblr%20API%20The%20time%20has%20come%20folks%21%20We%E2%80%99re%20officially%20dropping%20support%20for%20insecure%20%28http%3A%2F%2F%29%20requests%20to%20the%20Tumblr%20API%20after%20October%2031st%2C%202021....%20https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F665757792757563392%2Fhttps-required-on-tumblr-api" class="share-item mail">Mail</a></li> <li><a href="https://engineering.tumblr.com/post/665757792757563392/embed" class="share-item permalink">Embed</a></li> <li><a href="https://engineering.tumblr.com/post/665757792757563392/https-required-on-tumblr-api" class="share-item permalink">Permalink <i class="arrow"></i></a></li> </ul> </div> </nav> </div> <div class="control reblog-control"><a href="https://www.tumblr.com/reblog/engineering/665757792757563392/CA5MgODz" class="reblog_button"style="display: block;width:24px;height:24px;"><svg width="100%" height="100%" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000"><path d="M5.01092527,5.99908429 L16.0088498,5.99908429 L16.136,9.508 L20.836,4.752 L16.136,0.083 L16.1360004,3.01110845 L2.09985349,3.01110845 C1.50585349,3.01110845 0.979248041,3.44726568 0.979248041,4.45007306 L0.979248041,10.9999998 L3.98376463,8.30993634 L3.98376463,6.89801007 C3.98376463,6.20867902 4.71892527,5.99908429 5.01092527,5.99908429 Z"></path><path d="M17.1420002,13.2800293 C17.1420002,13.5720293 17.022957,14.0490723 16.730957,14.0490723 L4.92919922,14.0490723 L4.92919922,11 L0.5,15.806 L4.92919922,20.5103758 L5.00469971,16.9990234 L18.9700928,16.9990234 C19.5640928,16.9990234 19.9453125,16.4010001 19.9453125,15.8060001 L19.9453125,9.5324707 L17.142,12.203"></path></svg></a></div> <div class="control like-control"><div class="like_button" data-post-id="665757792757563392" data-blog-name="engineering" id="like_button_665757792757563392"><iframe id="like_iframe_665757792757563392" src="https://assets.tumblr.com/assets/html/like_iframe.html?_v=c96f30edcf75919c3976e1403422560b#name=engineering&post_id=665757792757563392&color=black&rk=CA5MgODz&slug=https-required-on-tumblr-api" scrolling="no" width="24" height="24" frameborder="0" class="like_toggle" allowTransparency="true" name="like_iframe_665757792757563392"></iframe></div></div> </div> </section> </section> <section class="inline-meta date-notes"> <span class="notes-pop-container"> </span> </section> </footer> </section> </div> </article> <article class="text not-page post-664125302420750336 " data-post-id="664125302420750336" > <div class="post-wrapper clearfix h-entry"> <header class="post-header "> </header> <section class="post"> <div class="post-content"> <h2 class="title p-name"><a href="https://engineering.tumblr.com/post/664125302420750336/tumblr-hack-week-september-2021-edition" class="u-url">Tumblr Hack Week, September 2021 Edition</a></h2> <div class="body-text e-content"><p>It was HACK WEEK at Tumblr and Automattic earlier this month! Just like <a href="https://engineering.tumblr.com/post/654257188393697280/tumblr-hack-day-june-2021-edition">back in June</a>, we stopped our normal work to focus on some great possible new features, some bug fixing, and more. Here’s a taste of some of the projects that got hacked together. Some of these will hopefully make it to be real new parts of Tumblr, but as always, we can’t guarantee anything here with a timeline or even that they’ll ever see the light of day again – they’re hacks!</p><h2>Fixing Tag URL issues across Tumblr</h2><p>L and <a class="tumblelog" href="https://tmblr.co/MUk2SVqutOi6RE2KuLF0p3w">@superchlorine</a> are working on fixing a lot of issues about how we parse tags in URLs, so that we are more consistent across the web and the apps. This is something that we know has been frustrating for a long time: trying to search for posts tagged with a + sign or with spaces often doesn’t work as you’d expect. But not for much longer! We’ve been slowly fixing these issues one at a time and posting about it on <a href="https://changes.tumblr.com/">the Changes blog</a>.</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/e9e85cf4d95c05079cbc395768d8cf24/30548e3552235cbb-c7/s1280x1920/cf3c6ac545d85da6c9a68cbc606b7f4486d8bcf8.png" data-big-photo-height="304" data-big-photo-width="952"><img class="post_media_photo image" src="https://64.media.tumblr.com/e9e85cf4d95c05079cbc395768d8cf24/30548e3552235cbb-c7/s1280x1920/cf3c6ac545d85da6c9a68cbc606b7f4486d8bcf8.png" srcset="https://64.media.tumblr.com/e9e85cf4d95c05079cbc395768d8cf24/30548e3552235cbb-c7/s75x75_c1/b1b9656994be9f3a099b8bfe1204a0b485581df2.png 75w, https://64.media.tumblr.com/e9e85cf4d95c05079cbc395768d8cf24/30548e3552235cbb-c7/s100x200/57c7be7efaf880cc5a234d8244f8d2374fecff9d.png 100w, https://64.media.tumblr.com/e9e85cf4d95c05079cbc395768d8cf24/30548e3552235cbb-c7/s250x400/291bdeee6ddb2028d060cdb3bab4b3a7bef506c8.png 250w, https://64.media.tumblr.com/e9e85cf4d95c05079cbc395768d8cf24/30548e3552235cbb-c7/s400x600/8df94c84f0307be82b8489970e41b7b046c4a8dd.png 400w, https://64.media.tumblr.com/e9e85cf4d95c05079cbc395768d8cf24/30548e3552235cbb-c7/s500x750/95da8bcd82f84d3d8aeb5fd98aa5d50623035af8.png 500w, https://64.media.tumblr.com/e9e85cf4d95c05079cbc395768d8cf24/30548e3552235cbb-c7/s540x810/37c63394460e8afd59016d635f6636ee1ea75dc6.png 540w, https://64.media.tumblr.com/e9e85cf4d95c05079cbc395768d8cf24/30548e3552235cbb-c7/s640x960/e4bd9a9cf4d6064f18d7f0eb91d7c54737cd0c24.png 640w, https://64.media.tumblr.com/e9e85cf4d95c05079cbc395768d8cf24/30548e3552235cbb-c7/s1280x1920/cf3c6ac545d85da6c9a68cbc606b7f4486d8bcf8.png 952w" sizes="(max-width: 952px) 100vw, 952px" alt="image"></a></figure></div></div><h2>Tumblr Ignite: pay to promote posts!</h2><p>This actually carried over from a previous Hack Day: the ability to click a little 🔥 button on a post, throw down some cash, and promote that post as a Sponsored post across Tumblr. There’d be some kind of moderation queue on our side to ensure nothing unsafe gets sponsored in this way, and any sponsored post would be “frozen” and not editable during the time it’s being promoted. The Ads Core team, lead by <a class="tumblelog" href="https://tmblr.co/MNJIx9Vi64jFekLx4bOounA">@thstall</a> with help from Argyris, Oleg, and Nathan took this pretty far towards being production-ready.</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/3f65c36c1c703538225aa71e8029a291/30548e3552235cbb-a2/s1280x1920/c5d61876e9ce9916ec2b83fe3c3b917d3ae1406d.png" data-big-photo-height="" data-big-photo-width=""><img class="post_media_photo image" src="https://64.media.tumblr.com/3f65c36c1c703538225aa71e8029a291/30548e3552235cbb-a2/s500x750/96de9a314e62b7682e59feaea60693331626c5ea.png" srcset="https://64.media.tumblr.com/3f65c36c1c703538225aa71e8029a291/30548e3552235cbb-a2/s75x75_c1/861a9031b7cfd648072753d125148adcb10046eb.png 75w, https://64.media.tumblr.com/3f65c36c1c703538225aa71e8029a291/30548e3552235cbb-a2/s100x200/c2f338ccee0b56d90ae91057249918c060750c38.png 100w, https://64.media.tumblr.com/3f65c36c1c703538225aa71e8029a291/30548e3552235cbb-a2/s250x400/7981a8c55d28e946be7ecc262e981db09202e495.png 250w, https://64.media.tumblr.com/3f65c36c1c703538225aa71e8029a291/30548e3552235cbb-a2/s400x600/555b50b5ff09e9603cdf5de19e2d1ca7a5b98ee0.png 400w, https://64.media.tumblr.com/3f65c36c1c703538225aa71e8029a291/30548e3552235cbb-a2/s500x750/96de9a314e62b7682e59feaea60693331626c5ea.png 429w" sizes="(max-width: 429px) 100vw, 429px" alt="image"></a></figure></div></div><h2>Bringing two-factor authentication settings to the mobile apps</h2><p>We really want as many people as possible to protect their accounts by leveraging Two Factor Authentication, which you can currently enable by going to your account settings on the web. But it’d be even better to be able to access these settings in the mobile apps themselves! Megs, Adam, and Eduardo are still working to make this a reality.</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/95c46b0f05f65c7e4fd4b332445fa8da/30548e3552235cbb-bf/s1280x1920/38be877ae87b1fe4d1f4714e5479b38002bdbd01.png" data-big-photo-height="651" data-big-photo-width="741"><img class="post_media_photo image" src="https://64.media.tumblr.com/95c46b0f05f65c7e4fd4b332445fa8da/30548e3552235cbb-bf/s1280x1920/38be877ae87b1fe4d1f4714e5479b38002bdbd01.png" srcset="https://64.media.tumblr.com/95c46b0f05f65c7e4fd4b332445fa8da/30548e3552235cbb-bf/s75x75_c1/4f9d3c4fac2b5f4c5e04f9fa312d9b2e59121b5f.png 75w, https://64.media.tumblr.com/95c46b0f05f65c7e4fd4b332445fa8da/30548e3552235cbb-bf/s100x200/8935f953726373b391afc6253937223d71ea4350.png 100w, https://64.media.tumblr.com/95c46b0f05f65c7e4fd4b332445fa8da/30548e3552235cbb-bf/s250x400/17930624e8910e594eff86ce1143fca99d9f9eab.png 250w, https://64.media.tumblr.com/95c46b0f05f65c7e4fd4b332445fa8da/30548e3552235cbb-bf/s400x600/30a215e2d450b7d92013d57e28268677ac1f20cf.png 400w, https://64.media.tumblr.com/95c46b0f05f65c7e4fd4b332445fa8da/30548e3552235cbb-bf/s500x750/0ed0de7309f1918f25f7211d750f151354642a05.png 500w, https://64.media.tumblr.com/95c46b0f05f65c7e4fd4b332445fa8da/30548e3552235cbb-bf/s540x810/a233b0607e31fa8cc73719d4b5a90b65ea7db678.png 540w, https://64.media.tumblr.com/95c46b0f05f65c7e4fd4b332445fa8da/30548e3552235cbb-bf/s640x960/40955db06fe6ec29e811e3afc7a755a0eb904401.png 640w, https://64.media.tumblr.com/95c46b0f05f65c7e4fd4b332445fa8da/30548e3552235cbb-bf/s1280x1920/38be877ae87b1fe4d1f4714e5479b38002bdbd01.png 741w" sizes="(max-width: 741px) 100vw, 741px" alt="image"></a></figure></div></div><h2>The Return of Reblog Graphs</h2><p>For those of you who remember this experiment in <a href="https://www.tumblr.com/settings/labs">Tumblr Labs</a>, this is a popup you can check out on posts which shows you a graph of all of the reblogs on a post and how they’re connected. This is one crazy way you can visualize how posts on Tumblr get reblogged around in huge chains and clusters! <a class="tumblelog" href="https://tmblr.co/MJwcljpp-8llRTtB-1dDdsg">@cyle</a> got a working React-based prototype working for Hack Week, and now we’re working to bring this back to the web for real.</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/1b568416a4400e707e00e280f6f46213/30548e3552235cbb-15/s1280x1920/6e428ec188ae94dd05319132e2bb08c380b9e6b0.gifv" data-big-photo-height="" data-big-photo-width=""><img class="post_media_photo image" src="https://64.media.tumblr.com/1b568416a4400e707e00e280f6f46213/30548e3552235cbb-15/s500x750/ef1ae54a1fba3f177af69845db875dcf98d1f70f.gifv" srcset="https://64.media.tumblr.com/1b568416a4400e707e00e280f6f46213/30548e3552235cbb-15/s75x75_c1/77c525becf69998b49726b3d72f96c75a5803272.gifv 75w, https://64.media.tumblr.com/1b568416a4400e707e00e280f6f46213/30548e3552235cbb-15/s100x200/3141bc772a10e292807fda1dd0be0aae7f94a6e4.gifv 100w, https://64.media.tumblr.com/1b568416a4400e707e00e280f6f46213/30548e3552235cbb-15/s250x400/6ab3faedf7e8890bfc671424d2afb3dc06de124a.gifv 250w, https://64.media.tumblr.com/1b568416a4400e707e00e280f6f46213/30548e3552235cbb-15/s400x600/be054da058c877a0959e6a76d3c764d6df764e14.gifv 400w, https://64.media.tumblr.com/1b568416a4400e707e00e280f6f46213/30548e3552235cbb-15/s500x750/ef1ae54a1fba3f177af69845db875dcf98d1f70f.gifv 418w" sizes="(max-width: 418px) 100vw, 418px" alt="image"></a></figure></div></div><h2>Tumblr Fan Funding</h2><p>Connie and the Post+ team built a prototype of Fan Funding on Tumblr, to help creators set a funding goal and get to that goal, using a lot of the same technology we used to create Post+.</p><div class="npf_row"><div class="npf_col"><figure class="tmblr-full"><a class="post_media_photo_anchor" data-big-photo="https://64.media.tumblr.com/76d0c858b5cf0dfe484609836d9236a6/30548e3552235cbb-44/s1280x1920/cd245a0cb958a9bc41c39340873ae8baf3682533.png" data-big-photo-height="471" data-big-photo-width="662"><img class="post_media_photo image" src="https://64.media.tumblr.com/76d0c858b5cf0dfe484609836d9236a6/30548e3552235cbb-44/s1280x1920/cd245a0cb958a9bc41c39340873ae8baf3682533.png" srcset="https://64.media.tumblr.com/76d0c858b5cf0dfe484609836d9236a6/30548e3552235cbb-44/s75x75_c1/6407d3a6c36f5b94d871f213a2e47df37c9cf737.png 75w, https://64.media.tumblr.com/76d0c858b5cf0dfe484609836d9236a6/30548e3552235cbb-44/s100x200/3503e1f8384059ed9ad8c0ba7743ed06570d4ba1.png 100w, https://64.media.tumblr.com/76d0c858b5cf0dfe484609836d9236a6/30548e3552235cbb-44/s250x400/761de59d6e9c263b87ec54124b8ae6a1ee23d406.png 250w, https://64.media.tumblr.com/76d0c858b5cf0dfe484609836d9236a6/30548e3552235cbb-44/s400x600/fe88f4038531e93353d0147e763bc03b22eb15ee.png 400w, https://64.media.tumblr.com/76d0c858b5cf0dfe484609836d9236a6/30548e3552235cbb-44/s500x750/c97d60777a73efbf9bd585b0ff38ec34580e3983.png 500w, https://64.media.tumblr.com/76d0c858b5cf0dfe484609836d9236a6/30548e3552235cbb-44/s540x810/d5310cf33a752534be53c151dd512a49dbae9976.png 540w, https://64.media.tumblr.com/76d0c858b5cf0dfe484609836d9236a6/30548e3552235cbb-44/s640x960/6e3c789432fd8b632541129b18fc5561d7edfafb.png 640w, https://64.media.tumblr.com/76d0c858b5cf0dfe484609836d9236a6/30548e3552235cbb-44/s1280x1920/cd245a0cb958a9bc41c39340873ae8baf3682533.png 662w" sizes="(max-width: 662px) 100vw, 662px" alt="image"></a></figure></div></div><p>Stay tuned to the <a class="tumblelog" href="https://tmblr.co/MYXvAUPIj9KzlTb7SqaHO0A">@changes</a> blog to find out if any of these end up becoming a part of Tumblr for real!</p></div> </div> <section class="inline-meta post-extra"> </section> <section class="inline-meta post-extra has-tags"> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20engineering">tumblr engineering</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/hack%20week">hack week</a> </section> </section> <section class="panel"> <footer class="post-footer"> <section class="panel"> <section class="inline-meta date-notes"> <div class="date-note-wrapper"> <span> <a href="https://engineering.tumblr.com/post/664125302420750336/tumblr-hack-week-september-2021-edition#notes" class="meta-item post-notes">788 notes</a> </span> <a href="https://engineering.tumblr.com/post/664125302420750336/tumblr-hack-week-september-2021-edition" title="3 years ago" class="meta-item post-date">Oct 4th, 2021</a><time class="dt-published" datetime="2021-10-04 10:54:03"></time> </div> </section> <section class="post-controls"> <div class="controls-wrapper"> <div class="control share-control"> <nav class="pop"> <a href="#" class="share selector"></a> <div class="pop-menu share-menu south" id="share_664125302420750336"> <ul> <li class="open-in-app"><a href="#" class="share-item open-in-app" data-post="664125302420750336">Open in app</a></li> <li><a href="https://facebook.com/sharer.php?u=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F664125302420750336%2Ftumblr-hack-week-september-2021-edition&t=Tumblr%20Hack%20Week%2C%20September%202021%20Edition" class="share-item facebook" target="_blank">Facebook</a></li> <li><a href="https://twitter.com/intent/tweet?text=Tumblr%20Hack%20Week%2C%20September%202021%20Edition%20It%20was%20HACK%20WEEK%20at%20Tumblr%20and%20Automattic%20earlier%20this%20month%21%20Just%20like%20back%20in%20June%2C%20we%20stopped%20our%20normal%20work%20to%20focus%20on%20some%20great%20possible%20new%20features%2C%20some%20bug%20fixing%2C%20and%20more.%20Here%E2%80%99s%20a%20taste...%20https%3A%2F%2Ftmblr.co%2FZI3nWxatSd6X8q00" class="share-item twitter" target="_blank">Tweet</a></li> <li><a href="https://reddit.com/submit?url=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F664125302420750336%2Ftumblr-hack-week-september-2021-edition" class="share-item reddit" target="_blank">Reddit</a></li> <li><a href="mailto:?subject=A%20post%20from%20Tumblr%20Engineering&body=Tumblr%20Hack%20Week%2C%20September%202021%20Edition%20It%20was%20HACK%20WEEK%20at%20Tumblr%20and%20Automattic%20earlier%20this%20month%21%20Just%20like%20back%20in%20June%2C%20we%20stopped%20our%20normal%20work%20to...%20https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F664125302420750336%2Ftumblr-hack-week-september-2021-edition" class="share-item mail">Mail</a></li> <li><a href="https://engineering.tumblr.com/post/664125302420750336/embed" class="share-item permalink">Embed</a></li> <li><a href="https://engineering.tumblr.com/post/664125302420750336/tumblr-hack-week-september-2021-edition" class="share-item permalink">Permalink <i class="arrow"></i></a></li> </ul> </div> </nav> </div> <div class="control reblog-control"><a href="https://www.tumblr.com/reblog/engineering/664125302420750336/RFX6JDbJ" class="reblog_button"style="display: block;width:24px;height:24px;"><svg width="100%" height="100%" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000"><path d="M5.01092527,5.99908429 L16.0088498,5.99908429 L16.136,9.508 L20.836,4.752 L16.136,0.083 L16.1360004,3.01110845 L2.09985349,3.01110845 C1.50585349,3.01110845 0.979248041,3.44726568 0.979248041,4.45007306 L0.979248041,10.9999998 L3.98376463,8.30993634 L3.98376463,6.89801007 C3.98376463,6.20867902 4.71892527,5.99908429 5.01092527,5.99908429 Z"></path><path d="M17.1420002,13.2800293 C17.1420002,13.5720293 17.022957,14.0490723 16.730957,14.0490723 L4.92919922,14.0490723 L4.92919922,11 L0.5,15.806 L4.92919922,20.5103758 L5.00469971,16.9990234 L18.9700928,16.9990234 C19.5640928,16.9990234 19.9453125,16.4010001 19.9453125,15.8060001 L19.9453125,9.5324707 L17.142,12.203"></path></svg></a></div> <div class="control like-control"><div class="like_button" data-post-id="664125302420750336" data-blog-name="engineering" id="like_button_664125302420750336"><iframe id="like_iframe_664125302420750336" src="https://assets.tumblr.com/assets/html/like_iframe.html?_v=c96f30edcf75919c3976e1403422560b#name=engineering&post_id=664125302420750336&color=black&rk=RFX6JDbJ&slug=tumblr-hack-week-september-2021-edition" scrolling="no" width="24" height="24" frameborder="0" class="like_toggle" allowTransparency="true" name="like_iframe_664125302420750336"></iframe></div></div> </div> </section> </section> <section class="inline-meta date-notes"> <span class="notes-pop-container"> </span> </section> </footer> </section> </div> </article> <article class="text not-page post-663504007568998401 " data-post-id="663504007568998401" > <div class="post-wrapper clearfix h-entry"> <header class="post-header "> </header> <section class="post"> <div class="post-content"> <div class="body-text e-content"><div class="npf-link-block has-poster"><a target="_blank" href="https://href.li/?https://data.blog/2021/09/27/advance-your-career-with-automattic-rotations/"><div class="poster" style="background-image:url(https://64.media.tumblr.com/ed90e6da3cfb752a8e60610f9934b67d/b760698935459a9a-7b/s1280x1920/596df01af7a71a0762b5e4d28544dfe2af28c4b8.jpg)"><div class="title">Advance your career with Automattic rotations</div></div><div class="bottom"><div class="description"> Photo by James Wheeler on Pexels.com One distinguishing feature of Automattic’s work culture is a team rotation, through which an individual </div><div class="site-name"> Data for Breakfast </div></div></a></div><blockquote class="npf_indented"><p>One distinguishing feature of Automattic’s work culture is a team rotation, through which an individual can move from one team to another. A rotation can happen for a few reasons: to “try out” a new role and gain new skills, to backfill an understaffed team, or to cultivate cross-pollination and diversity across the company. Some rotations are several months long, while others may turn into a permanent team switch.</p></blockquote><blockquote class="npf_indented"><p>Tumblr, which is part of Automattic, is currently hiring <a href="https://automattic.com/work-with-us/job/senior-data-scientist-tumblr/">data scientists</a> and <a href="https://automattic.com/work-with-us/job/search-engineer-tumblr-content-discovery/">search engineers</a> and <a href="https://automattic.com/work-with-us/job/senior-machine-learning-engineer-search-and-recommendations/">machine learning engineers</a>. Thanks to this system of rotations, last year we were able to fill a few of these positions, on the Tumblr Core Data Science team, internally. This team contributes to Tumblr recommendation systems, discovery feeds, targeted push notifications, user-interest profiling, and computational advertisement. Team members work on designing, developing, and maintaining large-scale machine learning algorithms, data pipelines, and backend services to connect users with the content they love. Our data infrastructure is built on top of open source big data frameworks such as Apache Spark and Scalding, orchestrated by Apache Airflow and with a PHP backend layer.</p></blockquote><blockquote class="npf_indented"><p>In this post, Adam and Vicki, two Automatticians who experienced a rotation onto the team, tell us about their work in data, their rotations, and being part of Automattic.</p></blockquote><p>Very cool stuff! 👏 Give it a read.</p></div> </div> <section class="inline-meta post-extra"> </section> <section class="inline-meta post-extra has-tags"> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/tumblr%20engineering">tumblr engineering</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/automattic">automattic</a> <a class="meta-item tag-link p-category" href="https://engineering.tumblr.com/tagged/team%20rotations">team rotations</a> </section> </section> <section class="panel"> <footer class="post-footer"> <section class="panel"> <section class="inline-meta date-notes"> <div class="date-note-wrapper"> <span> <a href="https://engineering.tumblr.com/post/663504007568998401/advance-your-career-with-automattic-rotations#notes" class="meta-item post-notes">54 notes</a> </span> <a href="https://engineering.tumblr.com/post/663504007568998401/advance-your-career-with-automattic-rotations" title="3 years ago" class="meta-item post-date">Sep 27th, 2021</a><time class="dt-published" datetime="2021-09-27 14:18:50"></time> </div> </section> <section class="post-controls"> <div class="controls-wrapper"> <div class="control share-control"> <nav class="pop"> <a href="#" class="share selector"></a> <div class="pop-menu share-menu south" id="share_663504007568998401"> <ul> <li class="open-in-app"><a href="#" class="share-item open-in-app" data-post="663504007568998401">Open in app</a></li> <li><a href="https://facebook.com/sharer.php?u=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F663504007568998401%2Fadvance-your-career-with-automattic-rotations&t=" class="share-item facebook" target="_blank">Facebook</a></li> <li><a href="https://twitter.com/intent/tweet?text=Advance%20your%20career%20with%20Automattic%20rotations%20One%C2%A0distinguishing%20feature%20of%20Automattic%E2%80%99s%20work%20culture%20is%20a%20team%20rotation%2C%20through%20which%20an%20individual%20can%20move%20from%20one%20team%20to%20another.%20A%20rotation%20can%20happen%20for%20a%20few%20reasons%3A%20to%20%E2%80%9Ctry%20out%E2%80%9D%20a...%20https%3A%2F%2Ftmblr.co%2FZI3nWxarFM4cCi01" class="share-item twitter" target="_blank">Tweet</a></li> <li><a href="https://reddit.com/submit?url=https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F663504007568998401%2Fadvance-your-career-with-automattic-rotations" class="share-item reddit" target="_blank">Reddit</a></li> <li><a href="mailto:?subject=A%20post%20from%20Tumblr%20Engineering&body=Advance%20your%20career%20with%20Automattic%20rotations%20One%C2%A0distinguishing%20feature%20of%20Automattic%E2%80%99s%20work%20culture%20is%20a%20team%20rotation%2C%20through%20which%20an%20individual...%20https%3A%2F%2Fengineering.tumblr.com%2Fpost%2F663504007568998401%2Fadvance-your-career-with-automattic-rotations" class="share-item mail">Mail</a></li> <li><a href="https://engineering.tumblr.com/post/663504007568998401/embed" class="share-item permalink">Embed</a></li> <li><a href="https://engineering.tumblr.com/post/663504007568998401/advance-your-career-with-automattic-rotations" class="share-item permalink">Permalink <i class="arrow"></i></a></li> </ul> </div> </nav> </div> <div class="control reblog-control"><a href="https://www.tumblr.com/reblog/engineering/663504007568998401/eVbbDf4E" class="reblog_button"style="display: block;width:24px;height:24px;"><svg width="100%" height="100%" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000"><path d="M5.01092527,5.99908429 L16.0088498,5.99908429 L16.136,9.508 L20.836,4.752 L16.136,0.083 L16.1360004,3.01110845 L2.09985349,3.01110845 C1.50585349,3.01110845 0.979248041,3.44726568 0.979248041,4.45007306 L0.979248041,10.9999998 L3.98376463,8.30993634 L3.98376463,6.89801007 C3.98376463,6.20867902 4.71892527,5.99908429 5.01092527,5.99908429 Z"></path><path d="M17.1420002,13.2800293 C17.1420002,13.5720293 17.022957,14.0490723 16.730957,14.0490723 L4.92919922,14.0490723 L4.92919922,11 L0.5,15.806 L4.92919922,20.5103758 L5.00469971,16.9990234 L18.9700928,16.9990234 C19.5640928,16.9990234 19.9453125,16.4010001 19.9453125,15.8060001 L19.9453125,9.5324707 L17.142,12.203"></path></svg></a></div> <div class="control like-control"><div class="like_button" data-post-id="663504007568998401" data-blog-name="engineering" id="like_button_663504007568998401"><iframe id="like_iframe_663504007568998401" src="https://assets.tumblr.com/assets/html/like_iframe.html?_v=c96f30edcf75919c3976e1403422560b#name=engineering&post_id=663504007568998401&color=black&rk=eVbbDf4E&slug=advance-your-career-with-automattic-rotations" scrolling="no" width="24" height="24" frameborder="0" class="like_toggle" allowTransparency="true" name="like_iframe_663504007568998401"></iframe></div></div> </div> </section> </section> <section class="inline-meta date-notes"> <span class="notes-pop-container"> </span> </section> </footer> </section> </div> </article> </div> <!-- .main --> <div class="sidebar"> </div> <!-- .sidebar --> </div> <!-- .container --> </section> <footer id="footer" class="content clearfix"> <div id="pagination"> <a href="/page/2" class="next" data-current-page="1" data-total-pages="16">Next<span class="bg"></span></a> <div class="loader"><div class="loader-bar"></div><div class="loader-bar"></div><div class="loader-bar"></div></div> </div> </footer> </section> <script> var Optica = {}; Optica.ENDLESS_SCROLLING = true; Optica.SHOW_NAV = true; Optica.LAYOUT = "wide"; Optica.GRID_LAYOUT = (Optica.LAYOUT === 'grid'); Optica.TITLE_COLOR = "#FFFFFF"; Optica.ACCENT_COLOR = "#ffffff"; Optica.BACKGROUND_COLOR = "#06cf35"; Optica.NU_OPTICA_BLOG_CARDS = true; Optica.RELATED_POSTS_CTA_VARIANTS = [ { variant: "C", text: "See the rest of this Tumblr" }, { variant: "D", text: "See engineering's whole Tumblr" }, { variant: "E", text: "You scrolled this far. Check out the rest." } ]; Optica.NO_LIKES_VARIANTS = [ "This Tumblr hasn't liked any posts yet.", "This Tumblr doesn't like anything…yet.", "No likes! Sheesh!", "Amazing! This Tumblr doesn't like anything.", "Incredible! This Tumblr doesn't like anything.", "Neat! This Tumblr doesn't like anything.", "Apparently this Tumblr is hard to please.", "Wow! This Tumblr hasn't liked anything ever.", "This Tumblr hasn't liked anything yet. How very intriguing.", "This Tumblr has never met a post it didn't not like." ]; Optica.NO_POSTS_VARIANTS = [ "This Tumblr hasn't made any posts.", "This silly Tumblr hasn't posted anything yet.", "This Tumblr is cool, but empty.", "This Tumblr is content-free.", "This minimalist Tumblr has no posts.", "Meditate for a while on this empty Tumblr.", "Posts? Nah.", "This Tumblr has hardly any posts. \nNone at all, in fact.", "This Tumblr hasn't posted anything." ]; Optica.NO_FOLLOWING_VARIANTS = [ "This Tumblr hasn't followed any other Tumblrs.", "Aw. This Tumblr isn't following anyone.", "Nope, this Tumblr doesn't follow anyone.", "This cool Tumblr doesn't follow anyone.", "This far-out Tumblr doesn't follow anyone.", "This fiercely independent Tumblr doesn't follow anyone.", "This Tumblr doesn't follow anything except for its own rules.", "This Tumblr doesn't really \"follow\" anything." ]; </script> <script src="https://assets.tumblr.com/default-theme/r1/main-min.js"></script> <script type="text/javascript" src="https://static.tumblr.com/ehm1tdz/Mhunye5t3/highlight.pack.js"/></script> <script type="text/javascript"> (function($) { $(document).ready(function() { $('.post-content pre code').each(function(i, block) { hljs.highlightBlock(block); }); }); })(window.jQuery); </script> <iframe scrolling="no" width="1" height="1" frameborder="0" style="background-color:transparent; overflow:hidden; position:absolute; top:0; left:0; z-index:9999;" id="ga_target"></iframe><script type="text/javascript"> (function(){ var analytics_frame = document.getElementById('ga_target'); var analytics_iframe_loaded; var user_logged_in; var blog_is_nsfw = 'No'; var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; var eventer = window[eventMethod]; var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message"; eventer(messageEvent,function(e) { var message = (e.data && e.data.split) ? e.data.split(';') : ''; switch (message[0]) { case 'analytics_iframe_loaded': analytics_iframe_loaded = true; postCSMessage(); postGAMessage(); break; case 'user_logged_in': user_logged_in = message[1]; postGAMessage(); break; } }, false); analytics_frame.src = "https://assets.tumblr.com/analytics.html?_v=9f5febfd57a8a649c598d888f2d9e062#" + "https://engineering.tumblr.com"; function postGAMessage() { if (analytics_iframe_loaded && user_logged_in) { var is_ajax = false; analytics_frame.contentWindow.postMessage(['tick_google_analytics', is_ajax, user_logged_in, blog_is_nsfw, '/?route=%2F'].join(';'), analytics_frame.src.split('/analytics.html')[0]); } } function postCSMessage() { COMSCORE = true; analytics_frame.contentWindow.postMessage('enable_comscore;' + window.location, analytics_frame.src.split('/analytics.html')[0]); } })(); </script><script type="text/javascript" nonce="8oBHyfkaily4Etc8m3XiIwbEsA">!function(s){s.src='https://px.srvcs.tumblr.com/impixu?T=1744118690&J=eyJ0eXBlIjoidXJsIiwidXJsIjoiaHR0cDovL2VuZ2luZWVyaW5nLnR1bWJsci5jb20vIiwicmVxdHlwZSI6MCwicm91dGUiOiIvIn0=&U=NNEJEHLKMH&K=c7bcb4aa44a3ba55c8a5920e7712cb8fdb9c00395f79c2300e0c8b44c9ab7b6f&R='.replace(/&R=[^&$]*/,'').concat('&R='+escape(document.referrer)).slice(0,2000).replace(/%.?.?$/,'');}(new Image());</script><noscript><img style="position:absolute;z-index:-3334;top:0px;left:0px;visibility:hidden;" src="https://px.srvcs.tumblr.com/impixu?T=1744118690&J=eyJ0eXBlIjoidXJsIiwidXJsIjoiaHR0cDovL2VuZ2luZWVyaW5nLnR1bWJsci5jb20vIiwicmVxdHlwZSI6MCwicm91dGUiOiIvIiwibm9zY3JpcHQiOjF9&U=NNEJEHLKMH&K=a607a9ee449a366c6aabeef83fd4687233272467e201a3bcd5899c593f335a50&R="></noscript><script type="text/javascript" nonce="8oBHyfkaily4Etc8m3XiIwbEsA">!function(s){s.src='https://px.srvcs.tumblr.com/impixu?T=1744118690&J=eyJ0eXBlIjoicG9zdCIsInVybCI6Imh0dHA6Ly9lbmdpbmVlcmluZy50dW1ibHIuY29tLyIsInJlcXR5cGUiOjAsInJvdXRlIjoiLyIsInBvc3RzIjpbeyJwb3N0aWQiOiI3NjM4OTI4ODU0MzAxNTczMTIiLCJibG9naWQiOjE4MTMzMDk4LCJzb3VyY2UiOjMzfSx7InBvc3RpZCI6Ijc0MTc4MTE4OTg0MzYxNTc0NCIsImJsb2dpZCI6MTgxMzMwOTgsInNvdXJjZSI6MzN9LHsicG9zdGlkIjoiNzMzNDQ1NTk0Mjk1NzYyOTQ0IiwiYmxvZ2lkIjoxODEzMzA5OCwic291cmNlIjozM30seyJwb3N0aWQiOiI3MzAyNzI4MzAyMTA2MjE0NDEiLCJibG9naWQiOjE4MTMzMDk4LCJzb3VyY2UiOjMzfSx7InBvc3RpZCI6IjcyMjEwMjU2MzAxMTQ5Mzg4OCIsImJsb2dpZCI6MTgxMzMwOTgsInNvdXJjZSI6MzN9LHsicG9zdGlkIjoiNzEzNTk5NDIxODI1MzUxNjgwIiwiYmxvZ2lkIjoxODEzMzA5OCwic291cmNlIjozM30seyJwb3N0aWQiOiI3MDQ4MTcyOTEyMDkxNDYzNjgiLCJibG9naWQiOjE4MTMzMDk4LCJzb3VyY2UiOjMzfSx7InBvc3RpZCI6IjY5NzI4MTkzMDYyNDk5MTIzMiIsImJsb2dpZCI6MTgxMzMwOTgsInNvdXJjZSI6MzN9LHsicG9zdGlkIjoiNjkwMTM1MDM1NTMzMjMwMDgwIiwiYmxvZ2lkIjoxODEzMzA5OCwic291cmNlIjozM30seyJwb3N0aWQiOiI2Nzg5MDQ4NjM4NjM3ODM0MjQiLCJibG9naWQiOjE4MTMzMDk4LCJzb3VyY2UiOjMzfSx7InBvc3RpZCI6IjY3MTEyMzM5NjY0OTczMDA0OCIsImJsb2dpZCI6MTgxMzMwOTgsInNvdXJjZSI6MzN9LHsicG9zdGlkIjoiNjY2MTI3ODM4OTIyMDE0NzIwIiwiYmxvZ2lkIjoxODEzMzA5OCwic291cmNlIjozM30seyJwb3N0aWQiOiI2NjU3NTc3OTI3NTc1NjMzOTIiLCJibG9naWQiOjE4MTMzMDk4LCJzb3VyY2UiOjMzfSx7InBvc3RpZCI6IjY2NDEyNTMwMjQyMDc1MDMzNiIsImJsb2dpZCI6MTgxMzMwOTgsInNvdXJjZSI6MzN9LHsicG9zdGlkIjoiNjYzNTA0MDA3NTY4OTk4NDAxIiwiYmxvZ2lkIjoxODEzMzA5OCwic291cmNlIjozM31dfQ==&U=OCBNMNPALD&K=aaf191210896e2420b6f50b8ea5acce7a930b751aba372bc12c4b8c33cc8357f&R='.replace(/&R=[^&$]*/,'').concat('&R='+escape(document.referrer)).slice(0,2000).replace(/%.?.?$/,'');}(new Image());</script><noscript><img style="position:absolute;z-index:-3334;top:0px;left:0px;visibility:hidden;" src="https://px.srvcs.tumblr.com/impixu?T=1744118690&J=eyJ0eXBlIjoicG9zdCIsInVybCI6Imh0dHA6Ly9lbmdpbmVlcmluZy50dW1ibHIuY29tLyIsInJlcXR5cGUiOjAsInJvdXRlIjoiLyIsInBvc3RzIjpbeyJwb3N0aWQiOiI3NjM4OTI4ODU0MzAxNTczMTIiLCJibG9naWQiOjE4MTMzMDk4LCJzb3VyY2UiOjMzfSx7InBvc3RpZCI6Ijc0MTc4MTE4OTg0MzYxNTc0NCIsImJsb2dpZCI6MTgxMzMwOTgsInNvdXJjZSI6MzN9LHsicG9zdGlkIjoiNzMzNDQ1NTk0Mjk1NzYyOTQ0IiwiYmxvZ2lkIjoxODEzMzA5OCwic291cmNlIjozM30seyJwb3N0aWQiOiI3MzAyNzI4MzAyMTA2MjE0NDEiLCJibG9naWQiOjE4MTMzMDk4LCJzb3VyY2UiOjMzfSx7InBvc3RpZCI6IjcyMjEwMjU2MzAxMTQ5Mzg4OCIsImJsb2dpZCI6MTgxMzMwOTgsInNvdXJjZSI6MzN9LHsicG9zdGlkIjoiNzEzNTk5NDIxODI1MzUxNjgwIiwiYmxvZ2lkIjoxODEzMzA5OCwic291cmNlIjozM30seyJwb3N0aWQiOiI3MDQ4MTcyOTEyMDkxNDYzNjgiLCJibG9naWQiOjE4MTMzMDk4LCJzb3VyY2UiOjMzfSx7InBvc3RpZCI6IjY5NzI4MTkzMDYyNDk5MTIzMiIsImJsb2dpZCI6MTgxMzMwOTgsInNvdXJjZSI6MzN9LHsicG9zdGlkIjoiNjkwMTM1MDM1NTMzMjMwMDgwIiwiYmxvZ2lkIjoxODEzMzA5OCwic291cmNlIjozM30seyJwb3N0aWQiOiI2Nzg5MDQ4NjM4NjM3ODM0MjQiLCJibG9naWQiOjE4MTMzMDk4LCJzb3VyY2UiOjMzfSx7InBvc3RpZCI6IjY3MTEyMzM5NjY0OTczMDA0OCIsImJsb2dpZCI6MTgxMzMwOTgsInNvdXJjZSI6MzN9LHsicG9zdGlkIjoiNjY2MTI3ODM4OTIyMDE0NzIwIiwiYmxvZ2lkIjoxODEzMzA5OCwic291cmNlIjozM30seyJwb3N0aWQiOiI2NjU3NTc3OTI3NTc1NjMzOTIiLCJibG9naWQiOjE4MTMzMDk4LCJzb3VyY2UiOjMzfSx7InBvc3RpZCI6IjY2NDEyNTMwMjQyMDc1MDMzNiIsImJsb2dpZCI6MTgxMzMwOTgsInNvdXJjZSI6MzN9LHsicG9zdGlkIjoiNjYzNTA0MDA3NTY4OTk4NDAxIiwiYmxvZ2lkIjoxODEzMzA5OCwic291cmNlIjozM31dLCJub3NjcmlwdCI6MX0=&U=OCBNMNPALD&K=9a3cf17c44dfdf8bddc996f40ecf2e719036b81f79df64a57bba2c42cce28cc2&R="></noscript><noscript id="bootloader" data-bootstrap="{"Components":{"PostActivity":[],"NotificationPoller":{"messaging_keys":[],"token":"","inbox_unread":0},"DesktopDashboardLogo":{"animations":[["https:\/\/assets.tumblr.com\/images\/logo\/hover-animations\/1.png?_v=161861acded461bb6e995593a3bae835","https:\/\/assets.tumblr.com\/images\/logo\/hover-animations\/1@2x.png?_v=496a774637302a598c851381d00009b0"]]},"TumblelogIframe":{"unified":true,"variant":null,"isCompact":false,"tumblelogBundleSrc":"https:\/\/assets.tumblr.com\/client\/prod\/standalone\/tumblelog\/index.build.js?_v=fe23fd6389c5ebd8c99ea80f0b1c77ba","tumblelogName":"engineering","isLoggedIn":false,"isFriend":false,"formKey":"","canSubscribe":false,"isSubscribed":false,"tumblelogTitle":"Tumblr Engineering","tumblelogAvatar":"https:\/\/64.media.tumblr.com\/6739c7ae038e9ff935a86a86cd89a27c\/26bb002b0950f666-f6\/s64x64u_c1\/950ed96135bb5a79834be03441cebf74c2e579d2.pnj","tumblelogAvatar128":"https:\/\/64.media.tumblr.com\/6739c7ae038e9ff935a86a86cd89a27c\/26bb002b0950f666-f6\/s128x128u_c1\/8b3e059dc8d66cccb78061ca8d9e7ddb06b2b0a3.pnj","tumblelogHost":"https:\/\/engineering.tumblr.com","hasCustomDomain":false,"isOptica":true,"isCustomTheme":false,"themeHeaderImage":"https:\/\/64.media.tumblr.com\/16d61a423f0ea35748d8de1c8db30bee\/26bb002b0950f666-8e\/s2048x3072\/2177496b02726f8a3da8975056fc1be0b62ec694.png","themeBackgroundColor":"#06cf35","themeTitleColor":"#FFFFFF","themeAccentColor":"#ffffff","brag":true,"canShowAd":true,"isPremium":true,"showLrecAds":false,"showStickyLrecBackfill":false,"showGeminiAds":false,"geminiSectionCodeDesktop":"a10bca9c-0c5d-4a02-ab13-14ab8513d81d","geminiSectionCodeMobile":"ced63809-b609-4aca-96a0-abc099acba6b","currentPageType":"blog","currentPage":1,"searchQuery":"","tag":"","query":"","chrono":false,"postId":"","src":"https:\/\/engineering.tumblr.com\/","postUrl":"","openInPeeprUrl":"https:\/\/www.tumblr.com\/engineering","isBlocked":null,"isAdmin":false,"lookupButtonUrl":"","showSpamButton":false,"showRootPostButton":false,"rootPostUrl":"","showRadarPostButton":false,"radarKeys":"","isUniblocked":false,"isNsfw":false,"isAdult":false,"isSpam":false,"isPrimaryBlog":false,"canEdit":false,"canReblogSelf":false,"showLikeButton":false,"showReblogButton":false,"reblogUrl":"","showMessagingButton":false,"loginCheckIframeSrc":"https:\/\/assets.tumblr.com\/assets\/html\/iframe\/login_check.html?_v=3de94a184d600617102ddd5b48fb36e9","appInstallUrls":{"android":"https:\/\/play.google.com\/store\/apps\/details?id=com.tumblr\u0026referrer=utm_source%3Dtumblr%26utm_medium%3Diframe%26utm_campaign%3Dbn_continue_or_install_cta","ios":"https:\/\/apps.apple.com\/app\/apple-store\/id305343404?pt=212308\u0026ct=bn_continue_or_install_cta\u0026mt=8"},"appOpenReferrer":"bn_header_open_btn","isShowSearch":true,"supplyLogging":[],"secondsSinceLastActivity":-1,"installUrlOpenFailed":{"android":"https:\/\/play.google.com\/store\/apps\/details?id=com.tumblr\u0026referrer=utm_source%3Dtumblr%26utm_medium%3Diframe%26utm_campaign%3Dbn_header_app_open_failed","ios":"https:\/\/apps.apple.com\/app\/apple-store\/id305343404?pt=212308\u0026ct=bn_header_app_open_failed\u0026mt=8"},"loginWallVariant":"small_center"},"CommunityLabels":{"has_community_label":false,"is_single":false,"redirect_target":null}},"Flags":{"features":"eyJmaWx0ZXJfbnNmdyI6dHJ1ZSwibW9iaWxlX3dlYl9nYXRlIjp0cnVlLCJzYWZlX21vZGUiOnRydWUsInNhZmVfbW9kZV9lbmFibGVkIjp0cnVlLCJrZXljb21tYW5kX2F1dG9fcGFnaW5hdGUiOnRydWUsImxvZ2dlZF9vdXRfc2VhcmNoIjp0cnVlLCJrcmFrZW5fd2ViX2xvZ2dpbmdfbGlicmFyeSI6dHJ1ZSwibGl2ZXBob3Rvc193ZWIiOnRydWUsInVzZXJfdGFnX2ZpbHRlcmluZyI6dHJ1ZSwic2FmZV9tb2RlX293bl9wb3N0Ijp0cnVlLCJwcm9qZWN0X3hfYXBwZWFsIjp0cnVlLCJtb2JpbGVfd2ViX3Bob3Rvc2V0cyI6dHJ1ZSwiaGlkZV9kZWZhdWx0X2hlYWRlcnNfYmxvZ19jYXJkcyI6dHJ1ZSwibm90aWZpY2F0aW9uX3JlcGx5X2xpbmtfdG9fbm90ZXMiOnRydWUsInR5cGluZ19pbmRpY2F0b3Jfd3JpdGUiOnRydWUsInR1bWJscl92aWRlb19zcG9uc29yZWRfZGF5Ijp0cnVlLCJjYXB0Y2hhOnVzZV9yZWNhcHRjaGEyIjp0cnVlLCJsaXR0bGVfc2lzdGVyIjp0cnVlLCJsb2dfbGFkeSI6dHJ1ZSwicmVkcG9wX3Bvc3RfZm9ybV9tb2JpbGVfY3JlYXRlIjp0cnVlLCJsZWdhY3lfcG9zdF9mb3JtX2J1dHRvbnNfbGlua190b19yZWRwb3AiOnRydWUsInNob3dfdHNwX2NsaWNrX3Rocm91Z2hfdG9nZ2xlIjp0cnVlLCJkYXJsYV9hZF9mZWVkYmFjayI6dHJ1ZSwic3RhdHVzX2luZGljYXRvciI6dHJ1ZSwiY29udmVyc2F0aW9uYWxfbm90aWZpY2F0aW9ucyI6dHJ1ZSwiZGlzYWJsZV95YWhvb19iX2Nvb2tpZSI6dHJ1ZSwibGl2ZXBob3RvcyI6dHJ1ZSwiY29tbXVuaXR5X2xhYmVscyI6dHJ1ZX0="},"Context":{"name":"default","time":1744118690000,"userinfo":{"primary":"","name":"","channels":[]},"hosts":{"assets_host":"https:\/\/assets.tumblr.com","secure_assets_host":"https:\/\/assets.tumblr.com","www_host":"https:\/\/www.tumblr.com","secure_www_host":"https:\/\/www.tumblr.com","embed_host":"https:\/\/embed.tumblr.com","safe_host":"https:\/\/safe.txmblr.com","platform_host":"https:\/\/platform.tumblr.com"},"language":"en_US","language_simple":"en","assets":"https:\/\/assets.tumblr.com\/client\/prod\/"},"Translations":{"%1$sReport %2$s's post?%3$sIf it violates our user guidelines, we'll remove it.%4$s":"%1$sReport %2$s's reblog?%3$sIf it violates our user guidelines, we'll remove it.%4$s","%1$sReport %2$s's reply?%3$sIf it violates our user guidelines, we'll remove it.%4$s":"%1$sReport %2$s's reblog?%3$sIf it violates our user guidelines, we'll remove it.%4$s","%1$sDelete your tip??%2$s":"%1$sDelete your tip?%2$s","Deleting your tip":"Deleting your tip will only remove it from the replies tab and notes. %1$sYou won't receive a refund of your tip.%2$s For further help contact %3$sTumblr Support%4$s."}}"></noscript><script src="https://assets.tumblr.com/client/prod/standalone/tumblelog/index.build.js?_v=fe23fd6389c5ebd8c99ea80f0b1c77ba"></script></body> </html>