March 22, 2018
Waffle Town
liege-waffle-1ed

For one Belgian writer, the caramelized waffles of Liège are at the top of the stack.

The waffle is probably Belgium’s most famous export, with beer and chocolate following close behind. But when you go to Belgium, a small multilingual country of 11 million people—nestled between France, Germany, and the Netherlands—you won’t find anything labeled a Belgian waffle. Instead, the waffle taxonomy is divided into two broad regional subcategories that have existed for hundreds of years: the Brussels waffle and the Liège waffle.

The Brussels waffle is very similar to the “Belgian waffles” you find on breakfast menus at diners in the United States: fluffy and pale golden, with deep grooves to catch toppings. It’s made of light, usually yeasted dough that doesn’t have too much flavor on its own but is typically served with a variety of toppings, like whipped cream, fresh fruit, and melted chocolate. In Belgium, waffles are not typically eaten at breakfast, but around the clock as a snack.

A good Liège waffle is ridiculously delicious in a way that transcends toppings or adornments. They are simply unneeded. The rich, brioche-like dough, laced with half-melted chunks of pearl sugar, stands out on its flavor and unique texture alone. Pearl sugar is very dense, with a higher melting point than granulated sugar, but it will still melt in a sizzling-hot waffle iron. A Liège waffle is filled with unevenly distributed clusters of caramelized pearl sugar, which gives a slightly bitter contrast with the buttery waffle dough. It’s a convenient snack, easily eaten at any time of day (a good one loses nothing when cold). To me, Brussels waffles—as tasty as they can be—just can’t compete.

In Belgium, Liège waffles greatly eclipse the Brussels waffle in popularity, and it’s what’s most often sold in touristy waffle establishments throughout the country, and even in Brussels itself. Waffles are everywhere in Belgium (you can even buy them out of vending machines), but they’re not all made equal, of course, and quality varies hugely. To get the best Liège waffles, it’s really worth going to Liège itself. The French-speaking city, Belgium’s fourth-largest, is located in the hilly south of the country, an hour’s train journey from Brussels. Bernard Eggen is one of the finest artisanal bakers in Liège, and his waffles are legendary. He supplies the Belgian royal family with their waffles, and they are are justifiably addicted to them. Eggenols, his small bakery, is located on a nondescript street, in the shadow of the city’s gargantuan Santiago Calatrava–designed train station.

“From the moment you’ve had a truly exceptional Liège waffle, you realize that you really can’t settle for any other sort of waffle,” Eggen tells me during a recent visit. And he’s right. His waffles are heightened in intensity; there’s a strong vanilla aroma to the waffle, which he later confirms comes from fresh vanilla beans. A single mouthful lingers on the palate until you quickly take the next bite. I inhale the sample waffle he hands me, much to his enjoyment.

He’s reticent to share an exact recipe—and when you’re making waffles fit for a king, holding on to trade secrets is only fair—but he makes clear that the best ingredients (a combination of fresh milk, flour, eggs, raw yeast, butter, and pearl sugar), combined with well-rested dough, are what it takes to make the best waffles.

Thankfully, another local baker is happy to share his exact recipe, and his waffles are equally delicious. Eric Michaux’s bakery, Une Gaufrette Saperlipopette (pictured right), is located in the medieval quarter of the city, and lines outside his small shop are long. Since opening a few years ago, it quickly became a local institution. “We start at 3 a.m. every morning to make our waffle dough for that day,” says Michaux, adding that the dough’s wheat, eggs, and yeast are all organic and produced locally.

It’s expensive, and time consuming, to make waffles this way. But the results speak for themselves. “A lot of the other places selling waffles in Belgium will be selling frozen, prepurchased dough,” says Michaux with a sigh. A real Liège waffle, on the other hand, is near perfection when eaten hot in the street on a crisp day, or cold, as the perfect dessert, after a hearty home-cooked meal. And if you are like Belgian royalty, once you’ve had the very best waffles, there’s no going back.

RECIPE: Liège Waffles

James Ubaghs

James Ubaghs is a writer, and committed glutton, living in Brussels.

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