You're viewing an email archive of The Hustle newsletter. Join free to receive the 5-minute newsletter keeping 2M+ innovators in the loop.

⏭️ The wild history of Netflix’s buttons

The Hustle

Astronomers have confirmed that the Bernardinelli-Bernstein comet’s icy nucleus is the largest ever observed at ~80 miles across — bigger than Rhode Island and 50x larger than usual. It’s headed toward Earth, but don’t worry — at its closest point ~2031, it’ll miss us by 1B+ miles.

In today’s email:

  • Buttonomics: The numbers behind Netflix’s buttons.
  • Chart: Airbnb’s gigantic scale and cleaning fee hatred.
  • Personal chefs? There’s an app for that.
  • Around the web: On-demand excuses, competitive sitting, texts as art, and more cool internet finds.

🎧 On the go? Listen to today’s podcast to hear about Meta’s AR glasses ambition, kites as clean energy, and what’s up with Airbnb’s high cleaning fees.

The big idea
Netflix buttons

Zachary Crockett

The economics of Netflix’s buttons

On Monday, Netflix released a “Two Thumbs Up” button — allowing users to indicate when they really like something — after nearly a year of testing.

Netflix buttons like these may seem simple, but their backstories and impacts are far from it — especially for 2. Let’s discuss.

On your average day…

… Netflix’s “Skip Intro” button is pressed 136m times. Add it up, and 195 cumulative years are saved by skipping intros daily.

Oddly enough, the idea came ~6 years ago when Cameron Jonhson, director of product innovation at Netflix, was watching “Game of Thrones.”

For the uninitiated, the “Game of Thrones” title sequence is beautiful, but long AF. (Napkin math: The ~2-minute intro accounts for ~4% of episodes’ total lengths in season one.)

Johnson sometimes skipped ahead, though often made the painful error of skipping too far.

And he wasn’t alone

His team discovered that Netflix viewers were also manually skipping ahead in the first 5 minutes of shows 15% of the time.

After running tests and landing on “Skip Intro” as the name, reviews were phenomenal. One Netflix engineer quipped, “I’m not sure that if you put a button that said ‘free cupcake’ that it would get more clicks.”

Netflix formally added Skip Intro to TV in 2017.

The other button…

… is the Netflix button itself, that with one touch sounds the budummmm and propels you into Netflixland.

On Jan. 4, 2011, when Netflix had just 16m members in North America, the company announced a partnership to place the button smack-dab in the middle of many TV remotes.

  • For Netflix, it meant every time people saw a remote, they were either reminded how easily they could use Netflix or that they weren’t a member.
  • For TV manufacturers, it meant payments from Netflix. Given the win-win, nowadays it’s common practice and costs ~$1 per remote.

Speaking of buttons, we want to know — what’s your favorite?

Share on Facebook Share on Twitter Send as email to a friend View on our website

D2C bedding and towel brand Brooklinen wants to open 25-30 physical stores by 2024. It currently has 2 in NYC with plans to open in LA, Philly, Portland, and SF this year. #ecommerce-retail

Mattel’s 1st certified carbon neutral toys include building blocks for children and a Matchbox Tesla. #clean-energy

TikTok’s new Effect House lets users make AR camera effects, which other users can then incorporate into their videos. #emerging-tech

There’s an NFT vending machine in Manhattan. Shoppers buy NFTs with their debit or credit cards, then get a box with a code redeemable on digital marketplace Neon. #fintech-crypto

Ouch: US Amazon warehouses see over 2x the rate of serious injuries as other warehouses. In 2021, Amazon employed 33% of all US warehouse workers but accounted for 49% of industry injuries. #big-tech

MFM: Sam Parr thinks Canva is going to have a huge IPO. #mfm

Airbnb vs hotel chains

Singdhi Sokpo

As Airbnb grows, so do cleaning fees

Airbnb always looks like a great deal. Until you realize the cleaning fee for a 2-bedroom costs an extra $500.

Since Airbnb was founded in 2008, relative Google search interest for “cleaning fees” is up 212%, and ~85% of US short-term rentals now have them, per The Wall Street Journal.

Some cleaning fee stats:

  • Fees increased 9.8% between 2020 and 2021, and then another 6.6% by 2022.
  • The average fee for 1-bedroom properties is $73 (up from $59 in 2020), and $410 for a 5-bed coastal property.

Who’s to blame? Inflation and pandemic-era sanitation, no doubt.

Still, some customers think the fees are just unreasonably high. And can you blame them?

Share on Facebook Share on Twitter Send as email to a friend View on our website
Free Resource

5 sharp cover letter templates for job hunters

When you’re looking for work, you’re up against the world.

Competition tends to be intense. But the cover letter can separate you from the pack, and be the first-impression catalyst you need to snag that elusive interview.

There’s something about a touch of old-school professionalism that often just fits. HubSpot experts assembled 5 timeless cover letter templates for you to complete with your personal context.

Professional, fill-in-the-blank cover letter templates:

  • Standard cover letter
  • Entry-level cover letter
  • Data-driven cover letter
  • Referral cover letter
  • Skimmable cover letter

Take these frameworks, play some Mad Libs, shoot your shot. Godspeed.

5 classic cover letter templates →
Couch potato
Savour app

Personal chefs? There’s an app for that

Food delivery is a $150B global market, which means millions of us are trying as hard as we can to get a decent meal without ever leaving the house.

But one issue with OFH (ordering from home) is that the fries often show up soggy. Uber Eats takes ~30 minutes for delivery, and they’re considered the quickest delivery app, per CNET.

So, how do you get fresh hot food at home without cooking or leaving the house?

Bring the chef to you, of course

Hiring a personal chef isn’t as difficult as you might think (although it is still very costly).

Several platforms have emerged where customers can book private chefs to cook a meal in their own kitchens, including:

  • Yhangry, a British startup with an extensive menu selection
  • Take a Chef, which lets customers hop in and help with the cooking
  • Savour, whose roster of big-name chefs can turn your dinner table into a fine dining experience

Choose a date, time, type of meal, and a few other small details, and voila.

Like ghost kitchens…

… the pandemic accelerated the personal chef biz.

While ghost kitchens help restaurants sell takeout and delivery with less overhead than a traditional dining room, online platforms have helped chefs freelance outside the restaurant.

Demand for personal chefs also increased as customers sought ways to celebrate birthdays or anniversaries at home.

Will it last? Yhangry co-founder Siddhi Mittal told TechCrunch its chefs were still in demand as restrictions loosened because people like hanging out with friends in a relaxed setting.

Plus, no soggy fries.

Share on Facebook Share on Twitter Send as email to a friend View on our website

💨 On this day: In 1935, the “Black Sunday” dust storm swept across the Dust Bowl region. The storm was so intense that some thought it was the apocalypse.

🐔 Haha: Use this repository of sounds — construction, crying baby, escaped chicken — to get off a phone call that’s gone on too long.

📱 Art: Photographer Jeff Mermelstein’s book #nyc consists of photos of texts he surreptitiously snapped from other people’s phone screens.

🪑 That’s interesting: Robby Silk is a competitive chair-sitter, lounging for hours with no tech in extreme environments. At present, he is also the only competitive chair-sitter.

🐼 Aww: Speaking of sitting, here’s a panda on a Magis Spun chair.

Meme of the Day

Our sympathies. (Source:

How did you like today’s email?
Today’s email was brought to you by Jacob Cohen, Juliet Bennett Rylah, and David Nichols.
Editing by: Mark “Budummm” Dent.

Facebook Youtube Instagram Twitter
25 FIRST ST. 2ND FLOOR, CAMBRIDGE, MA 02141, UNITED STATES   +1 888 482 7768
Never want to hear from us again? Break our hearts and unsubscribe.
The Hustle logo

Get the 5-minute roundup you’ll actually read in your inbox​

Business and tech news in 5 minutes or less​


How'd Bezos build a billion dollar empire?

In 1994, Jeff Bezos discovered a shocking stat: Internet usage grew 2,300% per year.

Data shows where markets are headed.

And that’s why we built Trends — to show you up-and-coming market opportunities about to explode. Interested?

[email-submission-form button-text="Join Free" include-trends-opt-in="true" success-url="" default-source="thehustleco" default-medium="home-exit-popup" default-campaign="home-page" form-id="exit-popup-general" optinmonster-conversion="true"]
<script type="text/javascript"> var onloadCallback = function() { grecaptcha.render('verify-your-humanity', { 'sitekey' : '6LdddrcZAAAAALyttpvOqiwQGwq5BNhgDz4tMQGE' }); }; function getCookieValue(a) { var b = document.cookie.match('(^|[^;]+)\\s*' + a + '\\s*=\\s*([^;]+)'); return b ? atob(decodeURIComponent(b.pop())) : ''; } function getCookie(name) { var cookieArr = document.cookie.split(";"); for(var i = 0; i < cookieArr.length; i++) { var cookiePair = cookieArr[i].split("="); if(name == cookiePair[0].trim()) { return decodeURIComponent(cookiePair[1]); } } return null; } function setHiddenFieldValue(wrappingDiv, searchParams, className, utmName, cookieName, defaultValue) { var el = wrappingDiv.getElementsByClassName(className)[0]; var existingVal = el.getAttribute('value'); if (utmName == 'ref') { var newVal = searchParams.get(utmName) || getCookie(cookieName); } else { var newVal = searchParams.get(utmName) || getCookieValue(cookieName); } if ((existingVal == null || existingVal == '' || existingVal == defaultValue) && (newVal != null && newVal != '')) { el.setAttribute('value', newVal); } } function setHiddenFieldValueFromUtm( wrappingDiv, searchParams, className, utmName, defaultValue ) { var el = wrappingDiv.getElementsByClassName(className)[0]; if (el != null) { var existingVal = el.getAttribute("value"); var newVal = searchParams.get(utmName); if (newVal != null && newVal != "") { el.setAttribute("value", newVal); } } } function initForm() { var wrappingDivs = document.getElementsByClassName('email-submission'); wrappingDivs.forEach(wrappingDiv => { var sp = new URLSearchParams(; setHiddenFieldValue(wrappingDiv, sp, 'funnel-source', 'utm_source', 'funnel_source', 'thehustleco'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-campaign', 'utm_campaign', 'funnel_campaign', 'home-page'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-medium', 'utm_medium', 'funnel_medium', 'home-exit-popup'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-referral', 'ref', 'funnel_referral', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-a', 'a', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-c', 'c', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-o', 'o', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-oc', 'oc', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-e', 'e', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-f', 'f', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-r', 'r', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-t', 't', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s1', 's1', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s2', 's2', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s3', 's3', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s4', 's4', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s5', 's5', ''); var error_message = getCookieValue('validate-email-message'); if (error_message && error_message.trim() != '') { var error = wrappingDiv.getElementsByClassName('funnel-error')[0]; var prev_email = getCookieValue('funnel_email'); error_message = prev_email + " is not valid. Please try again"; error.innerHTML = error_message; = ''; } }); if (false) { initCaptchaFormV2(); } } function initCaptchaFormV2() { var v3RecaptchaResponseEl = document.getElementById('recaptcha-response-v3'); v3RecaptchaResponseEl.parentNode.removeChild(v3RecaptchaResponseEl); var wrappingDiv = document.getElementById('email-submission'); var subForm = wrappingDiv.getElementsByClassName('email-submission')[0]; var captchaVersion = document.createElement('input'); captchaVersion.class = 'g-recaptcha hidden-input'; captchaVersion.type = 'hidden'; = 'g-recaptcha-response-v2'; captchaVersion.value = 'true'; subForm.appendChild(captchaVersion); var captchaEl = document.createElement('div'); = 'verify-your-humanity'; subForm.prepend(captchaEl); var captchaApiScriptEl = document.createElement('script'); captchaApiScriptEl.src = ''; captchaApiScriptEl.async = true; captchaApiScriptEl.defer = true; document.head.appendChild(captchaApiScriptEl); } function appendCheckboxes_email_submission() { var wrappingDiv = document.getElementById('email-submission'); var optInDivs = wrappingDiv.querySelectorAll('.trends-opt-in'); optInDivs.forEach(el => { = null; if (el.getElementsByClassName('trends-opt-in-checkbox').length < 1) { var checkbox = document.createElement('input'); checkbox.setAttribute('id', 'trends_opt_in_email_submission'); checkbox.setAttribute('class', 'trends-opt-in-checkbox'); checkbox.setAttribute('type', 'checkbox'); checkbox.setAttribute('name', 'trends_opt_in'); var label = document.createElement('label'); label.setAttribute('for', 'trends_opt_in_email_submission'); label.setAttribute('class', 'trends-opt-in-text'); label.textContent = "Yes, I'd like to receive additional emails on hot business opportunities from Trends, by the Hustle"; el.appendChild(checkbox); el.appendChild(label);; } }) } window.addEventListener('DOMContentLoaded', (event) => { initForm(); if (true) { appendCheckboxes_email_submission(); } }); </script> <div class="email-signup" id=email-submission> <div class="funnel-error" style="display:none;"></div> <form class="email-submission " id="exit-popup-general" action="" method="post" autocomplete="email"> <div class="email-form-wrap"> <input class="funnel-source hidden-input" type="hidden" name="source" value="thehustleco"> <input class="funnel-campaign hidden-input" type="hidden" name="campaign" value="home-page"> <input class="funnel-medium hidden-input" type="hidden" name="medium" value="home-exit-popup"> <input class="funnel-form-id hidden-input" type="hidden" name="form-id" value="exit-popup-general"> <input class="funnel-referral hidden-input" type="hidden" name="referral_code"> <input class="funnel-fail-url hidden-input" type="hidden" name="fail_url" value=""> <input class="funnel-a hidden-input" type="hidden" name="a" value=""> <input class="funnel-c hidden-input" type="hidden" name="c" value=""> <input class="funnel-o hidden-input" type="hidden" name="o" value=""> <input class="funnel-oc hidden-input" type="hidden" name="oc" value=""> <input class="funnel-e hidden-input" type="hidden" name="e" value=""> <input class="funnel-f hidden-input" type="hidden" name="f" value=""> <input class="funnel-r hidden-input" type="hidden" name="r" value=""> <input class="funnel-t hidden-input" type="hidden" name="t" value=""> <input class="funnel-s1 hidden-input" type="hidden" name="s1" value=""> <input class="funnel-s2 hidden-input" type="hidden" name="s2" value=""> <input class="funnel-s3 hidden-input" type="hidden" name="s3" value=""> <input class="funnel-s4 hidden-input" type="hidden" name="s4" value=""> <input class="funnel-s5 hidden-input" type="hidden" name="s5" value=""> <input class="funnel-success-url hidden-input" type="hidden" name="success_url" value=""> <input id="recaptcha-response-v3" class="g-recaptcha hidden-input" type="hidden" name="g-recaptcha-response" value=""> <div class="signup-icon" style="display:none;"> <svg width="24" viewBox="0 0 24 24" fill="none" xmlns=""><path d="M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6Zm-2 0-8 5-8-5h16Zm0 12H4V8l8 5 8-5v10Z" fill="#848B92"></path></svg> </div> <input class="signup-email" type="email" name="email" placeholder="Your email address" required autocomplete="email"> <input class="email-submit om-trigger-conversion" type="submit" value="Join Free"> </div> <div class="validate-mistake-emails-message" style="display:none;"></div> <div class="trends-opt-in" style="display:none;"></div> <div submit-success> <template type="amp-mustache"> <p class="c-message c-message--success">Thank you for subscribing.</p> </template> </div> <div submit-error> <template type="amp-mustache"> <p class="c-message c-message--failed">Your submission failed. Please try again!</p> </template> </div> </form> </div>