Knafeh Nabulseyeh
15
pieces
Main
Course
Print Recipe
Ingredients
Directions
Ingredients
1 c
water
Jump
2 c
sugar
Jump
2 tbsp
lemon juice
Jump
1 ½ tbsp
orange blossom water
Jump
13 oz
kataifi pastry, defrosted and roughly pulled apart*
Kataifi pastry, popular across the Levant (as well as Turkey and Greece), consists of long, thin strands of shredded filo pastry. It’s what is used to make our Knafeh Nabulseyeh. Being in strands makes it easy for the pastry to get wrapped around or layered with various sweet or savory fillings before being baked or fried. This vermicelli-like pastry loves being drenched in melted butter, oil, or sugar syrup, and develops a wonderfully light crunch when cooked. It’s not the easiest of ingredients to find but it should be stocked in the frozen section of a good Greek, Arab, or Turkish grocer.
*Show Note
Jump
¾ c
plus 2 tbsp unsalted butter, melted
Jump
6 tbsp
ricotta
Jump
5 ¼ oz
feta, finely crumbled
Jump
2 tbsp
sugar
Jump
1
lemon, finely grate the zest to get 1 tsp
Jump
½ tsp
flaky sea salt
Jump
1 tsp
orange blossom water
Jump
3 tbsp
pistachios, roughly blitzed in the small bowl of a food processor (or finely chopped)
Jump

Knafeh is a national institution, made and served all over the Middle East, and no celebration is complete without it. It’s particularly associated with Nablus, where the shredded filo pastry is filled with the city’s trademark firm, white, salty Nabulsi cheese. A filling of just nuts and cinnamon is called knafeh Arabiyeh—“Arabic knafeh.” Nabulsi cheese is not widely available, though, so we’ve used a combination of firm mozzarella and ricotta.

Getting ahead: These are best eaten the day they are drizzled with the sugar syrup. They can be made up to two days in advance, though, if you want to get ahead. If you do this, just skip the step where the syrup is poured on and then, when ready to serve, reheat the knafeh in the oven at 400°F. Once they are warmed through, pour on the syrup and serve while still warm. The sugar syrup can be made well ahead of using; it keeps in the fridge for weeks. You’ll have a bit more syrup than you need here (you’ll make 1⅔ cups/400ml and use 1 cup/240ml), but it’s always good to have around, for when a touch of sweetness is needed.

Directions

  1. To make the syrup, put the water and the sugar into a medium saucepan and place over medium-high heat. Bring to a boil and add the lemon juice, swirling the pan frequently until the sugar dissolves. Remove from the heat, stir in the orange blossom water, and set aside until completely cool.
  2. Preheat the oven to 375°F. Liberally butter the base and sides of a baking dish, about 9 x 13 inches/23 x 33cm and 1½ inches/4cm high.
  3. Place the pastry in a food processor, in three or four batches, and blitz a few times until the strands are about ¾ inch/2cm long. Transfer to a bowl, pour in the butter, and toss evenly so that all the kataifi is coated.
  4. Put the mozzarella, ricotta, feta, sugar, lemon zest, salt, and orange blossom water into a separate bowl. Mix to combine and set aside.
  5. Press about two-thirds of the kataifi mixture into the base of the prepared baking dish. Press down quite firmly; you want it to be as compact as possible. It should rise about ¾ inch/2cm up the sides of the pan. Evenly top with the cheese mixture, spreading very gently so that the kataifi layer is covered but doesn’t get moved about. Finally, top with the remaining kataifi, pressing down firmly to cover any exposed cheese. Even out the top, then cover with a piece of parchment paper about the size of the sheet. Top with a separate baking dish, about the same size, so that the knafeh is compressed. Bake for 30 minutes, then remove the top dish and parchment and bake for another 25 minutes, or until deeply golden around the edges and browned on top.
  6. Slide a knife around the edges of the tray and let cool for about 5 minutes before flipping over onto a platter or cutting board. Slowly drizzle with 1 cup/240ml of the sugar syrup, then set aside for 5 minutes, for the syrup to be absorbed. Sprinkle with the pistachios and serve warm, preferably, or at room temperature later on.

Reprinted with permission from Falastin: A Cookbook by Sami Tamimi and Tara Wigley, copyright © 2020. Published by Ten Speed Press, an imprint of Penguin Random House. Photography credit: Jenny Zarins © 2020

Falastin

Sami Tamimi

Book Cover
[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://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://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>