🚿 LAUNCH SALE: 50% OFF + Free Shipping + Free Bonus Sponge Pack — Ends in 03:47:22
The Wall-Mounted, Flush-Away Toilet Cleaning System
★★★★★ 4.9 / 5 (12,847 reviews)
"I bought it because I was DONE with the Clorox wand. The pad has not fallen off once. Not once. I'm screaming about this in the group chat."
— Jessica R. ✓ Verified Buyer
🔒 Secure Checkout 🚚 Free US Shipping ↩️ 30-Day Easy Returns
Customer Customer Customer Customer Customer +47,000 women have ditched the brush this year

The Toilet Brush Is Dead. Snap. Scrub. Flush. Done in 30 Seconds.

⚠️ Selling out fast — only 312 starter kits left at this price
  • The sponge stays locked to the handle — no fishing pads out of the bowl
  • Biodegradable + flushable — drops in, breaks down like toilet paper, gone forever
  • Wall-mounted dispenser — no gross caddy on the floor, no brush in the corner
  • Pre-loaded cleaner activates on contact — no separate bottle, no chemical mixing
  • Touch-free from snap to flush — your hand never contacts a dirty sponge
  • 30 seconds total — less time than brushing your teeth
🚚 Order in the next 2 hours 14 minutes for delivery by Friday
🎁 Today Only — Choose Your Kit
Single Pack
Single Pack 1 unit — Handle + Dispenser + 32 Sponges
$9.99 $39.99 Save 75%
Family Pack
Family Pack BEST VALUE 5 units — Every Bathroom Covered
$19.99 $199.95 Save 90%
Couples Pack
Couples Pack 3 units — His, Hers & Guest Bath
$14.99 $119.97 Save 87%
🛡️ 30-Day "If You Hate It, We'd Want Our Money Back Too" Guarantee
⏱️ Your cart is reserved for 14:59
CleanBowl™ Pro
CleanBowl™ Pro Starter Kit $9.99
As Seen On
97%
5-Star Reviews
47,000+
Happy Customers
94%
Would Recommend
100%
Verified Reviews
1

You've Already Tried The Clorox Wand. You Know How That Ended.

The pad fell off. Mid-scrub. Into the bowl. And you stood there — in your pajamas, ten minutes before your in-laws were supposed to arrive — fishing a soaking, contaminated pad out of toilet water with a paper towel that wasn't doing the job. CleanBowl™ Pro fixes the one thing the category leader has refused to fix for fifteen years: the sponge clicks onto the handle and stays there until you press the eject button. Even when you slam it under the rim. Even when you're scrubbing hard. Pad. Stays. On.

Side-by-side comparison: Clorox wand with detached pad vs CleanBowl Pro locked sponge
2

Here's Why Your Toilet Has Never Actually Stayed Clean.

It's not the cleaner. It's not how hard you scrub. It's the brush itself — sitting in a puddle of bowl water in its plastic holder, where a single bacterial cell becomes over a billion in 72 hours. Microbiologists call it the "72-hour soup." Every time you reach for that brush, you're dipping a contaminated object back into the bowl and re-seeding it with the bacteria you thought you cleaned away. CleanBowl™ Pro breaks the loop because there is no brush. There is no holder. There is no soup. Every clean starts with a brand-new, factory-sealed sponge — and ends with that sponge being flushed away forever.

Cutaway diagram showing bacterial brush holder replaced by wall-mounted CleanBowl system
3

47,000 Women Already Made The Switch. Here's Why They Won't Go Back.

The pink ring at the waterline stops coming back within 2-3 cleans. The faint smell that used to return by Tuesday? Gone. The bathroom floor is clear because there's no caddy, no holder, no gross brush leaning in the corner. Guests walk into the powder room and there's nothing to apologize for. And when your sister-in-law with the Pinterest-perfect house finally drops by — you don't have to pre-clean for forty-five minutes the night before. You snap, scrub, flush, and walk away. Thirty seconds. The first cleaning system that actually delivers what every disposable wand has been promising for a decade.

Clean modern bathroom with wall-mounted CleanBowl system, no clutter

Why CleanBowl™ Pro Wins

Benefit by Benefit

Click-Lock Sponge icon

🔒 Click-Lock Sponge

The #1 complaint about Clorox is that the pad detaches mid-scrub. Our click-lock attachment holds 2.5x the typical scrubbing force. The sponge stays on until you decide it doesn't.

Truly Flushable icon

🌿 Truly Flushable

Plant-fiber cellulose sponge breaks down in the sewer system the same way 2-ply toilet paper does. No drip-trail to the trash. No plastic in the landfill. No bacteria-soaked pad rotting under your sink.

Pre-Loaded Cleaner icon

🧪 Pre-Loaded Cleaner

Concentrated cleaning solution is sealed inside every sponge. Activates the moment it touches water — visible blue dye, real foam, real scrubbing power. No separate bottle. No measuring. No accidental chemical mixing.

Wall-Mounted System icon

🧱 Wall-Mounted System

Handle and dispenser mount to the wall with included adhesive strips — no drilling, no tools. Off the floor, off the counter, away from splash zones. The handle stays bone-dry between cleans because nothing dirty ever touches it.

Flushable · Biodegradable · Wall-Mounted · Touch-Free · Click-Lock · Pre-Loaded · 30-Second Clean ·

Real experiences. Real results.

Jess M.
document.addEventListener('DOMContentLoaded', function() { // ========================================================================= // 1. Cart-Add Handler (renderContents pattern) // ========================================================================= document.querySelectorAll('.js-add-to-cart').forEach(function(btn) { btn.addEventListener('click', function(e) { e.preventDefault(); var variantId = btn.getAttribute('data-variant-id'); var quantity = btn.getAttribute('data-quantity') || '1'; var originalText = btn.textContent; if (!variantId || variantId === 'REPLACE_WITH_VARIANT_ID') { console.error('Variant ID not configured'); alert('Please configure your Shopify variant ID. See the setup guide.'); return; } btn.disabled = true; btn.textContent = 'Adding...'; var formData = new FormData(); formData.append('id', variantId); formData.append('quantity', quantity); formData.append('sections', 'cart-drawer,cart-icon-bubble'); formData.append('sections_url', window.location.pathname); fetch('/cart/add.js', { method: 'POST', body: formData }) .then(function(response) { if (!response.ok) { return response.json().then(function(err) { throw new Error(err.description || err.message || 'Add to cart failed'); }); } return response.json(); }) .then(function(data) { btn.textContent = '✓ Added!'; if (typeof window.publish === 'function') { window.publish('cart-update', { source: 'landing-page-cta', productVariantId: variantId, cartData: data }); } var drawer = document.querySelector('cart-drawer'); if (drawer && typeof drawer.renderContents === 'function') { drawer.classList.remove('is-empty'); drawer.renderContents(data); drawer.querySelectorAll('.is-empty').forEach(function(el) { el.classList.remove('is-empty'); }); } else { window.location.href = '/cart'; return; } setTimeout(function() { btn.disabled = false; btn.textContent = originalText; }, 1500); }) .catch(function(error) { console.error('Add to cart error:', error); btn.textContent = 'Error — Try Again'; btn.style.background = '#c0392b'; setTimeout(function() { btn.disabled = false; btn.textContent = originalText; btn.style.background = ''; }, 2500); }); }); }); // ========================================================================= // 2. Bundle Tile Selection // ========================================================================= var bundleTiles = document.querySelectorAll('.bundle-tile'); if (bundleTiles.length > 0) { bundleTiles.forEach(function(tile) { tile.addEventListener('click', function() { bundleTiles.forEach(function(t) { t.classList.remove('bundle-tile--active'); }); tile.classList.add('bundle-tile--active'); var selectedQuantity = tile.getAttribute('data-quantity'); if (selectedQuantity) { document.querySelectorAll('.js-add-to-cart').forEach(function(btn) { btn.setAttribute('data-quantity', selectedQuantity); }); } var priceDisplay = document.querySelector('.bundle-price-display'); if (priceDisplay) { var tilePrice = tile.getAttribute('data-total-price'); if (tilePrice) { priceDisplay.textContent = tilePrice; } } }); }); } // ========================================================================= // 3. Sticky Bar Visibility (IntersectionObserver) // ========================================================================= var stickyBar = document.querySelector('.sticky-atc-bar'); var mainAtcButton = document.querySelector('.product-info-column .js-add-to-cart'); if (!mainAtcButton) { var allAtcButtons = document.querySelectorAll('.js-add-to-cart'); for (var i = 0; i < allAtcButtons.length; i++) { var btn = allAtcButtons[i]; if (!btn.closest('.sticky-atc-bar')) { mainAtcButton = btn; break; } } } if (stickyBar && mainAtcButton) { var stickyObserver = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (!entry.isIntersecting) { stickyBar.classList.add('visible'); } else { stickyBar.classList.remove('visible'); } }); }, { threshold: 0 }); stickyObserver.observe(mainAtcButton); } // ========================================================================= // 4. FAQ Accordion // ========================================================================= var faqQuestions = document.querySelectorAll('.faq-question'); if (faqQuestions.length > 0) { faqQuestions.forEach(function(question) { question.addEventListener('click', function() { var parentItem = question.closest('.faq-item'); if (!parentItem) return; var isCurrentlyActive = parentItem.classList.contains('active'); document.querySelectorAll('.faq-item').forEach(function(item) { item.classList.remove('active'); }); if (!isCurrentlyActive) { parentItem.classList.add('active'); } }); }); } // ========================================================================= // 5. Countdown Timers (sessionStorage-backed) // ========================================================================= var COUNTDOWN_STORAGE_KEY = 'spp_countdown_target'; var countdownElements = document.querySelectorAll('.countdown-timer, [data-countdown]'); if (countdownElements.length > 0) { var targetTimestamp; var storedTarget = sessionStorage.getItem(COUNTDOWN_STORAGE_KEY); if (storedTarget) { targetTimestamp = parseInt(storedTarget, 10); if (isNaN(targetTimestamp) || targetTimestamp <= Date.now()) { targetTimestamp = Date.now() + (3 * 60 * 60 * 1000); sessionStorage.setItem(COUNTDOWN_STORAGE_KEY, targetTimestamp.toString()); } } else { targetTimestamp = Date.now() + (3 * 60 * 60 * 1000); sessionStorage.setItem(COUNTDOWN_STORAGE_KEY, targetTimestamp.toString()); } function formatCountdown(ms) { if (ms <= 0) return 'EXPIRED'; var totalSeconds = Math.floor(ms / 1000); var hours = Math.floor(totalSeconds / 3600); var minutes = Math.floor((totalSeconds % 3600) / 60); var seconds = totalSeconds % 60; var pad = function(n) { return n < 10 ? '0' + n : n.toString(); }; if (hours > 0) { return pad(hours) + ':' + pad(minutes) + ':' + pad(seconds); } return pad(minutes) + ':' + pad(seconds); } function updateCountdowns() { var remaining = targetTimestamp - Date.now(); if (remaining <= 0) { countdownElements.forEach(function(el) { el.textContent = 'EXPIRED'; }); return; } var display = formatCountdown(remaining); countdownElements.forEach(function(el) { el.textContent = display; }); requestAnimationFrame(function() { setTimeout(updateCountdowns, 1000); }); } updateCountdowns(); } // ========================================================================= // 6. Smooth Scroll // ========================================================================= var scrollTriggers = document.querySelectorAll('.js-scroll-to'); if (scrollTriggers.length > 0) { scrollTriggers.forEach(function(trigger) { trigger.addEventListener('click', function(e) { e.preventDefault(); var targetId = trigger.getAttribute('data-scroll-to'); if (!targetId) return; var targetElement = document.getElementById(targetId); if (!targetElement) return; var rect = targetElement.getBoundingClientRect(); var scrollTop = window.pageYOffset || document.documentElement.scrollTop; var targetPosition = rect.top + scrollTop - 80; window.scrollTo({ top: targetPosition, behavior: 'smooth' }); }); }); } // ========================================================================= // 7. Image Gallery (thumbnail swap) // ========================================================================= var galleryMainImg = document.querySelector('.gallery-main-img'); var galleryThumbs = document.querySelectorAll('.gallery-thumb'); if (galleryMainImg && galleryThumbs.length > 0) { function handleThumbActivation(thumb) { var newSrc = thumb.getAttribute('data-src'); if (!newSrc) return; galleryMainImg.src = newSrc; galleryThumbs.forEach(function(t) { t.classList.remove('gallery-thumb--active'); }); thumb.classList.add('gallery-thumb--active'); } galleryThumbs.forEach(function(thumb) { if (thumb.getAttribute('tabindex') === null) { thumb.setAttribute('tabindex', '0'); } thumb.addEventListener('click', function() { handleThumbActivation(thumb); }); thumb.addEventListener('keydown', function(e) { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); handleThumbActivation(thumb); } }); }); } // ========================================================================= // 8. Marquee Pause (reduced-motion respect) // ========================================================================= var reducedMotionQuery = window.matchMedia('(prefers-reduced-motion: reduce)'); function applyReducedMotion(matches) { var marqueeElements = document.querySelectorAll( '.marquee-track, .press-marquee-track, .feature-marquee-track, [class*="marquee"]' ); marqueeElements.forEach(function(el) { if (matches) { el.style.animationPlayState = 'paused'; } else { el.style.animationPlayState = ''; } }); } applyReducedMotion(reducedMotionQuery.matches); if (reducedMotionQuery.addEventListener) { reducedMotionQuery.addEventListener('change', function(e) { applyReducedMotion(e.matches); }); } else if (reducedMotionQuery.addListener) { reducedMotionQuery.addListener(function() { applyReducedMotion(reducedMotionQuery.matches); }); } });