April 15, 2020
You Deserve Soufflé Cheese Toasts

In just six minutes, eggs, bread, and cheese come together in fluffy harmony.

On yet another quarantine Thursday in spring 2020, I ask Deborah Madison her thoughts on her 30-year-old cookbook, The Savory Way. “I haven’t used—or looked at—this book in a long time.” I hear her flipping pages through my phone and reconciling the Then Madison with the Now Madison, her outside Santa Fe, me in New Orleans. “But now that I do, it looks pretty good!” She is shocked.

The Savory Way jolted me, too. My introduction to Deborah Madison’s cooking was 1987’s The Greens Cookbook. A friend of a friend of a friend had eaten at the book’s seminal namesake vegetarian restaurant on the northern waterfront in San Francisco and had cooked the chef’s famed black bean chili at home for a potluck in the early 1990s. The bean stew, with its intermingling of dried oregano, cumin, tomato, and myriad dried chiles, joggled my sense of what chili could be. Madison’s 1997 magnum opus, Vegetarian Cooking for Everyone, was later released while I was working in a bookstore in Boston’s Back Bay and teaching myself how to cook. The book’s scope was so patulous that, in an instant, it became my kitchen dictionary: a compendium to turn to for any and every vegetable and how to prepare them. After cooking through those two books, including such dishes as winter squash soup with fresh mint and millet porridge with currants, I landed on Madison’s second book, 1990’s The Savory Way, and no book of hers has been as influential on my cooking.

I knew nothing of Concord grape pie before this book. Then, one Northeastern autumn 20-some odd years ago, I baked that pie on a whim. It was almost savory in its muskiness. Every notion I had about fruit pie cracked wide open. I still cook this pie every year—even though there are no Concord grapes to be found in South Louisiana. There are only armor-thick muscadines, a perfect substitute that requires twice the work. That is how eye-opening Madison’s grape pie was and is.

cheese souffle toast

The Greens Cookbook comprises restaurant food; Vegetarian Cooking for Everyone goes wide. The Savory Way is accessible and personal, constituting a range of influences. It employs mustard oil on tomato sandwiches and in a vinaigrette for cucumber mousse; cardamom enlivens oeufs à la neige; saffron cream coats tomato aspic. There are 18 fresh fruit recipes that have nothing to do with baking. There are 35 spunky condiments and sauces. Some of the dishes are so personal, like her father’s cornmeal cereal spiked with vanilla extract, and the old-timey combination of candied lemon slices and walnuts dubbed Lemon Suck, that on publication her family chided Madison for her imprudence.

Madison had recently moved to Flagstaff, Arizona, when she started writing The Savory Way. “I decided I wanted to be more of a home cook. To duplicate the high-spirited flavors of The Greens Cookbook, in a place where that kind of food and ingredients were not so easy to come by.” Both relentless and innocent, Madison would drive to Berkeley and back to Flagstaff when she ran out of olive oil.

I sensed Madison cringe when I mentioned the book’s endearing recipe for soufflé cheese toasts. “Why would you want to feature those?” she asked me. “Well, they’re delicious. And easy. And only seem like a lot of work, aka, they’re perfect for home entertaining!” I replied. She paused, then acquiesced.

cheese souffle toast

To make them, you separate a couple eggs, then beat the yolks with Dijon mustard and cayenne or paprika and add the cheese of your choosing: cheddar, Muenster, fresh goat cheese. You then whip the egg whites to a stiff froth and fold them into the yolk mixture. Plop the soufflé base on a bunch of baguette slices or fewer large bread slabs, grate on some Parmigiano, and move the lot to a hot oven. Five or so minutes later, a puffy, impressive appetizer. Or a whiz-bang lunch.

The recipe is infinitely variable. Rub the bread slices with garlic first; garnish with chopped fresh herbs; slick the toasts with pureed sun-dried tomatoes. Madison scoffed when her eyes caught that variation in the book. “I hate sun-dried tomatoes! Why did I include that?” We discussed. She backpedaled, as she seemed to harness her thinking from decades long past. “Well, I could see if you use just a little on the bread.”

RECIPE: Soufflé Cheese Toasts

Scott Hocker

Scott Hocker is a writer, editor, recipe developer, cookbook author, and content and editorial consultant. He is currently the editor in chief of liquor.com and was previously the editor in chief of Tasting Table.

[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>