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 sneaker wars, explained

The Hustle

There’s a battle brewing in the Hamptons. A small cohort of residents wants to limit the number of flights that can land in the region’s airport every day, citing excessive airplane noise. One resident said it’s so bad he has to go inside for his afternoon naps.

In today’s email:

  • Sneaker wars: Nike and StockX are beefing.
  • Chart: How TikTok used science to grow fast.
  • McDonald’s: Happy Meals are leaving Russia forever.
  • Around the web: Cuisine nightmares, an inflation guide, a musical dog, and more cool internet finds.

🎧 On the go? Listen to today’s quick podcast to hear Jacob and Rob talk beef – Nike beefing with StockX, Bezos beefing with Biden, Musk beefing with Twitter, McDonald’s taking its beef out of Russia, and more.

The big idea
Nike shoe

A beef over NFTs is shaking the sneaker industry

With the stock market plummeting, alternative assets are gaining steam, and one alternative asset class that’s popped in recent years is sneakers.

One of the biggest players in the collectible sneaker space: StockX.

The sneaker marketplace was valued at $3.8B in 2021 and has hinted at a forthcoming IPO, but a recent lawsuit is pinning the platform against an industry giant — Nike.

Nike’s beef…

… started with NFTs:

  • In January, StockX launched Vault NFTs, which allowed users to purchase NFTs that represent physical products held securely in a StockX vault.
  • In February, Nike sued StockX, claiming the company was “blatantly freeriding” on its trademarks with the Vault NFT product, per Bloomberg.

StockX countered the suit, arguing that Vault NFTs aren’t digital sneakers but listings for physical sneakers.

Now the suit has evolved

Last week, Nike filed to add two new charges — counterfeiting and false advertising:

  • Nike claimed it bought four pairs of counterfeit sneakers from StockX within a two-month period, each including a receipt claiming “100% authenticity.”
  • StockX countered, calling Nike’s claims a baseless attempt to revive its struggling trademark case.

StockX included a couple other juicy details in its rebuttal. First, that Nike’s own brand protection team has approved of StockX’s authentication system, and that several Nike executives actively buy and sell shoes on the platform.

So what does this mean for the future of sneakers?

Michael Sykes, who writes The Kicks You Wear, a must-read newsletter covering the sneaker industry, told The Hustle he believes the biggest implication of the suit will be the future of virtual goods:

“Counterfeiting claims are sexy, but StockX vs. Nike is about NFTs first and foremost. This case will set legal precedents on what fair use is in a virtual world, which is something every industry needs to be watching intently.”

Nike, which made its first foray into NFTs in December by acquiring RTFKT, a digital shoe-maker, might not rest until it can keep all its digital sneaker sales for itself.

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

Renegotiating: Elon Musk said a Twitter deal at a lower price is “not out of the question.” The stock dropped 8%+ amid investor fears that he would back out of the purchase.

Robot delivery: Uber Eats launched two autonomous delivery trials in Los Angeles. The company is working with two tech partners, Motional and Serve Robotics, and is starting small with select restaurants.

Getting hostile: In April, Spirit Airlines rejected JetBlue’s offer to buy the company in favor of a merger with Frontier Airlines. In response, JetBlue launched a hostile takeover by asking shareholders to vote against the Frontier deal. JetBlue argued it is offering a 60% premium to Frontier.

Template time: When job hunting, a crisp cover letter can separate you from the pack. Check out these 5 timeless frameworks to get your next application on track.

ICYMI: Yesterday, we shared tactics to fight off the Sunday scaries, but a broken link got in the way. In case you missed it, check out expert tips to fight the scaries and reclaim your weekend here.

India has restricted wheat exports amid a heatwave and high local prices. This, combined with a loss of exports from the Black Sea region due to the war in Ukraine, could cause global prices to increase. #ecommerce-retail

Cool: HelioWater is a French company that uses solar power and giant spheres to purify seawater into drinking water. #clean-energy

Uh, okay: Researchers developed a VR mask for… breathing? Users can blow out digital birthday candles or experience resistance training in scenarios where breathing would be hard. #emerging-tech

In the first criminal prosecution of its kind, the DOJ has filed a complaint against an American accused of transferring $10m+ in bitcoin to a country sanctioned by the US. #fintech-crypto

Seller woes: Amazon has $2B in extra warehouse space, and some third-party sellers claim they’re paying the price. Amazon blames rising fees on inflation and fuel. #big-tech

Chart
percentage of US on social platforms

Singdhi Sokpo

How TikTok used science to grow fast

Last year, the average US TikTok user spent the equivalent of nearly two weeks in the app.

Before the pandemic, it felt like few people had heard of it. Today, 36% of all Americans ages 12+ are using it.

How did that happen?

In physics, Bernoulli’s principle explains why it’s faster to inflate a bag by blowing from near it, not directly into it, because it pulls in surrounding air. (Here’s an explainer.)

TikTok took advantage of this by incrementally increasing its video length to 10 minutes over the last couple of years, up from its original 15-second limit.

Paired with a user experience psychologists say is no different than a Vegas slot machine, the move helped TikTok pull in more content, more eyeballs, and more money.

Speaking of money…

Ad dollars follow eyeballs, and data from Similarweb shows TikTok’s ads site saw a 200% increase in Q1 traffic. This year, the company’s expected to triple revenue to $12B.

But it has a lot to figure out. It’s tinkering with creator monetization. Data privacy is top of mind — heck, it’s banned in India. And former employees report navigating 85 hours of meetings per week outside of their normal work. Eighty-five!

Share on Facebook Share on Twitter Send as email to a friend View on our website
McDone
McDonald’s Russia restaurant

So long, Bolshoi Mak

After 30+ years, McDonald’s and Russia are over.

Following the invasion of Ukraine, McDonald’s temporarily closed its 800+ Russian stores at a loss of ~$127m, split between Russian employees’ continued salaries and wasted inventory, in Q1.

But now, the fast-food chain has decided that owning stores in Russia is “no longer tenable, nor… consistent with McDonald’s values.”

Russia’s first McDonald’s opened in 1990…

… back when the country was still the Soviet Union. It took 14 years of negotiation, but the 900-seat restaurant — then the largest McDonald’s in the world — was an instant hit.

Long lines formed in Moscow for the “Bolshoi Mak” — the Big Mac — despite the relatively high prices compared to Soviet wages. McDonald’s sold 34k burgers that first day.

What’s next?

McDonald’s plans to sell its Russian stores — ~15% of which are franchises — to a local buyer. As a result, the company expects to write off a $1.2B-$1.4B charge.

As for the stores, they’ll be “de-Arched,” which means removing the McDonald’s name, logo, branding, and menu.

While McDonald’s complete exit is unique…

… other restaurant chains have also halted business in Russia:

  • Starbucks and the licensed partner that operates its 130 Russian stores agreed to pause operations
  • Yum Brands has suspended operations at its 1k KFC and 50 Pizza Hut franchises

It’s complicated for Mickey D’s rival, Burger King: Parent company Restaurant Brands International wants to close its 800 Russian locations, but can’t due to a legal contract with its main franchisee, who refuses. Instead, it’s trying to offload its 15% stake.

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

⚖️ On this day: In 1954, in Brown v. Board of Education of Topeka, SCOTUS ruled that racial segregation in public schools was unconstitutional. The case revolved around Linda Brown, a Black student who was denied access to her local elementary school.

🎮 Useful: A database of 1.3k+ open-source games, and 300+ game engines and tools on GitHub.

🤢 Huh: Here’s a deep, kind of unsettling dive into cuisine that involves suspending food in gelatin.

💰 How to: A guide to figuring out how much inflation is affecting you based on how much you spend and on what.

🎤 Aww: And now, a French bulldog who loves to sing.

Meme of the day
TikTok meme

Speaking from experience. (Source: imgflip.com)

How did you like today’s email?
Today’s email was brought to you by Jacob Cohen, Juliet Bennett Rylah, and Rob Litterst.
Editing by: Jennifer “NFTs on my feet” Wang.

Was this email forwarded to you? Sign up here.

PODCAST JOBS CONTACT US
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​

Psst

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?

[class^="wpforms-"]
[class^="wpforms-"]
[email-submission-form button-text="Join Free" include-trends-opt-in="true" success-url="https://thehustle.co/signup" default-source="thehustleco" default-medium="home-exit-popup" default-campaign="home-page" form-id="exit-popup-general" optinmonster-conversion="true" redirect-after-signup="https://thehustle.co/thank-you-hub/"]
<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'); Array.prototype.forEach.call(wrappingDivs,wrappingDiv => { var sp = new URLSearchParams(window.location.search); 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; error.style = ''; } }); 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'; captchaVersion.name = 'g-recaptcha-response-v2'; captchaVersion.value = 'true'; subForm.appendChild(captchaVersion); var captchaEl = document.createElement('div'); captchaEl.id = 'verify-your-humanity'; subForm.prepend(captchaEl); var captchaApiScriptEl = document.createElement('script'); captchaApiScriptEl.src = 'https://www.recaptcha.net/recaptcha/api.js?onload=onloadCallback&render=explicit'; 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 => { el.style.display = 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); checkbox.click(); } }) } 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="https://cms.thehustle.co/api/v1/contacts/wordpress_create" 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="https://thehustle.co/signup?redirect_after=https%3A%2F%2Fthehustle.co%2Fthank-you-hub%2F"> <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="http://www.w3.org/2000/svg"><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>