April 27, 2020
Tuna Confit Is Samin’s Sleeper Hit
Article-Samin-Nosrat-Tuna-Confit-Recipe

Poaching fish low and slow in olive oil is the key to better flavor, texture, and a superior tuna sandwich.

Hidden away on page 314 in Salt, Fat, Acid, Heat, Samin Nosrat’s breakthrough 2017 cookbook, is a watercolor sketch of a sandwich, with rounds of tomato and curls of lettuce peeking out from a petite baguette. It’s colorful and, like a lot of illustrator Wendy MacNaughton’s work, fun and jaunty. Ooh, a sandwich sounds good right about now, I thought, before I read the unassuming yet quite clever recipe written on that page for tuna confit. But as many cooks have discovered, Nosrat’s book is all hits, no misses. Though it may seem like a wallflower of a recipe, the tuna confit is a standout: simple but flavorful, ever adaptable, nutritious, and slyly luxurious—a winner.

“I actually forgot about this recipe myself,” Nosrat says, laughing a little, when I reach her by phone. Confit is a French dish and a technique in which food, usually meat, but also fish and sometimes vegetables, is cooked very slowly in fat. The result is tender, rich, and full of flavor. Duck confit is the most famous confit in the land—an arduous process in which duck legs are cooked gradually in their own fat until they’re crisp on the outside and rich and meltingly tender inside. While virtually anything can be confited—the term also refers to fruit candied in a sugar syrup—not everything makes a good confit. But raw tuna, as I learned from Salt, Fat, Acid, Heat (SFAH), makes an excellent confit.

Nosrat learned to make it around 20 years ago, when she was working at Berkeley’s (now closed) Eccolo, under then chef Christopher Lee. “We used to help host these huge 500-to-800-person block parties, where Acme Bread, Bartavelle, and Kermit Lynch dovetail,” she recalls of the hot food and drink corner in Berkeley. The neighborhood would come out to drink wine and eat, and Nosrat would help make sandwiches the length of several picnic tables. The cooks, including Nosrat, would make a huge amount of tuna confit—“like 100 pieces!” Nosrat says—and use it for pan bagnat (“the superlative Provençal tuna sandwich”), in which bread is spread with aioli and filled with confited tuna, hard-boiled eggs, tomatoes, cucumbers, basil, and olives.

The pan bagnat is an exceptional sandwich, but Nosrat’s SFAH tuna confit is so much more. It inspires countless other sandwiches, can top nearly any salad, goes great with a bowl of white beans, looks nice with rice, plays well with pasta, and works as part of a DIY picnic board or grand aioli platter, the ne plus ultra of Provençal communal meals.

Tuna Confit Recipe

In general, the recipe is pretty open-ended and can be flavored in a hundred different ways, with alternate aromatics, such as leeks, lemongrass, or fennel, different chiles, like guajillo or cascabel for a hit of smoke, or any sort of dried herb or spice, such as rosemary, makrut lime leaves, or cumin seeds. It’s great made well in advance, and it lasts two weeks in the fridge. But one thing is certain: It should be made from sustainably sourced albacore or yellowfin, which can be reliably found at your local fishmonger, or from online sellers such as Fulton Fish Market. Bonus: I love that confit sounds a little like “comfy,” a word I have been using more and more as I seek comfort in troubled times. This recipe is the cashmere sweatpants of meal prep.

You need quite a bit of olive oil—two and a half cups—and a pound and a half of tuna to start with, plus salt, garlic, a red chile, bay leaves, lemon zest, and black peppercorns. (The oil used to cook the fish can be reused in dressings, marinades, or for cooking.) Then you need around 30 minutes to infuse the oil and cook the fish. That’s it. I made it once as the recipe suggested, and then I made it again using half a cup of sesame oil in place of some of the olive oil, and I added ginger and coriander seeds to the spice infusion. When I tell this to Nosrat, she actually sounds…impressed? “Wow, I never thought of making it another way. But now I might try!”

RECIPE: The Best Confit Is Tuna Confit

Daniela Galarza

Daniela Galarza is a writer and reporter who covers food, restaurants, cooking, and culture. She used to be a pastry chef. These days she puts her culinary degree to use by making birthday cakes for friends. She lives in New York with her dog Frito.

[email_signup id="3"]
<div class="email-subscribe exp-subscribe subscribe"> <div class="alert alert-success exp-success ga-etembed-success" style="display:none;"> Great! You've signed up successfully! </div> <div class="alert alert-danger exp-error" style="display:none;"> We are experiencing an error, please try again. </div> <form name="subscribe" id="email-signup" class="email-signup-form" action="https://www.tastecooking.com/wp-admin/admin-ajax.php" method="POST" target="_top" data-event-assigned="false"> <fieldset class="form-group form-inline email-submit-group"> <label for="email-address" class="sr-only">Email Address</label> <input id="email-newsletter" type="email" placeholder="your@email.com" class="email-newsletter text email form-control" name="email" value=""> <button type="submit" value="Subscribe" name="subscribe" class="btn btn-primary email-submit-btn ga-etembed-success"> <i class="fa fa-envelope"></i> Subscribe </button> </fieldset> <small class="exp-small terms" style=""> By clicking Subscribe, I acknowledge that I have read and agree to the Penguin Random House <a href="http://www.penguinrandomhouse.com/privacy/" target="_blank">Privacy Policy</a> and <a href="http://www.penguinrandomhouse.com/terms/" target="_blank">Terms of Use</a> and agree to receive news and updates from TASTE and Penguin Random House. </small> <fieldset class="field-group checkboxes" style="display:none"> <div class="checkbox"> <label> <input type="checkbox" name="programs[]" value="505,50501,1" class="exp-checkbox" checked="checked"> <span><strong>Tastebook General</strong></span> </label> </div> <div class="checkbox"> <label> <input type="checkbox" name="programs[]" value="505,50502,1" class="exp-checkbox" checked="checked"> <span><strong>Tastebook Promo</strong></span> </label> </div> </fieldset><!-- /.checkboxes --> <input type="hidden" name="data_acq_code" value="TASTE_POPUP_STATIC_ONGOING" /> <input type="hidden" name="data_programs" value="50501|505,50502|505" /> <input type="hidden" name="form_id" value="3" /> <input type="hidden" name="partner" value="" /> <input type="hidden" name="action" value="crown_email_signup_submit" /> <input type="hidden" name="ref_url" value="" /> </form> </div> <script> jQuery(document).ready(function () { var unassigned_forms; setInterval( function() { //Check for unassigned forms var forms = jQuery( '.email-signup-form' ); unassigned_forms = false; forms.each( function( index ) { if ( jQuery( this ).attr( 'data-event-assigned' ) === 'false' ) { unassigned_forms = true; } }); if ( unassigned_forms ) { forms.off( 'submit' ).on( 'submit', function ( e ) { forms.attr( 'data-event-assigned', 'true' ); e.preventDefault(); // Basic email validation var email = jQuery(e.target).find('.email-newsletter').val(), valid_email = false, groupEl = jQuery(e.target).closest('.email-subscribe'); if ( !!email && typeof(email) === "string" ) { var email_array = email.split('@'); if ( email_array.length === 2 ) { if ( email_array[1].split('.').length > 1 ) { valid_email = true; } } } if ( valid_email ) { jQuery('.alert-danger').hide(); // Show loading gif groupEl.find('.email-signup-form').hide(); groupEl.find('.email-submit-loading').show(); // Populate ref_url jQuery(this).find('input[name="ref_url"]').val(window.location.href); // Generate Payload var payload = jQuery(this).serializeArray(); jQuery.ajax({ url: jQuery(this).attr('action'), type: 'POST', data: payload, success: function (data) { // Hide loading spinner groupEl.find('.email-signup-form').show(); groupEl.find('.email-submit-loading').hide(); // Display success msg var target = jQuery(e.target); jQuery(e.target).hide(); jQuery(e.target).parent().find('.alert-success').show(); jQuery(e.target).parent().find('#downloadbtn').show(); }, fail: function (err) { // Hide loading spinner groupEl.find('.email-signup-form').show(); groupEl.find('.email-submit-loading').hide(); // Display failure msg var target = jQuery(e.target); jQuery(e.target).hide(); jQuery(e.target).parent().find('.alert-danger').show(); } }); } else { groupEl.find('.alert-danger').html('Please enter a valid email address.').show(); } }); forms.off( 'keypress' ).on( 'keypress', function ( e ) { if ( e.which === 13 ) { e.preventDefault(); jQuery( this ).submit(); } }); } }, 100); }); </script>
[email_signup id="3"]
<div class="email-subscribe exp-subscribe subscribe"> <div class="alert alert-success exp-success ga-etembed-success" style="display:none;"> Great! You've signed up successfully! </div> <div class="alert alert-danger exp-error" style="display:none;"> We are experiencing an error, please try again. </div> <form name="subscribe" id="email-signup" class="email-signup-form" action="https://www.tastecooking.com/wp-admin/admin-ajax.php" method="POST" target="_top" data-event-assigned="false"> <fieldset class="form-group form-inline email-submit-group"> <label for="email-address" class="sr-only">Email Address</label> <input id="email-newsletter" type="email" placeholder="your@email.com" class="email-newsletter text email form-control" name="email" value=""> <button type="submit" value="Subscribe" name="subscribe" class="btn btn-primary email-submit-btn ga-etembed-success"> <i class="fa fa-envelope"></i> Subscribe </button> </fieldset> <small class="exp-small terms" style=""> By clicking Subscribe, I acknowledge that I have read and agree to the Penguin Random House <a href="http://www.penguinrandomhouse.com/privacy/" target="_blank">Privacy Policy</a> and <a href="http://www.penguinrandomhouse.com/terms/" target="_blank">Terms of Use</a> and agree to receive news and updates from TASTE and Penguin Random House. </small> <fieldset class="field-group checkboxes" style="display:none"> <div class="checkbox"> <label> <input type="checkbox" name="programs[]" value="505,50501,1" class="exp-checkbox" checked="checked"> <span><strong>Tastebook General</strong></span> </label> </div> <div class="checkbox"> <label> <input type="checkbox" name="programs[]" value="505,50502,1" class="exp-checkbox" checked="checked"> <span><strong>Tastebook Promo</strong></span> </label> </div> </fieldset><!-- /.checkboxes --> <input type="hidden" name="data_acq_code" value="TASTE_POPUP_STATIC_ONGOING" /> <input type="hidden" name="data_programs" value="50501|505,50502|505" /> <input type="hidden" name="form_id" value="3" /> <input type="hidden" name="partner" value="" /> <input type="hidden" name="action" value="crown_email_signup_submit" /> <input type="hidden" name="ref_url" value="" /> </form> </div> <script> jQuery(document).ready(function () { var unassigned_forms; setInterval( function() { //Check for unassigned forms var forms = jQuery( '.email-signup-form' ); unassigned_forms = false; forms.each( function( index ) { if ( jQuery( this ).attr( 'data-event-assigned' ) === 'false' ) { unassigned_forms = true; } }); if ( unassigned_forms ) { forms.off( 'submit' ).on( 'submit', function ( e ) { forms.attr( 'data-event-assigned', 'true' ); e.preventDefault(); // Basic email validation var email = jQuery(e.target).find('.email-newsletter').val(), valid_email = false, groupEl = jQuery(e.target).closest('.email-subscribe'); if ( !!email && typeof(email) === "string" ) { var email_array = email.split('@'); if ( email_array.length === 2 ) { if ( email_array[1].split('.').length > 1 ) { valid_email = true; } } } if ( valid_email ) { jQuery('.alert-danger').hide(); // Show loading gif groupEl.find('.email-signup-form').hide(); groupEl.find('.email-submit-loading').show(); // Populate ref_url jQuery(this).find('input[name="ref_url"]').val(window.location.href); // Generate Payload var payload = jQuery(this).serializeArray(); jQuery.ajax({ url: jQuery(this).attr('action'), type: 'POST', data: payload, success: function (data) { // Hide loading spinner groupEl.find('.email-signup-form').show(); groupEl.find('.email-submit-loading').hide(); // Display success msg var target = jQuery(e.target); jQuery(e.target).hide(); jQuery(e.target).parent().find('.alert-success').show(); jQuery(e.target).parent().find('#downloadbtn').show(); }, fail: function (err) { // Hide loading spinner groupEl.find('.email-signup-form').show(); groupEl.find('.email-submit-loading').hide(); // Display failure msg var target = jQuery(e.target); jQuery(e.target).hide(); jQuery(e.target).parent().find('.alert-danger').show(); } }); } else { groupEl.find('.alert-danger').html('Please enter a valid email address.').show(); } }); forms.off( 'keypress' ).on( 'keypress', function ( e ) { if ( e.which === 13 ) { e.preventDefault(); jQuery( this ).submit(); } }); } }, 100); }); </script>