91³Ô¹ÏÍø

Watch CBS News

Despite ever-evolving lighting industry, Atlanta's The Neon Company shines bright

If you've seen the bright lights of some of Atlanta's most iconic neon signs, there's a good chance the folks behind The Neon Company off DeKalb Avenue created it.

"They are all cool projects," Gregg Brenner, founder of The Neon Company, said. "Sometimes we help a mom-and-pop place down in Edgewood, or a little variety store, and make a little something or fix a little something. Sometimes I'm watching a movie and say, 'Oh, that sign came from the shop!'" 

Brenner was a DeKalb County science teacher when a light went off in 1983. He left the classroom and started The Neon Company. 

The shop is one of the few remaining manufacturers of neon signs in the country. It's a dying art. Changes in lighting trends and the rise of LED and plastic have made it tough for many businesses to survive. 

neon-3.png
Gregg Brenner was a DeKalb County science teacher when he left the classroom and started The Neon Company. 

"We were lucky to get into the film industry very early," Brenner explained as he pointed to an alligator on the ceiling. "That alligator is from a movie from 30-something years ago."

The city's entertainment industry has helped business, too. 

"All the way from the big Marvel films to small independent films, and it's all the same to me," Vyvyan Hughes, project manager at The Neon Company, said. Hughes is in the process of working with Tyler Perry on a project and recently wrapped up work with Lil Jon. 

Hughes is on Brenner's team of glass benders. She says to do their line of work, you must be "called to the fire."

"You can't really control fire, and here we are actually trying to control fire," Hughes said. "We're also heating up glass at around 2,000 degrees, and we're also trying to control that." 

neon-2.png
The shop is one of the few remaining manufacturers of neon signs in the country.  CBS News Atlanta

Production manager Craig Weido walked CBS News Atlanta through the glass-bending process. Every neon sign uses a pattern. Benders work on the designs backwards and weld together the different curves. It's a tedious process, but also a rewarding one for everyone on the team. 

"I could not have done this without a long group of people that helped me through the years," Brenner said.  

It's that gratitude, he believes, keeps the people coming back. 

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(); } }); }); }); });