Octopus Leg Linguine

December 22, 2022

Octopus Leg Linguine

If you’re looking to give your summer dishes something new from Naples, this is the Italian twist you’ve been looking for. While many people find the idea of cooking octopus a bit of a challenge, this recipe ticks all the right boxes.

What is Octopus Leg with Peeled Tomato Linguine?

Octopus leg with peeled tomato linguini is a traditional recipe from the south coast of Italy. It uses the best of the seaside and countryside to create a dish that's both salty and sweet, and sure to please even the most particular of palates. While it uses relatively simple ingredients, the fusion of flavours combines to make something truly memorable. The component that most people worry about, the octopus, is far easier to cook than you might imagine. Follow this recipe, and you'll do this fabulous ingredient the justice it deserves.

Key ingredients

Fresh octopus legs aren’t available to everyone and, in their natural state, can look a little peculiar. Our chefs prefer to use frozen pre-cooked Pasapesca octopus legs, with four pieces per pack. Fresh-frozen and imported from the sparkle of the Spanish seas, they're the perfect protein for this dish.

Similarly, when our culinary geniuses get to work, San Marzano tomatoes are the order of the day. Sweeter than a standard tomato with an undercurrent of acidity that cuts through the seafood's natural salts, they help achieve that tight-rope balance without you having to think about it too much.

While it’s possible to make this meal with other types of pasta, linguine is the way to go. With a larger surface area than spaghetti, there’s more room for sauce on each noodle, which offers more flavour per mouthful.

Top tips from our chef

The trick with octopus legs is to either cook it hard and fast or low and slow. What you don't want is something chewy. Our chefs recommend that you heat your pan to medium-high heat, put in a splash of your best olive oil, and give it around two minutes on either side. The result will be faintly opaque in the middle but as tender as a steak and full of that fresh-from-the-Gulf of Naples- flavour.

While your San Marzano tomatoes are full of sun-ripened sweetness, don't forget to temper them with salt. There's no need for sugar in this recipe. Instead, a sprinkle of salt will help to balance the taste of the tomatoes with the salty-sweet deliciousness of the seafood. Our top tip is to add your salt bit by bit, give it a taste, and either stop or add more according to your preference. As a rule of thumb, adding seasoning is far easier than taking it away.

A classic Italian ingredient, capers add a subtle, floral element to the whole recipe. As the bud of a flower, they're fairly delicate, so when you're sautéing your garlic and shallots, treat them gently. Add them last to that base mixture, and as soon as you can smell their perfume in the mix, add your San Marzano tomatoes. Capers add that extra layer of flavour that you won’t find anywhere else in the world.

Whether you're cooking this recipe or want to look for more inspiration to give your get-togethers that pro-chef finesse, check out: https://chefmeathome.com/blogs/recipes

 

 

star




Also in Recipes

Japanese Beef Curry
Japanese Beef Curry

January 20, 2023

On the right side of sweet and with just enough spice to tickle your tastebuds, this easy to prepare Japanese Beef Curry is a classy crowd-pleaser.

Continue Reading

Crayfish Tacos
Crayfish Tacos

December 15, 2022

With their roots in Mexican street food but with a New England twist, crayfish tacos are big on flavour & low on effort - sure to become a family favourite!

Continue Reading

Edamame Salad
Edamame Salad

October 26, 2022

This simple and quick edamame salad delivers an exciting punch of flavour and endless healthy vitamins. It’s bound to become one of your new favourite recipes.

Continue Reading

/** * Module to ajaxify all add to cart forms on the page. * * Copyright (c) 2015 Caroline Schnapp (11heavens.com) * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * */ Shopify.AjaxifyCart = (function($) { // Some configuration options. // I have separated what you will never need to change from what // you might change. var _config = { // What you might want to change addToCartBtnLabel: 'Add to cart', addedToCartBtnLabel: 'Added to cart!', addingToCartBtnLabel: 'Adding...', soldOutBtnLabel: 'Sold Out', howLongTillBtnReturnsToNormal: 1000, // in milliseconds. cartCountSelector: '.cart-count, #cart-count a:first, #gocart p a, #cart .checkout em, .item-count', cartTotalSelector: '#cart-price', // 'aboveForm' for top of add to cart form, // 'belowForm' for below the add to cart form, and // 'nextButton' for next to add to cart button. feedbackPosition: 'nextButton', // What you will never need to change addToCartBtnSelector: '[type="submit"]', addToCartFormSelector: 'form[action="/cart/add"]', shopifyAjaxAddURL: '/cart/add.js', shopifyAjaxCartURL: '/cart.js' }; // We need some feedback when adding an item to the cart. // Here it is. var _showFeedback = function(success, html, $addToCartForm) { $('.ajaxified-cart-feedback').remove(); var feedback = '

' + html + '

'; switch (_config.feedbackPosition) { case 'aboveForm': $addToCartForm.before(feedback); break; case 'belowForm': $addToCartForm.after(feedback); break; case 'nextButton': default: $addToCartForm.find(_config.addToCartBtnSelector).after(feedback); break; } // If you use animate.css // $('.ajaxified-cart-feedback').addClass('animated bounceInDown'); $('.ajaxified-cart-feedback').slideDown(); }; var _setText = function($button, label) { if ($button.children().length) { $button.children().each(function() { if ($.trim($(this).text()) !== '') { $(this).text(label); } }); } else { $button.val(label).text(label); } }; var _init = function() { $(document).ready(function() { $(_config.addToCartFormSelector).submit(function(e) { e.preventDefault(); var $addToCartForm = $(this); var $addToCartBtn = $addToCartForm.find(_config.addToCartBtnSelector); _setText($addToCartBtn, _config.addingToCartBtnLabel); $addToCartBtn.addClass('disabled').prop('disabled', true); // Add to cart. $.ajax({ url: _config.shopifyAjaxAddURL, dataType: 'json', type: 'post', data: $addToCartForm.serialize(), success: function(itemData) { // Re-enable add to cart button. $addToCartBtn.addClass('inverted'); _setText($addToCartBtn, _config.addedToCartBtnLabel); // _showFeedback('success',' Added to cart!',$addToCartForm); window.setTimeout(function(){ $addToCartBtn.prop('disabled', false).removeClass('disabled').removeClass('inverted'); _setText($addToCartBtn,_config.addToCartBtnLabel); }, _config.howLongTillBtnReturnsToNormal); // Update cart count and show cart link. $.getJSON(_config.shopifyAjaxCartURL, function(cart) { if (_config.cartCountSelector && $(_config.cartCountSelector).length) { var value = $(_config.cartCountSelector).html() || '0'; $(_config.cartCountSelector).html(value.replace(/[0-9]+/,cart.item_count)).removeClass('hidden-count'); } if (_config.cartTotalSelector && $(_config.cartTotalSelector).length) { if (typeof Currency !== 'undefined' && typeof Currency.moneyFormats !== 'undefined') { var newCurrency = ''; if ($('[name="currencies"]').length) { newCurrency = $('[name="currencies"]').val(); } else if ($('#currencies span.selected').length) { newCurrency = $('#currencies span.selected').attr('data-currency'); } if (newCurrency) { $(_config.cartTotalSelector).html('' + Shopify.formatMoney(Currency.convert(cart.total_price, "AED", newCurrency), Currency.money_format[newCurrency]) + ''); } else { $(_config.cartTotalSelector).html(Shopify.formatMoney(cart.total_price, "")); } } else { $(_config.cartTotalSelector).html(Shopify.formatMoney(cart.total_price, "")); } }; }); }, error: function(XMLHttpRequest) { var response = eval('(' + XMLHttpRequest.responseText + ')'); response = response.description; if (response.slice(0,4) === 'All ') { _showFeedback('error', response.replace('All 1 ', 'All '), $addToCartForm); $addToCartBtn.prop('disabled', false); _setText($addToCartBtn, _config.soldOutBtnLabel); $addToCartBtn.prop('disabled',true); } else { _showFeedback('error', ' ' + response, $addToCartForm); $addToCartBtn.prop('disabled', false).removeClass('disabled'); _setText($addToCartBtn, _config.addToCartBtnLabel); } } }); return false; }); }); }; return { init: function(params) { // Configuration params = params || {}; // Merging with defaults. $.extend(_config, params); // Action $(function() { _init(); }); }, getConfig: function() { return _config; } } })(jQuery); Shopify.AjaxifyCart.init();