Interview: Foxtrot CEO Mike LaVitola on reinventing the convenience store

Mike LaVitola started Foxtrot to scratch his own itch. We caught up with him about redefining what convenience stores can be.

How did Foxtrot get started?

About 7 years ago, my co-founder, Taylor, and I were living in Chicago, and realized all of our favorite neighborhoods had cool bars, restaurants, and shops, but at the corner of every block was a big, multinational convenience store.

We thought there was an opportunity to build a better retail experience, but we actually started online only. The first version of the company was an “under-an-hour” delivery service for all these food items we were excited about. We ran it that way for 3 years and found that people loved the product mix and valued the convenience.  

From there, we realized we needed to get ahold of our own inventory, rather than just being a 3rd-party delivery service, and that’s when we opened our 1st retail location. It immediately became this really popular place in the neighborhood. People would pop in for an espresso before work, or a glass of wine after work.

When we looked at our delivery data, we realized the bulk of our deliveries were happening right around the store. It was clear that on-demand convenience was a thing, but the bulk of convenience shopping was still happening in person. It became clear that someone needed to give convenience shopping a better retail experience — so that’s what we did.

What would you say are the biggest differences between Foxtrot and 7-Eleven?

We realized that chains like 7-Eleven know which categories drive frequency, so we followed their lead with the categories, but merchandised them with products we love. 

Beyond that, it’s the retail experience. Each store functions as a coffee shop in the morning, a cafe in the afternoon, and a market at night. I was at one of our stores last night and there were 3 Bumble dates going on. I’m guessing that’s not happening at 7-Eleven. 

There’s a trend right now with D2C companies opening brick-and-mortar locations when they realize online only isn’t always the answer. It seems like you learned that in a really condensed time frame.

Definitely, online customer acquisition is such a tough game — competing for Instagram ads may work for some people, but it can seem too fleeting. For a business like ours, it’s all about frequency — we want to drive customers to the store multiple times per week and hopefully multiple times per day. To do that, you really need to care about the in-person experience. 

For us, that means finding neighborhoods that we love, finding buildings in those neighborhoods that have character, and curating the best products we can within those walls. 

How do you think about where to open new locations?

We are definitely neighborhood first. It really starts with our analytics team — they map the city and plug in the factors we’re looking for, and can pretty quickly come up with a list of a dozen neighborhoods where Foxtrot would make sense. After that, we spend a lot of time on the ground – we’ll visit these cities during the weekday and on the weekends, and just get a sense for what makes each neighborhood tick. Then, of course, we have to find a great building within those neighborhoods. 

Hypothetically, if you were to open a Foxtrot in a new city, where would you start?

It starts with coffee. It’s really important for us to connect with someone locally that we really vibe with from a coffee perspective, because that’s how most customers find out about us first. A lot of the time, our coffee people will introduce us to cool stuff happening in other categories. 

From coffee, we look at other categories like craft beer, organic wines, and baked goods like pastries, donuts, and breads. Those are the main local categories, but every market has a different take on how we fill the rest of the space. For example, in Dallas we have this amazing queso; in Chicago, we need to get the right giardiniera. It’s really important to us that customers walk in and think, “I can’t believe they have that here” over and over because that’s what builds trust. 

Tell me more about the private-label business…

We’ve been doing private label for a little while now, and it’s become a fast-growing part of the business. We have a high barrier for what becomes a private-label product, because it has to taste the best, it has to be effective for the customer from a price perspective, and it has to look pretty cool. One example would be potato chips — we sell a lot of sandwiches, which we make in house, and because of that, we sell a lot of potato chips. It’s the perfect opportunity for private label because we can sample a wide range of chips, pick the best ones, put put our brand on it, and end up getting the customer a better price while improving our margins as well. 

Our product mix is only about 30% private label right now, and will likely stay close to that. We love finding and discovering new brands and showcasing them, and we want to be the place where all the new brands want to experiment in retail. 

Is that where the Up & Comers program comes in?

Exactly. We launched the Up & Comers program last year, and it’ll be launching again soon. We run it as a contest, and bring in a bunch of our friends in the food and beverage industry to sit on the panel of judges. It’s an open call to new, interesting food entrepreneurs to introduce themselves to us and get on the shelves.

There are only 5 winners, but last year, ~700 brands submitted, and 30-40 ended up on our shelves. It’s really about building a pipeline, and partnering with these brands to figure it out together. Plus, they get mentorship from some really cool folks in the industry who’ve been there.

What are 3 of your favorite brands that you sell at Foxtrot?

  • Carol’s Cookies, which we’ve carried since day one 
  • Momoshack, which we discovered through our Up & Comers program, which makes amazing dumplings
  • Athletic Brewing, which serves a great use case and really transformed a category

Any favorite recent reads?

I just read Sam Walton’s Made in America, which is a bit older but really good.

Do you have a request for a startup?

If someone could make a nonalcoholic wine that tastes good, I’d be all ears.

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?

We’re shooting our shot…

Start your mornings with The Daily.

Get the freshly baked 5-minute newsletter every day except Saturdays.

It’s filled with the most interesting stories on business, tech, and the internet.

And written for innovators of every industry. Sign up for the news that slaps.

If you don’t like it, unsubscribe any time. Privacy policy.

[email-submission-form redirect-to-home="true" button-text="Join Free" include-trends-opt-in="true" id="main-signup-form" fail-url="" success-url="https://thehustle.co/signup" default-source="thehustleco" default-campaign="home"]
<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 setHiddenFieldValue(wrappingDiv, searchParams, className, utmName, cookieName, defaultValue) { var el = wrappingDiv.getElementsByClassName(className)[0]; var existingVal = el.getAttribute('value'); 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(window.location.search); setHiddenFieldValue(wrappingDiv, sp, 'funnel-source', 'utm_source', 'funnel_source', 'thehustleco'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-campaign', 'utm_campaign', 'funnel_campaign', 'home'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-medium', 'utm_medium', 'funnel_medium', ''); 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('funnel_error_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('main-signup-form'); 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.appendChild(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() { var optInDivs = document.querySelectorAll('.trends-opt-in'); optInDivs.forEach(el => { if (el.getElementsByClassName('trends-opt-in-checkbox').length < 1) { var checkbox = document.createElement('input'); checkbox.setAttribute('class', 'trends-opt-in-checkbox'); checkbox.setAttribute('type', 'checkbox'); checkbox.setAttribute('name', 'trends_opt_in'); var label = document.createElement('label'); label.setAttribute('class', 'trends-opt-in-text'); label.textContent = "Yes, I'd like to receive updates on market opportunities before they explode from Trends by The Hustle"; el.appendChild(checkbox); el.appendChild(label); checkbox.click(); } }) } window.addEventListener('DOMContentLoaded', (event) => { var funnel_email_cookie = getCookieValue('funnel_email'); if ( (true) && (funnel_email_cookie != null && funnel_email_cookie != '') ) { window.location.replace('/home'); } initForm(); if (true) { appendCheckboxes(); } }); </script> <div class="email-signup" id=main-signup-form> <div class="funnel-error" style="display:none;"></div> <form class="email-submission" 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"> <input class="funnel-medium hidden-input" type="hidden" name="medium" value=""> <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"> <input id="recaptcha-response-v3" class="g-recaptcha hidden-input" type="hidden" name="g-recaptcha-response" value=""> <input class="signup-email" type="email" name="email" placeholder="Your email address" required autocomplete="email"> <input class="email-submit" type="submit" value="Join Free"> </div> <div class="trends-opt-in"></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>