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

📺 TikTok’s TV bet

The Hustle

Yesterday, a panel of experts at the National Toy Hall of Fame inducted American Girl Dolls, the board game Risk, and, last but not least, sand into the hall’s class of 2021. “Sand has a global reach that most toy manufacturers would envy,” chief curator Christopher Bensch explained.

Today’s rundown:

  • TikTok TV: Can the social app translate to the big screen?
  • Minimum wage: Why even the highest rates aren’t enough.
  • Plow problems: Brace for a shortage of snowplow drivers.
  • Around the web: The app turning to-do lists into a RPG, a Twitter account posting random restaurant photos, and more.

Let’s do it.

The Big Idea
TikTok TV

TikTok built a $400B+ tech giant on the smartphone. Can it transition to TV?

It’s November, which means you’re allowed to put this 2-hour Christmas-themed YouTube video of a burning yule log on your TV.

If you’re looking for a bit more action, TikTok — the short video app owned by the $400B+ Chinese firm ByteDance — has the answer.

TikTok is now on Amazon’s Fire TV device

According to The Wall Street Journal, the collaboration is a big opportunity for TikTok. The app already has 1B+ monthly users, but to expand it’ll have to find new audiences.

The TV screen offers a chance for younger TikTok users to share viral vids with their less tech savvy family members.

There’s a catch, though

Much of the TikTok magic doesn’t translate to the TV screen, per WSJ:

  • Dimensions: TikTok is optimized for the vertical mobile experience. TVs default to horizontal, which leaves unattractive gaps on either side of the video on TVs.
  • No swiping: The average TikTok user spends 52 minutes a day on the app, encouraged by the phone’s infinite swipe experience. On the Fire TV, you click a controller like changing channels.
  • Not personalized: TikTok is known for its eerily precise algorithm that feeds users exactly what they want. Since TV is a communal experience, the recommendations will not be as accurate.
  • No comments: One of the most wild parts of the TikTok app is the comments section (you guessed it: TV users can’t comment).

TikTok’s TV play…

… coincides with a corporate reorganization at ByteDance. Its co-founder and former CEO Yiming Zhang just stepped down as chairman.

The move comes amid a crackdown from the Chinese government that’s led to the loss of power from leaders at the country’s biggest tech firms: Alibaba, Kuaishou, JD, and Pinduoduo. 😬

At this rate, TV optimization may be the least of TikTok’s worries.

Read More: Here’s our previous coverage on “The secret sauce behind TikTok’s recommendation algorithm”

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

Bed Bath & Beyond has partnered with Kroger to offer its products in grocery stores and on Kroger’s website. #ecommerce-retail

Massachusetts will test using solar panels to absorb highway noise. The 1st panels will produce an estimated 800 megawatt-hours annually, enough to power ~100 homes. #clean-energy

Oh, OK: The Australian army is getting remote-controlled, bulletproof attack robots that shoot targets or, as a last resort, blow up. #emerging-tech

For crypto newbs, apps like PayPal, Venmo, and CashApp may offer a simpler starting point. #fintech-crypto

Finally: Google is beta testing a better way to locate files in Drive. Users can sign up to try it now. #big-tech

The Hustle’s Steph Smith contemplates if companies should openly share salaries. #hustle-picks

Wage Wars
minimum wages in big cities

A California city approved the highest minimum wage in the US… but is it enough?

On Thursday, West Hollywood, California, voted to increase the minimum wage to $17.64/hour, the highest in the US and more than 2x the federal rate of $7.25/hour. But according to MIT’s living wage calculator, even the highest-paying cities might not be paying enough.

The new wages take effect Jan. 1, 2022, for hotel workers — in line with surrounding Los Angeles — and incrementally for everyone else.

Why West Hollywood?

West Hollywood is a small, 1.9-square-mile city within Greater Los Angeles, population 36k+ — and it’s expensive!

Per a staff report, City Council considered MIT’s living wage calculator, which takes into account expenses like housing, food, and taxes. It says the living wage for a single Los Angeles County resident with no children would be $19.35/hour.

But this figure is based on average monthly housing costs of $1,279. In West Hollywood, the average 1-bed rents for $1.8k-$2k per month.

Drama: “Real Housewives” star Lisa Vanderpump was one of several West Hollywood business owners to oppose the wage hike. But she’s also being sued for allegedly not paying her employees the existing minimum wage.

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

Brace for the snowplow driver shortage of 2021

Snowplows are generally a welcome sight — unless you’re a grade schooler, and then they’re the only thing standing between you and a snow day.

In snowy regions of the Midwest and Northeast, officials are reporting record driver shortages for snowplows and salt trucks, which keep roads safe after winter storms.

One reason for the shortage is a competitive market

Snowplow drivers need a commercial drivers license (CDL). In many cases, they are employed by the state and often have fixed salaries.

Given the shortage of drivers in other sectors, plow drivers are being lured away to private companies offering higher rates and bonuses.

This has led to unprecedented shortages, including 6 states that are short 100+ drivers on interstates and highways.

Transportation officials are pulling out all the stops

Proposed solutions include:

  • Raising wages, which Michigan’s Department of Transportation plans to do if the shortage continues
  • Hiring private contractors, which Albany, New York, expects to use for 40% of the city’s snow

If none of these solutions work, most officials are confident the snow will be cleared eventually,  but it will take longer than usual — which likely means more snow days.

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

​​🖋 On this day: In 2007, members of the Writers Guild of America went on strike in LA and NYC, shutting down production on 60+ shows and costing the LA economy $3B.

🧙‍♀️ Useful: If you find most productivity apps boring, Habitica gamifies your to-do list by turning it into a Role-playing Game (RPG). You can even unlock in-game rewards for completing your goals.

🍜 Huh: A Twitter account posts random photos of restaurants around the world. And people love it.

📱 How to: Many places require proof of vaccination, but the card doesn’t quite fit in your wallet. So, here’s how to put your card on your phone.

🤫 That’s interesting: Haven’t you always dreamed of finding a hidden passageway behind a bookcase? Well, this Sussex man did in his 500-year-old home.

🤖 Wow: You can do the robot dance at your cousin’s wedding or, as it turns out, competitively. At the 7:40 mark in this video, dancer Jaja Vankova blows our minds!


(A roundup of our best reads from the last couple weeks…)

🎃 Feature story: The economics of pumpkin patches

📊 The CEO-average Joe pay gap, visualized

🥽 Metaversus: Microsoft wants to beat Meta at its own game

💈 The barbershop app proving barbers are big business

🥤 Is AI the future of drive-thrus?

Shower Thoughts
  1. “One of the safest ways to cross a minefield is via pogo stick.”
  2. “The last kid to leave the school bus knows where everyone lives.”
  3. “If your apartment door has a mail slot, you live in a mailbox.”
  4. “If you endure something painful, people think you’re tough. If you endure something gross, people just think you’re gross.”
  5. “The world is going to smell very different once electric vehicles become commonplace.”
via Reddit

How did you like today’s email?

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>