21歳前に1,100万ドル($11M)のセックスチョコレートブランドを築いたOliver Brocatoの物語
月商 — · 創業者—人 · 従業員—人 · —
—(—)· 創業 — · 記事掲載 November 13th, 2023 · — · 元の記事
創業者のOliver Brocato氏が大学のアパートで立ち上げ、2年で年商1,100万ドル(約16.5億円)のブランドに成長させた。従業員はゼロ。主な集客はTikTokで、短尺動画で製品コンセプトを説明しやすいようにデザインされている。マイクロインフルエンサーとの連携も活用。月商約91.7万ドル(約1.37億円)は2023年の記事掲載時点での数字。
売値の出典: 記事の本文(2023年時点、1ドル150円で換算)(2026-10-14 取得)
Oliver Brocato is a serial entrepreneur who founded Tabs Chocolate, a product that leverages short-form social media platforms. Oliver started Tabs Chocolate in his college apartment and built it into an 11 million-dollar brand in just two years with no employees.
While Oliver was learning how to build e-commerce businesses, one day while he saw a girl on Tiktok talking about sex chocolates (8M views and 2M likes), and he was able to see how the product was available in certain local shops but none online. That was his lightbulb moment.
Brocato conducted thorough research to find chocolate manufacturers in the United States who could help him design the perfect chocolate. Using Canva.com, he created a rough draft of the packaging design. He then hired a professional packaging designer to create 3D prototypes based on his design. Additionally, Brocato found a different manufacturer who could provide the necessary ingredients to the original chocolate manufacturer to combine them into the final product.
Oliver made sure to design the product in a Tiktok-friendly way. This meant it was easy to explain the whole premise of the product with a short video clip. Undoubtedly, TikTok is the primary acquisition channel for Tabs Chocolate. He also partners with micro-influencers on social media channels to bring traffic to his site. embed:tiktok
The store's shop section of Tabs Chocolate offers three size variants: 1 box, 2 boxes, and 3 boxes, at $38.99/box, $36.26/box, and $32.36/box.
Shopify Platform 570 using newDocumentReady(function () { $(".database-result-bottom").unbind().click(function() { $(this).find(".database-result-bottom-contents").toggle(); }) // Search UX: debounced auto-submit + global "/" focus shortcut. // Server-side pg_search is GIN-indexed and returns in <50ms; combined // with the page render, total feedback after the debounce window is // ~500ms — close enough to "live" without an XHR/Turbo refactor. var searchInput = document.getElementById('search'); if (searchInput) { var debounceTimer = null; var lastSubmittedValue = searchInput.value; searchInput.addEventListener('input', function () { clearTimeout(debounceTimer); debounceTimer = setTimeout(function () { // Don't submit if the value hasn't changed (e.g. arrow keys). if (searchInput.value === lastSubmittedValue) return; lastSubmittedValue = searchInput.value; searchInput.form && searchInput.form.submit(); }, 350); }); // Enter still submits immediately — short-circuits the debounce. searchInput.addEventListener('keydown', function (e) { if (e.key === 'Enter') { e.preventDefault(); clearTimeout(debounceTimer); searchInput.form && searchInput.form.submit(); } }); } // Global "/" shortcut to focus search — GitHub/Linear pattern. document.addEventListener('keydown', function (e) { if (e.key !== '/' || e.metaKey || e.ctrlKey || e.altKey) return; var t = e.target; if (t && (t.tagName === 'INPUT' || t.tagName === 'TEXTAREA' || t.isContentEditable)) return; var s = document.getElementById('search'); if (s) { e.preventDefault(); s.focus(); s.select(); } }); function prettySliderValue(func, value) { var n = Math.round(Number(value)); if (func == "money") { if (n >= 1000000000) return "$" + (n / 1000000000).toFixed(n % 1000000000 === 0 ? 0 : 1) + "B"; if (n >= 1000000) return "$" + (n / 1000000).toFixed(n % 1000000 === 0 ? 0 : 1) + "M"; if (n >= 1000) return "$" + (n / 1000).toFixed(n % 1000 === 0 ? 0 : 1) + "K"; return "$" + numberWithCommas(n); } else if (func == "daystomonths") { return (n / 30) + " months"; } else if (func == "hours") { return n + " hours"; } else { return n; } } function getInitialSliderValues(el) { var initial = el.dataset.initial; var defMin = Number(el.dataset.defaultmin); var defMax = Number(el.dataset.defaultmax); if (initial) { var parts = initial.split("|"); var a = parts[0] === "" ? defMin : Number(parts[0]); var b = parts[1] === "" ? defMax : Number(parts[1]); return [a, b]; } return [defMin, defMax]; } function createTwoProngedSlider(id) { var el = document.querySelector(id); if (!el || el.noUiSlider) return; var min = Number(el.dataset.min); var max = Number(el.dataset.max); var step = Number(el.dataset.step); var cleanfunc = el.dataset.cleanfunc; var values = getInitialSliderValues(el); var container = el.closest(".range-filter") || el.parentElement; var input = container.querySelector('input[type="hidden"]'); var label = container.querySelector(".preview-label"); noUiSlider.create(el, { start: values, connect: true, step: step, range: { min: min, max: max }, behaviour: "tap-drag" }); el.noUiSlider.on("update", function(vals) { var lo = Math.round(Number(vals[0])); var hi = Math.round(Number(vals[1])); if (label) label.textContent = prettySliderValue(cleanfunc, lo) + " – " + prettySliderValue(cleanfunc, hi); if (input) input.value = lo + "|" + hi; }); el.noUiSlider.on("change", function() { var form = el.closest("form"); if (form) form.submit(); }); } createTwoProngedSlider("#revenue-slider"); createTwoProngedSlider("#starting-costs-slider"); createTwoProngedSlider("#time-to-revenue-slider"); createTwoProngedSlider("#min-hours-per-week"); createTwoProngedSlider("#market-size"); createTwoProngedSlider("#startup-costs"); createTwoProngedSlider("#case-studies"); $(".mobile-filters-applied-button").click(function() { $(".database-filters").addClass("inView") }) $(".close-mobile-filters").click(function() { $(".database-filters").removeClass("inView") }) }); .blur-row { filter: blur(4px); pointer-events: none; user-select: none; } .database-video-grid { display: grid; grid-template-columns: 1fr; gap: 18px; } @media (min-width: 768px) { .database-video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } /* Airbnb-style range slider (uses noUiSlider) */ .range-filter { display: inline-flex; flex-direction: column; justify-content: center; gap: 4px; padding: 6px 16px 10px; border: 1px solid rgb(226 232 240); background: #fff; border-radius: 9999px; min-width: 220px; margin-bottom: 0 !important; } .range-filter .range-filter-header { display: flex; align-items: baseline; gap: 6px; line-height: 1; } .range-filter .range-filter-header label { font-size: 0.875rem; color: rgb(100 116 139); font-weight: 500; margin: 0 !important; line-height: 1.2; flex-shrink: 0; } .range-filter .range-filter-header label::after { content: "|"; margin-left: 6px; color: rgb(203 213 225); font-weight: 400; } .range-filter .preview-label { font-size: 0.875rem; color: rgb(15 23 42); font-weight: 600; line-height: 1.2; margin: 0 !important; white-space: nowrap; } .range-filter .filter-slider.noUi-target { height: 3px; background: rgb(226 232 240); border: 0; box-shadow: none; border-radius: 9999px; margin: 3px 6px 0; } .range-filter.is-active { border-color: rgb(15 23 42); background: rgb(241 245 249); } .range-filter.is-active .range-filter-header label { color: rgb(15 23 42); } .range-filter .filter-slider .noUi-connect { background: rgb(15 23 42); } .range-filter .filter-slider .noUi-handle { height: 20px; width: 20px; top: -8px; right: -10px; border-radius: 9999px; background: #fff; border: 1px solid rgb(203 213 225); box-shadow: 0 1px 2px rgba(15, 23, 42, 0.12), 0 2px 4px rgba(15, 23, 42, 0.08); cursor: grab; transition: transform 0.1s ease, box-shadow 0.1s ease, border-color 0.1s ease; outline: none; } .range-filter .filter-slider .noUi-handle::before, .range-filter .filter-slider .noUi-handle::after { display: none; } .range-filter .filter-slider .noUi-handle:hover { border-color: rgb(15 23 42); transform: scale(1.05); } .range-filter .filter-slider .noUi-handle.noUi-active, .range-filter .filter-slider .noUi-handle:focus-visible { cursor: grabbing; box-shadow: 0 0 0 6px rgba(15, 23, 42, 0.08), 0 2px 6px rgba(15, 23, 42, 0.18); border-color: rgb(15 23 42); } .range-filter .filter-slider.noUi-horizontal { height: 4px; } .range-filter input[type="hidden"] { display: none; }
IDEA REVENUE Men's grooming products · beardbrand.com · Build this Men's grooming products for urban beardsmen $100K /mo Ceremonial matcha supplier · matcha.com · Build this Premium ceremonial-grade matcha supplier for tea aficionados. $708K /mo Platform for digital entrepreneurs · whop.com · Build this "Marketplace for digital entrepreneurs monetizing skills online." $354K /mo Custom groomsmen sock gifts · nocoldfeet.co · Build this Customizable socks and gifts for groomsmen. $108K /mo Sports betting pick service · betmoneypicks.com · Build this Sports betting analytics membership for winning picks. $8K /mo Multi-use baby lounger · vonubaby.com · Build this Innovative multi-use lounger for infant comfort and relief. $100K /mo Car sound simulation device · wrumersound.com · Build this "Device transforming car speakers into engine simulators." $35K /mo newDocumentReady(function() { document.querySelectorAll('tr').forEach(function(row) { row.addEventListener('mouseenter', function() { const saveBookmark = this.querySelector('.save-bookmark'); if (saveBookmark) saveBookmark.classList.remove('invisible'); }); row.addEventListener('mouseleave', function() { const saveBookmark = this.querySelector('.save-bookmark'); if (saveBookmark) saveBookmark.classList.add('invisible'); }); }); // ---- Tag-pill hover tooltip (LLM-generated context for each Tagging) ---- if (!window.__tagTooltipInit) { window.__tagTooltipInit = true; const tip = document.createElement('div'); tip.className = 'tag-tooltip-popover'; tip.style.cssText = [ 'position:fixed','z-index:9999','max-width:340px','display:none', 'background:#0f172a','color:#fff','font-size:12px','line-height:1.4', 'padding:8px 10px','border-radius:6px','box-shadow:0 8px 24px rgba(0,0,0,.18)', 'pointer-events:none','white-space:normal' ].join(';'); document.body.appendChild(tip); const showTip = function(e) { const target = e.currentTarget; const text = target.getAttribute('data-tag-tooltip'); if (!text) return; tip.textContent = text; tip.style.display = 'block'; const r = target.getBoundingClientRect(); const tr = tip.getBoundingClientRect(); let top = r.bottom + 8; if (top + tr.height > window.innerHeight - 8) top = r.top - 8 - tr.height; let left = r.left; if (left + tr.width > window.innerWidth - 8) left = window.innerWidth - tr.width - 8; if (left < 8) left = 8; tip.style.top = Math.round(top) + 'px'; tip.style.left = Math.round(left) + 'px'; }; const hideTip = function() { tip.style.display = 'none'; }; document.addEventListener('mouseover', function(e) { const el = e.target.closest('[data-tag-tooltip]'); if (el) showTip({ currentTarget: el }); }); document.addEventListener('mouseout', function(e) { const el = e.target.closest('[data-tag-tooltip]'); if (el) hideTip(); }); } });
Who is the owner of Tabs Chocolate? When did Oliver Brocato start Tabs Chocolate? What is Oliver Brocato's net worth? How much money has Oliver Brocato made from Tabs Chocolate? {"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Who is the owner of Tabs Chocolate?","acceptedAnswer":{"@type":"Answer","text":"Oliver Brocato is the founder of Tabs Chocolate."}},{"@type":"Question","name":"When did Oliver Brocato start Tabs Chocolate?","acceptedAnswer":{"@type":"Answer","text":"2021"}},{"@type":"Question","name":"What is Oliver Brocato's net worth?","acceptedAnswer":{"@type":"Answer","text":"Oliver Brocato's business makes an average of $917K/month."}},{"@type":"Question","name":"How much money has Oliver Brocato made from Tabs Chocolate?","acceptedAnswer":{"@type":"Answer","text":"Oliver Brocato started the business in 2021, and currently makes an average of $11M/year."}}]}