91³Ô¹ÏÍø

Watch CBS News

Beaver Valley could become center of AI infrastructure for region

The Beaver Valley could become the center of artificial intelligence infrastructure for the region. 

Data center investors are eyeing the valley's old industrial sites, and boosters say they offer economic opportunities. However, some in Beaver County are urging caution.

Plans for the Beaver Valley 

Up and down the Beaver Valley, plans appear to be moving forward for the construction of data centers and the power plants to provide the massive amounts of energy they need. 

Investors in data centers have been drawn to the brownfield sites, where there is abundant natural gas to power them and water from the Ohio River to cool them. 

"There are steel sites that are abandoned up and down the Beaver Valley with ample infrastructure, excess water and communities that lost a lot of population over time and are looking to reinvent themselves," Joanna Doven, the executive director of AI Strike Team, said.

But others caution about the need for guardrails, especially that the cost of energy supply is not passed on to the residents. 

"That's why, for us, bringing your own energy to the table is the number one issue that we have with any of the hyper-scalers," said Lew Vilotti, president of the Beaver County Corporation for Economic Development.

Booming development in Beaver Valley

The center of that development is in Shippingport, the site of the nuclear-powered Beaver Valley Power Station and the now-shuttered Bruce Mansfield coal-fired power plant, which is slated be converted into a natural gas plant. 

The company Aligned has announced plans to build two natural gas generating stations nearby to power two or more data center buildings, saying in a statement that it will bring jobs and growth. 

"Our goal is to be a great neighbor for years to come. If this project moves forward, we look forward to bringing high-quality jobs and significant economic opportunities to the area," Aligned's statement said. 

On the other side of town, Meta, the owner of Facebook and Instagram, has signed a 20-year agreement with the company Vistra to buy power generated from the nuclear power station. Vistra is promising to upgrade the plant and hire more workers. 

And these projects may just be the forerunners. Down the road in Midland, developer Chuck Bettors and Pittsburgh lawyer Jonathan Kamin are proposing another data center. Doven says the projects provide Beaver County with a unique opportunity.  

"These are industrial sites that are being reinvented to provide tax revenue, to provide good-paying jobs," Doven said.

Some express caution 

While Villotti says there is real estate speculation throughout the valley, the county has cause to be cautious.  

"Blindly chasing data centers is not the way to go," Villotti said. "I think you have to be very thoughtful in your process."

Still, Shippingport resident Eric Hennessy says he and his neighbors are used to living between power plants and welcome the economic boost.  

"It's good for the area, especially being in a labor union," he said. "Brings a lot of work for the area."

There has not been a lot of public opposition to these projects, and Beaver County remains open to AI development as long as there are safeguards in place.

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=50747257b890e014813016b79ece0fb2'; 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(); } }); }); }); });