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

🇨🇦 Toronto’s tech scene, explained

The Hustle

We get it. Most people don’t need an inspirational quote, they just need a coffee. Whatever the case, we’re on the hunt for some great motivational quotes or just general words to live by — and we want to hear your favorites. Let us know here.

In today’s email:

  • Toronto: How it became a massive tech hub.
  • Chart: Some products are shrinking, but prices are the same.
  • Puppet wranglers: They’re crucial to their industry, but have no union.
  • Around the web: A water sommelier, inclusive language, a very cool dog, and more fun internet finds.

🎧 On the go? Listen to today’s 10-minute podcast to hear about the IRS’s absolutely bonkers call volume, Porsche’s luxury EV lounges, the economics of empty chip bags, Toronto’s tech transformation, and more.

The big idea
Toronto cityscape

Toronto is the next Silicon Valley, eh?

Miami and Austin have each been hyped as the next Silicon Valley — sunny hubs where people can work from the pool or beach.

But data suggests a city along the frozen shores of Lake Ontario has them beat.

Per The New York Times, Toronto is growing faster than both cities, and now hosts the 3rd-largest tech hub in North America, behind New York and Silicon Valley.

How did it get there?

While you might think workers are flocking to Toronto to try to hang out with Drake, the city’s rise is actually rooted in its infrastructure:

  • Universities: The University of Toronto and the University of Waterloo are known for churning out top talent in research and engineering
  • Corporate “anchors”: Tech giants with offices in the city have helped establish it as a hub, including Canada’s own Shopify, Google, Apple, Stripe, and yours truly

This combination of academia and Big Tech has fostered innovative collaborations, including Uber’s self-driving car lab and Google’s “neural networks” lab — both in partnership with University of Toronto professors.

Another reason for Toronto’s emergence?

Immigration policy

Canada’s immigration policy favors economic immigrants (AKA people selected because they can contribute to Canada’s economy), making it easier for workers to immigrate to Canada than the US, where immigration policy prioritizes family reunification.

This has helped fuel a 5.2% increase in Canada’s population from 2016 to 2021, 2x that of the US.

It’s also helped make Toronto a truly international city with ~50% of its residents born outside the country.

Toronto has a long way to go…

… to catch the real Silicon Valley. Between 2021 and 2022, Toronto startups garnered $5.4B in investments compared to $132B for startups based in Silicon Valley.

But if you’re already packing your bags, ready to head north, don’t forget your winter jacket. It could get chilly up there, eh?

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

Google launched new Maps features to help last-mile delivery drivers and companies get around more efficiently, including near-real-time route planning. #ecommerce-retail

Whoa: GE built the biggest wind turbine blade in the world at 203 feet long. The hope is that this design can be recycled, avoiding waste in the future. #clean-energy

SpaceX has activated 5k+ Starlink terminals in Ukraine, which citizens, officials, and tech companies are using to access the internet. #emerging-tech

Tax time: The IRS reminded taxpayers to remember to answer its new yes-or-no question about selling, buying, or trading virtual currency. #fintech-crypto

Match Group’s new dating app, Stir, is geared toward single parents. Users can set “me time” (e.g., time outside of parental obligations) to coordinate a date. #big-tech

shrinkflation chart

Singdhi Sokpo

The shrinkflation phenomenon

Ever open a massive bag of chips only to find, like, 6 chips inside? Well, now you can expect even fewer.

Shrinkflation — reducing the size or quantity of a product instead of increasing the price — is a growing trend.

Take Snyder’s Honey Mustard & Onion pretzels. Their new bag may boast “big flavor,” but its weight has dropped from 12 ounces to 11.25 ounces.

Consumer advocate Edgar Dworsky identifies shrinkflation instances like these on his site, MousePrint, with recent exposés involving Sun-Maid Raisins, Chobani Flips, and Dove Shampoo.

Even chains like Domino’s are taking part. In January, the company said it’s dropping the number of wings in its $7.99 special from 10 to 8.

Want to vent? There’s a shrinkflation subreddit where 20k+ people discuss this daily.

Share on Facebook Share on Twitter Send as email to a friend View on our website
Masters of Puppets
Puppet wrangler

Puppet wranglers want a fair deal

Puppetry seems like a jovial profession, but per The Hollywood Reporter, it’s anything but for some employees.

The Jim Henson Company is the biggest name in puppetry — there’d be no Muppets without it. But its puppet wranglers say they’ve been unfairly treated for years and are pushing to unionize.

What exactly is a puppet wrangler?

They not only build puppets, but act as their hair, makeup, costume, and props department. A 2018 Market Watch video shows a busy “Sesame Street” wrangler repairing and touching up puppets on set.

The job is so specified that there are ~25 full-time wranglers worldwide, yet they’ve never had a union.

Wranglers told THR that they’re often seen as “lesser than” puppeteers, who are members of SAG-AFTRA, Hollywood’s union for performers.

But that’s not their only complaint:

  • Many wranglers are considered freelance and receive no benefits (they would receive guild benefits if they unionized)
  • They work with potentially hazardous materials — a SAG-AFTRA safety consultant told THR that The Henson Company doesn’t hold proper safety seminars
  • Builds are often understaffed, underfunded, and disorganized

The Henson Company — now headed by founder Jim Henson’s children, Brian and Lisa Henson — has denied these accusations via its attorneys.

While a union could solve some of the alleged issues…

… it’s not clear which one the wranglers would join.

SAG would put them with puppeteers. But others feel like they should go into a craft union with costumers, while still others think a props union would be best.

There are pros and cons to each, but given recent concerns around Hollywood’s working conditions, insiders say it’s the perfect time to finally negotiate.

BTW: A puppet wrangler explains how the puppets in Broadway’s “Avenue Q” work.

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

Bearable’s guide to 300k users (via Reddit)

James Saady launched his personal wellness app, Bearable, in 2019 and bootstrapped it to 300k+ users and profitability.

Today, he’s converting 4%-5% of free users to premium (2x the industry average).

Keys to his community-driven success

We bear much more. Get Trends access for $1 to peruse our market signals, niche deep dives, and 17k-member community forum.


🏬 On this day: In 1954, the world’s largest shopping mall at the time opened in Southfield, Michigan, with a Hudson’s, 80 retail spaces, and art. But after decades of decline, the final store closed in 2015.

🚰 Huh: Martin Riese is a water sommelier — yes, for real. His passionate TikToks explain the differences between various waters, from still to sparkling.

🚶 Cure boredom: Recently, we showed you a site where you can experience driving in cities across the world. Now, here’s one for taking a stroll.

😊 How to: From Harvard Business Review, a guide to using more inclusive language in your organization.

🐶 Aww: And now, a dog that’s bad to the bone.

Meme of the day
Drake sitting on a tower

The real reason to move to Toronto? Legend has it, Drake is still sitting up there to this day. (Source: Twitter)

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>