CONTACT US FORM
We always welcome experienced sales representatives. If you have B2B or one-on-one sales experience, that’s a plus. Advertising sales experience is even better. As the industry leader we also pay the highest commissions. Let's talk about the possibilities!
Contact us now at 818-960-3931, email us at  careers@starstix.com or complete the form below.
Submit
Thank you!
Your submission has been received!
Oops! Something went wrong while submitting the form.
Order today and your ads install the week of span

Elevate Your Brand’s

Visibility Today
With STARSTIX Checkout Lane Divider ads, your brand connects with thousands of local shoppers every week—right in the neighborhood where you do business.
Learn More

About us

We've Been Perfecting captive audience marketing for 40 years. Here's what four decades taught us.

CHECKOUT LANE DIVIDERS ARE SEEN. The proof?

We continue to be the industry leader in grocery store advertising. STARSTIX Checkout Lane Dividers deliver what digital can't—guaranteed eyeballs while customers stand in line 2-3 times per week.
How It Works

Trusted by Leading Retailers

From national chains to local favorites — thousands of stores across the U.S. partner with STARSTIX to connect businesses with their communities.
The Invisible Business Problem

HERE'S WHAT'S HAPPENING RIGHT NOW:

Your potential and current customers are standing in checkout lines for 5-7 minutes, phones away, looking around... and seeing your competitors' brands instead of yours.
STARSTIX Checkout Lane Dividers are seen by your target audience, whereas digital ads get scrolled past in 0.3 seconds. Smart businesses are featured on STARSTIX,  capturing undivided attention.
But here's the thing most business owners don't realize...
The Checkout Lane Secret

EVERY GROCERY STORE CHECKOUT LANE IN YOUR MARKET COULD BECOME YOUR PERSONAL BILLBOARD.

And that's exactly what STARSTIX Checkout Lane Dividers do. While customers wait in line they're seeing YOUR brand message.
Here's the math that'll blow your mind:
40 years of trusted service

How just 12 weeks can turn into 720,000 impressions

Here's what happens in just one 12 WEEK campaign:
You get 16x more exposure for 95% less cost than online advertising.
15-20K
average number weekly transactions
60K
weekly brand touchpoints in your market
720k
total impressions over 12 weeks
$1.04 - $2.07
per thousand impressions (VARIOUS ONLINE CHARGES $8-15)
Play

Ads That People Remember

Research shows that out-of-home advertising, such as grocery store advertising, delivers the highest consumer recall of any ad format, making each impression more likely to influence behavior than digital ads which can be easily skipped or ignored.
Why it works

Why This Works When Other Advertising Fails

The Captive Audience Effect:
Unlike ads people can skip, scroll past, or ignore, checkout lane dividers capture attention when customers literally have nowhere else to look.
The Buying Moment Psychology:
You're reaching people during their purchasing mindset, not while they're scrolling their socials.
The Repetition Advantage:
The same local customers see your message multiple times across different shopping trips, building brand recognition without additional cost.
The 5-7 Minutes,
2-3 Times per week THAT GETS YOU SEEN
We’re committed to helping businesses stand out, thrive, and make a lasting, positive impact (While Their Competitors Stay Invisible).
6000+
STORES NATIONWIDE
15k-20k
Successful STARSTIX campaigns
323,221
STARSTIX DIVIDERS FEATURED IN STORES
7
NUMBER OF MINUTES AVERAGE SHOPPER WAITS IN LINE
1,440,000
AVERAGE NUMBER OF IMPRESSIONS OVER STANDARD CAMPAIGN
3 miles/month
LENGTH DIVIDERS TRAVEL

Limited

STORE AVAILABILITY

Hurry up! With only one business per store, inventory goes fast!
Why?
Exclusivity. Most of our clients choose to be featured as the one and only industry on BOTH sides of EVERY checkout lane divider in the store.
What this means
Once your competitors claim the prime checkout locations in your market, you're locked out until their campaigns end.
More than 6,000 stores
means NOTHING if

YOUR COMPETITION

IS ALREADY ON THE LANES!
Check Availability

Got Questions?

Will this actually work in my industry?
We've generated results for real estate, automotive, contractors, dentists, and 47+ other industries. The buying psychology is universal.
What if i want more than one store?
Absolutely! Many of our customers are in more than one store - this is a great way to dominate your local region and lock out competitors.
How does the cost compare to digital advertising?
STARSTIX costs between $1.04-$2.07 per thousand impressions with guaranteed local visibility.
Separate

YOURSELF FROM THE COMPETITION

Lock out the competition. Be the only advertiser on full-service checkout lanes at your local grocery store.
BOOK YOUR SPACE
/** * Starstix — Webflow Custom Code (Site-Wide Footer) * * Keeps native Webflow form submission intact, while fixing CTA links, * popup behavior, and custom anchor-based submit controls. * * Drop this entire script into Webflow Site Settings > Custom Code > Footer Code * wrapped in script tags. */ (function () { 'use strict'; // Prevent double execution if also loaded at page level if (window.__starstixLoaded) return; window.__starstixLoaded = true; var API_BASE = 'https://join.starstix.com'; var CTA_BASE = API_BASE + '/'; var STAGING_URL_RE = /^https?:\/\/(?:staging\.starstix\.com|starstix-staging\.webflow\.io)(?:\/.*)?$/i; // --------------------------------------------------------------------------- // Form submit bridge // --------------------------------------------------------------------------- /** * Keep Webflow's native form handling, but make the visible custom-submit * anchors trigger the hidden submit input so forms still submit normally. */ function bridgeNativeFormSubmit(form) { if (form.getAttribute('data-starstix-native-wired')) return; form.setAttribute('data-starstix-native-wired', 'true'); var submitBtn = form.querySelector('input[type="submit"], button[type="submit"]'); if (!submitBtn) return; var customBtns = form.querySelectorAll('[custom-submit]'); for (var i = 0; i < customBtns.length; i++) { customBtns[i].addEventListener('click', function (e) { e.preventDefault(); e.stopPropagation(); if (!form.checkValidity()) { form.reportValidity(); return; } submitBtn.click(); }); } } // --------------------------------------------------------------------------- // Link fixes — Careers anchor + Customer Portal // --------------------------------------------------------------------------- /** * 1. Add an ID to the careers form section so /#careers works as an anchor. * 2. Fix all "Careers" links that point to "#" (nav dropdown + footer). * 3. Inject a "Customer Portal" link in the footer. */ function fixLinks() { // --- Careers anchor --- // Add id="careers" to the careers form wrapper so /#careers scrolls there. var careersForm = document.querySelector('form[data-name="Careers Contact Form"]'); if (careersForm) { var careersSection = careersForm.closest('[class*="career"]:not(form)') || careersForm.closest('.section') || careersForm.closest('.pop-up-form-wrap') || careersForm.parentElement; if (careersSection && !careersSection.id) { careersSection.id = 'careers'; console.log('[Starstix] Added id="careers" to careers form section'); } } // --- Fix Careers dead links --- // Find all links whose text contains "Careers" and href is "#" or empty. var allLinks = document.querySelectorAll('a'); for (var i = 0; i < allLinks.length; i++) { var link = allLinks[i]; var text = (link.textContent || '').trim().toLowerCase(); var href = (link.getAttribute('href') || '').trim(); if (text === 'careers' && (href === '#' || href === '' || href === '#careers')) { link.setAttribute('href', '/#careers'); console.log('[Starstix] Fixed Careers link:', link); } } // --- Fix CTA buttons + any staging links --- // Force marketing CTAs to join.starstix.com, also stripping Webflow IX2 // interaction data-w-id so native click isn't intercepted. for (var k = 0; k < allLinks.length; k++) { var ctaLink = allLinks[k]; var ctaText = (ctaLink.textContent || '').trim(); var ctaTextLower = ctaText.toLowerCase(); var ctaHref = (ctaLink.getAttribute('href') || '').trim(); var shouldRewriteCta = ctaTextLower === 'book your space' || ctaTextLower === 'choose your stores' || STAGING_URL_RE.test(ctaHref); if (shouldRewriteCta) { ctaLink.setAttribute('href', CTA_BASE); ctaLink.removeAttribute('target'); ctaLink.removeAttribute('rel'); ctaLink.removeAttribute('data-w-id'); // Remove any previously-attached click listeners by cloning. if (ctaLink.parentNode) { var ctaClone = ctaLink.cloneNode(true); ctaLink.parentNode.replaceChild(ctaClone, ctaLink); } console.log('[Starstix] Fixed CTA -> join.starstix.com:', ctaText || ctaHref); } } // --- Fix footer legal links to open in new tab --- // Privacy Notice, Terms & Conditions, Cookie Policy, Disclaimer var legalPaths = ['/privacy-notice', '/terms-and-conditions', '/cookie-policy', '/disclaimer']; for (var m = 0; m < allLinks.length; m++) { var legalLink = allLinks[m]; var legalHref = (legalLink.getAttribute('href') || '').trim(); if (legalPaths.indexOf(legalHref) !== -1) { legalLink.setAttribute('target', '_blank'); legalLink.setAttribute('rel', 'noopener noreferrer'); } } // --- Customer Portal link in footer --- // Find the footer and inject a "Customer Portal" link. // Strategy: find the last footer link list (typically the "Company" column) // and append a new link after the last item. var footer = document.querySelector('footer') || document.querySelector('[class*="footer"]') || document.querySelector('.footer'); if (footer) { // Check if we already added it (prevent duplicates on SPA navigation) if (footer.querySelector('[data-starstix-portal]')) return; // Try to find a link list in the footer — look for a column with links var footerLinks = footer.querySelectorAll('a'); var lastFooterLink = null; // Find the last link in the footer that's in a list-like structure for (var j = 0; j < footerLinks.length; j++) { var fl = footerLinks[j]; var flText = (fl.textContent || '').trim().toLowerCase(); // Place after a "Careers" or "Contact" link if found, otherwise after last if (flText === 'careers' || flText === 'contact' || flText === 'contact us') { lastFooterLink = fl; } } // Fall back to the last link in footer if no specific match if (!lastFooterLink && footerLinks.length > 0) { lastFooterLink = footerLinks[footerLinks.length - 1]; } if (lastFooterLink) { var portalLink = document.createElement('a'); portalLink.href = 'https://join.starstix.com/portal'; portalLink.target = '_blank'; portalLink.rel = 'noopener noreferrer'; portalLink.textContent = 'Customer Portal'; portalLink.setAttribute('data-starstix-portal', 'true'); // Copy classes from sibling link for consistent styling portalLink.className = lastFooterLink.className; // Insert after the reference link var parent = lastFooterLink.parentElement; if (parent) { // If the link is inside a wrapper div/li, clone the wrapper structure var wrapper = parent.tagName === 'LI' || parent.tagName === 'DIV' ? parent : null; if (wrapper && wrapper.parentElement) { var newWrapper = wrapper.cloneNode(false); newWrapper.appendChild(portalLink); wrapper.parentElement.insertBefore(newWrapper, wrapper.nextSibling); } else { // Simple case: links are direct children parent.insertBefore(portalLink, lastFooterLink.nextSibling); } console.log('[Starstix] Added Customer Portal link to footer'); } } } } // --------------------------------------------------------------------------- // Ensure top-of-page CTA buttons exist on key marketing pages // --------------------------------------------------------------------------- function ensurePageHeroCta() { var path = (window.location.pathname || '').replace(/\/+$/, '') || '/'; if (path === '/about') { var aboutHeroCta = document.querySelector('.hero-about [data-starstix-hero-cta]') || document.querySelector('[data-starstix-hero-cta]'); if (aboutHeroCta && aboutHeroCta.parentNode) { aboutHeroCta.parentNode.removeChild(aboutHeroCta); } return; } if (path !== '/how-it-works') return; var heroHeading = document.querySelector('main h1') || document.querySelector('h1'); if (!heroHeading) return; var heroSection = heroHeading.closest('section') || heroHeading.parentElement; if (!heroSection) return; if (heroSection.querySelector('[data-starstix-hero-cta]')) return; var heroLinks = heroSection.querySelectorAll('a[href]'); for (var i = 0; i < heroLinks.length; i++) { var heroText = (heroLinks[i].textContent || '').trim(); var heroHref = (heroLinks[i].getAttribute('href') || '').trim(); if (!heroText) continue; if (!heroHref || heroHref === '#' || heroHref.indexOf('javascript:') === 0) continue; if (heroLinks[i].closest('nav')) continue; // If the hero already has any meaningful CTA link, don't add another. if (heroLinks[i].offsetParent !== null) { return; } } var template = document.querySelector('a.btn-orange'); if (!template) return; var cta = template.cloneNode(true); cta.setAttribute('href', API_BASE + '/'); cta.setAttribute('data-starstix-hero-cta', 'true'); cta.removeAttribute('target'); cta.removeAttribute('rel'); cta.removeAttribute('data-w-id'); var btnText = cta.querySelector('.btn-text'); if (btnText) { btnText.textContent = 'BOOK YOUR SPACE'; } else { cta.textContent = 'BOOK YOUR SPACE'; } cta.style.marginTop = '1.5rem'; cta.style.display = 'inline-block'; heroHeading.insertAdjacentElement('afterend', cta); console.log('[Starstix] Added hero CTA to', path); } function ensureHeroContentVisible() { var path = (window.location.pathname || '').replace(/\/+$/, '') || '/'; if (document.getElementById('starstix-hero-visibility-fix')) return; var style = document.createElement('style'); style.id = 'starstix-hero-visibility-fix'; var rules = [ '.cta-wrap .btn-orange {', ' opacity: 1 !important;', ' visibility: visible !important;', '}', '.cta-wrap .btn-orange {', ' background-color: #f5a623 !important;', ' border-color: #f5a623 !important;', '}' ]; if (path === '/about' || path === '/how-it-works') { rules = rules.concat([ '.hero-about .hero-about-wrap,', '.hero-about .hero-about-div,', '.hero-about .hero-about-title,', '.hero-about .decorative-h2,', '.hero-about .h1,', '.hero-about .h3,', '.hero-about .char,', '.hero-about .btn-orange,', '.how-works-hero .vertical-div-1-5,', '.how-works-hero .vertical-div-0-5,', '.how-works-hero .decorative-h2,', '.how-works-hero .h1,', '.how-works-hero .text-m,', '.how-works-hero .btn-orange {', ' opacity: 1 !important;', ' visibility: visible !important;', '}' ]); } if (path === '/about') { rules = rules.concat([ '.hero-about .btn-orange,', '.hero-about [data-starstix-hero-cta] {', ' background-color: #1f4a80 !important;', ' border-color: #1f4a80 !important;', '}' ]); } style.textContent = rules.join('\n'); document.head.appendChild(style); } // --------------------------------------------------------------------------- // Popup open / close // --------------------------------------------------------------------------- function openPopup(selector) { var el = document.querySelector(selector); if (el) { el.style.display = 'flex'; el.style.opacity = '1'; } } function closePopup(selector) { var el = document.querySelector(selector); if (el) { el.style.display = 'none'; el.style.opacity = '0'; } } function setupPopups() { // NOTE: "BOOK YOUR SPACE" no longer opens a popup — it navigates to // join.starstix.com directly (see fixLinks()). // Close button inside careers popup (must scope to correct popup, not youtube) var popupWrap = document.querySelector('.careers-pop-up-wrap'); var closeBtn = popupWrap ? popupWrap.querySelector('.pop-up-close') : null; if (closeBtn) { closeBtn.removeAttribute('data-w-id'); // Remove IX2 that blocks our handler closeBtn.style.zIndex = '1003'; // Raise above .pop-up-bg (z-index 1001) closeBtn.addEventListener('click', function (e) { e.preventDefault(); e.stopImmediatePropagation(); closePopup('.careers-pop-up-wrap'); }); } // Close on background overlay click (.pop-up-bg covers close button area) var popupBg = popupWrap ? popupWrap.querySelector('.pop-up-bg') : null; if (popupBg) { popupBg.addEventListener('click', function () { closePopup('.careers-pop-up-wrap'); }); } // Close popup on wrapper click (outside form) if (popupWrap) { popupWrap.addEventListener('click', function (e) { if (e.target === popupWrap) { closePopup('.careers-pop-up-wrap'); } }); } } // --------------------------------------------------------------------------- // About-page bio popups (team member cards + contact popup) // --------------------------------------------------------------------------- // // Structure on the About page: // - Trigger:
...
// (also .btn-orange.js-open-popup#contact for the contact popup) // - Wrap:
— shared container for all bios + contact // - Content:
...
//
...
// // CSS state: // .pop-up-wrap { display: none; opacity: 0; transition: 0.2s; } // .pop-up-wrap.is-open { opacity: 1; } // .is-hide { display: none; } // // The bug being fixed: an earlier version of the custom code toggled the wrap // via inline style.display only and never added the `is-open` class, leaving // opacity stuck at 0. The popup was technically in the DOM but invisible. // // We use a CAPTURE-phase document listener so we run before any stale // handlers (including whatever is currently deployed) and stop propagation, // ensuring our class-based open logic is the only thing that fires. function setupBioPopups() { var popWrap = document.querySelector('.pop-up-wrap:not(.careers-pop-up-wrap)'); if (!popWrap) return; function closeAllBlocks() { var blocks = popWrap.querySelectorAll('[popup-block]'); for (var i = 0; i < blocks.length; i++) { blocks[i].classList.add('is-hide'); } } function openBlock(blockName) { if (!blockName) return; closeAllBlocks(); var target; try { target = popWrap.querySelector('[popup-block="' + blockName + '"]'); } catch (e) { target = null; } if (!target) return; target.classList.remove('is-hide'); // Show wrap. Two-step so the transition (opacity 0 → 1) fires cleanly: // 1) display:flex commits layout on its own frame // 2) is-open class triggers the opacity transition popWrap.style.display = 'flex'; // Force layout so the browser acknowledges display change before class add void popWrap.offsetHeight; popWrap.classList.add('is-open'); document.body.style.overflow = 'hidden'; } function closeBioPopup() { popWrap.classList.remove('is-open'); var onEnd = function (e) { if (e && e.propertyName && e.propertyName !== 'opacity') return; popWrap.style.display = 'none'; closeAllBlocks(); document.body.style.overflow = ''; popWrap.removeEventListener('transitionend', onEnd); }; popWrap.addEventListener('transitionend', onEnd); // Fallback in case transitionend doesn't fire (backgrounded tab, etc.) setTimeout(function () { if (!popWrap.classList.contains('is-open')) { popWrap.style.display = 'none'; closeAllBlocks(); document.body.style.overflow = ''; } }, 400); } // CAPTURE phase so we preempt any stale bubble-phase handlers document.addEventListener('click', function (e) { var opener = e.target.closest ? e.target.closest('.js-open-popup') : null; if (opener) { e.preventDefault(); e.stopImmediatePropagation(); openBlock(opener.id); return; } var closer = e.target.closest ? e.target.closest('.js-close-popup') : null; if (closer && popWrap.contains(closer)) { e.preventDefault(); e.stopImmediatePropagation(); closeBioPopup(); return; } // Click on backdrop closes (but not on the popup content itself) if (popWrap.classList.contains('is-open')) { if (e.target === popWrap || (e.target.classList && e.target.classList.contains('pop-up-bg') && popWrap.contains(e.target))) { closeBioPopup(); } } }, true); // Escape key closes document.addEventListener('keydown', function (e) { if (e.key === 'Escape' && popWrap.classList.contains('is-open')) { closeBioPopup(); } }); console.log('[Starstix] Bio popup handlers attached'); } // --------------------------------------------------------------------------- // Lenis smooth-scroll: let popups scroll natively with the mousewheel // // Lenis hijacks wheel events globally. Any ancestor of the wheel target // that has `data-lenis-prevent` tells Lenis to skip smooth scrolling and // let the browser's native scroll handle it. Without this, scrollable // popup content can't be scrolled with the mousewheel. // --------------------------------------------------------------------------- function preventLenisOnPopups() { var selectors = ['.pop-up-wrap', '.pop-up-div']; for (var i = 0; i < selectors.length; i++) { var els = document.querySelectorAll(selectors[i]); for (var j = 0; j < els.length; j++) { if (!els[j].hasAttribute('data-lenis-prevent')) { els[j].setAttribute('data-lenis-prevent', ''); } } } } // --------------------------------------------------------------------------- // Smooth scroll for /#careers anchor // --------------------------------------------------------------------------- function handleCareersAnchor() { if (window.location.hash === '#careers') { var target = document.getElementById('careers'); if (target) { // Small delay to let Webflow interactions finish setTimeout(function () { target.scrollIntoView({ behavior: 'smooth', block: 'start' }); }, 300); } } } // --------------------------------------------------------------------------- // Initialization — run after DOM is ready // --------------------------------------------------------------------------- function init() { // --- Fix navigation links and add Customer Portal --- fixLinks(); ensureHeroContentVisible(); ensurePageHeroCta(); // --- Wire popup open/close --- setupPopups(); setupBioPopups(); // --- Let mousewheel scroll inside popups (Lenis would otherwise block) --- preventLenisOnPopups(); // --- Handle /#careers anchor scroll --- handleCareersAnchor(); // --- Native Webflow form submission bridge --- var forms = document.querySelectorAll('form[data-name]'); for (var i = 0; i < forms.length; i++) { bridgeNativeFormSubmit(forms[i]); } } // Run when DOM is ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();