91³Ô¹ÏÍø

Watch CBS News

Youth entrepreneurs in Philadelphia turn big dreams into business reality

In West Philadelphia, a new generation of business owners is setting up shop — and they're not even old enough to drive.

Young entrepreneurs took center stage at the NOMO Foundation's Small Business Expo, turning their passions into profit and proving that age is no barrier to building something of their own.

From sausages to spinach dip, the smell of sizzling sausages filled the air as 11-year-old Zy worked the grill, serving up her specialties: mild sausages and burgers.

Right next to her, another 11-year-old, Amira, offered samples of her homemade chicken and spinach dip. Amira started her business at just 9 years old.

"I look at them being children, but learning how to do business," one customer said after tasting her dip.

From sauces to stitches, the young vendors showcased a wide range of talents.

Sisters Ajah and her younger sibling turned yarn into wearable art — sandals, hats, and crochet crop tops — all designed and made by hand.

Others used their booths to share their personal stories through their craft. One 15-year-old artist proudly told customers, "I'm 15, and I'm trans — you're supporting a trans artist."

For some, entrepreneurship is a family affair.

13-year-old Bahiyyah, owner of Molly's Boutique, sells colorful balls of ribbon that are actually socks, priced between $20 and $35. While she runs the front of the shop, her mom is in the back teaching sewing classes.

These young designers are learning to make clothing that can often be expensive to buy, aiming to make it more affordable for their community.

"It shouldn't cost an arm and a leg to cover," one participant said.

NOMO's mission: opportunity starts here.

Whether it's through a sewing class or a pop-up shop, NOMO — which stands for "New Options, More Opportunities" — is showing the next generation that business dreams can start right here in West Philly.

The organization runs programs year-round to keep youth engaged and empowered.

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });