91³Ô¹ÏÍø

Watch CBS News

Sheet Pour Nachos recipe | Chef Janet on Talk Pittsburgh

This appetizer will be a hit at your tailgate party! is sharing her easy-to-make recipe for a cheesy sheet pour nacho spread.

sheet-pour-nachos-chef-janet.jpg
(Photo Credit: KDKA)

Sheet Pour Nachos

  • 1 large bag tortilla chips (about 12–14 oz)
  • 16 oz Colby Jack cheese, shredded
  • 8 oz Pepper Jack cheese, shredded (for half the nachos, optional)
  • 1 lb cooked protein of choice (taco seasoned ground beef, shredded chicken, or black beans)
  • 1–2 jalapeños, thinly sliced (or jarred,optional)
  • 1 large tomato, diced (or 1 cup pico de gallo, recipe to follow)
  • Drizzle lime crema (recipe to follow)

Pico de Gallo 

  • 4 roma tomatoes, diced
  • 1 fresh jalapeño, stemmed and minced (deseeded if you want it less spicy or omit)
  • 1/4 cup white onion, diced and rinsed
  • 1/3 cup cilantro, finely chopped
  • 1 lime, zested and juiced
  • 1 tsp salt

Lime Crema

  • 2 limes, zested and juiced
  • 1 cup sour cream
  • 1/4 cup milk
  • 1 garlic clove, minced
  • 1 tsp salt
  • 1/2 tsp chili powder
  • 1/4 tsp black pepper

Directions

1. Preheat oven to 400°F. Line a baking sheet with parchment paper. Spread the protein evenly on the parchment.

2. Sprinkle the colby jack and pepper jack on top.

3. Bake for 8–10 minutes, until the cheese is fully melted and bubbly.

4. Carefully lift one side of the parchment and tip the hot cheese mixture over the tray of tortilla chips.

5. Top with fresh tomato (or pico), lime crema and whatever other toppings you like. Serve immediately.

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