Champagne Sauerkraut
10-12
servings
Main
Course
Print Recipe
Ingredients
Directions
Ingredients
4 lb
sauerkraut, packed in brine
Jump
Salt and pepper
Jump
¼ c
duck fat
Jump
5
strips thick-cut, uncured bacon
Jump
2 md
carrots, peeled
Jump
2 sm
onions, peeled
Jump
2
whole cloves
Jump
2
whole cloves garlic, peeled
Jump
1
bay leaf
Jump
6
juniper berries
Jump
6 oz
slab bacon, in one piece
Jump
2 sm
pigs' feet (suckling, if you can find them)
Jump
2
ham hocks, or 1 large hock, smoked
Jump
Half bottle of Champagne
Jump
1 qt
chicken stock
Jump
1-2 lb
new potatoes, about 2 inches in diameter, scrubbed
Jump
1 lb
pork loin chops, about 3/4 inches thick
Jump
1 lb
Virginia (smoked) ham, cut in 1/2-inch slices
Jump
½ lb
garlic sausage
Jump
¼ lb
spiced pork sausage
Jump
Sour cream or crème fraîche and Dijon or whole grain mustard (optional)
Jump

Adapted from Chez Panisse Menu Cookbook

A hearty stew meant for the depths of winter, this dish is technically an interpretation of the Alsatian dish choucroute garnie (choucroute means “sauerkraut” in French). In a Dutch oven, the shredded, fermented cabbage is layered with vegetables, bacon, duck fat, and pork parts, and it all gets doused with half a bottle of Champagne. Later, little potatoes are buried within the mellowed tangle, and the whole things is topped with sausages and smoked ham, which acquires a tawny caramel burnish in the final braise. Served with sour cream, mustard, and a glass of Champagne, it’s equal parts homey and luxurious.

Directions

  1. To prepare the sauerkraut for baking, soak 4 pounds of sauerkraut in water for 1-3 hours, depending on its saltiness. (If the sauerkraut hasn't been fermenting for long, a rinse in a colander may do the trick as well.) Drain the sauerkraut and squeeze it dry in fistfuls. Break apart and dry completely on paper towels. Season with salt and pepper.
  2. In a 6- to 8-quart Dutch oven, spread 3 tablespoons of duck fat. Lay the bacon strips across the bottom, to cover completely. Divide the sauerkraut into two batches, and layer one batch over the bacon. On top of that, arrange the whole carrots, the 2 whole onions stuck with the cloves, the garlic, the bay leaf, and the juniper berries. Add slab bacon, pigs' feet, and ham hocks. Cover with the rest of the sauerkraut and pour over 1/2 a bottle of Champagne. Add enough chicken stock so that the sauerkraut is wet but not soupy or floating. Dot the top with the remaining duck fat.
  3. Cut a piece of parchment paper to fit inside the pot. Place it on top and cover with a lid. Bring the mixture to a boil on top of the stove over medium-high heat, then bake in a pre-heated 375 F oven for 3 hours. Check the liquid from time to time. Add more chicken stock to keep the sauerkraut moist on top if necessary.
  4. To cook the meats and potatoes, remove the casserole after 3 hours. Bury the potatoes in the sauerkraut. Arrange loin chops, ham slices, and sausages on top of the sauerkraut. Bake for 20 minutes uncovered, basting the meat 2 or 3 times. Turn the meat and baste, then bake for 20 minutes longer.
  5. Serve meat, potatoes, and sauerkraut to each person. Garnish with sour cream or crème fraîche and Dijon or whole grain mustard, if desired.

Leslie Pariseau

Leslie Pariseau is a writer and editor in New Orleans. She's Features Editor at PUNCH and TASTE, and the co-author of SPRITZ. She has written for the New York Times, The Ringer, GQ, Saveur, and Condé Nast Traveler among others.

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