Alert Icon

Double Right Chevrons
guides

Where to Eat in April

The best restaurants for right now.
  1. lawsuits
    Bryant Park Grill’s Operators Are Suing to Prevent a Jean-Georges TakeoverArk Restaurants say that it lost in “a sham bidding process.”
  2. another round
    The $15 Cocktail Is Back, Thank GodNew bars are opening with a novel idea: normal drinks at regular prices.
  3. the grub street diet
    Ella Emhoff Likes a Sugar Burst“I’ll say it: Vegan doughnuts are better.”
  4. underground gourmet
    Sauerkraut Fish Gets Headliner Treatment in the East VillageThe classic Sichuan soup hasn’t always been easy to find in New York.
  5. first taste
    The Long and Short of Radio Bakery’s New LocationAt what point do we admit the specialty of the house isn’t bread but line?
  6. arrivals
    Alinea Comes to New York, at LastGrant Achatz’s Brooklyn residency includes Japanese lit, hot-dog shots, and multiple restaurants.
  7. gifts
    The 122 Best E-Gift CardsNot only is it better than nothing, but they get to pick out something they actually want.
  8. announcements
    Do You Know How to Really Live in New York?Introducing How to Be a New Yorker, a subscriber-exclusive newsletter series full of tips, tricks, and hacks to thriving in this city.
  9. openings
    Is New York About to Go Crazy for This Matcha Latte?At the new café 12, the tea is from renowned farms and the pastry chef is from Noma. We can imagine the lines already.
  10. the approval matrix
    The Approval Matrix: Closing Time for Winter, NationOur guide to what’s highbrow, lowbrow, brilliant, and despicable.
  11. the grub street diet
    Hannah Selinger Has a Fruit Problem“I can’t walk into an H Mart without spending $50 on mangosteen, but that’s another story.”
  12. interviews
    From Spaghetti to SpleenChef Sal Lamboglia talks about how he was able to take over Brooklyn’s most-storied Sicilian institution.
  13. restaurant review
    What’s French for ‘Steakhouse’?La Tête d’Or is Daniel Boulud’s take on America’s burliest restaurant genre.
  14. small appliances
    10 of the Very Best Air FryersIn a market where there’s more chaff than wheat, we asked a panel of experts for the models they use and love.
  15. chapters
    Drinking Wasn’t a Perk of the Job. Drinking Was the Job.Working for Mario Batali meant being a wingman, a punching bag, and a voracious lush who rarely said “no.”
  16. coming soon
    Birria-Landia Is Going Brick-and-MortarA bigger menu means more meats and, for the first time, burritos.
  17. openings
    The City Is Getting Some Completely New PhoA shop near Union Square specializes in pho Nam Ðịnh, a traditional style rarely seen outside Vietnam.
  18. the grub street diet
    Peter Som Takes Each Bite As It Comes“I love the no-thinking-just-eating vibe of omakase.”
  19. closings
    Say Good-bye to Gem WineFlynn McGarry is closing his LES wine bar and going west (but staying in Manhattan).
  20. anniversaries
    COVID Changed the World But Not RestaurantsThe industry was supposed to reopen with bold new mandates. It’s returned to business as usual.
  21. underground gourmet
    Ceres Is the New Hype Slice, But Are Its $40 Pizzas Any Good?Some Eleven Madison Park vets apply fine-dining rigor to a neighborhood pizzeria.
  22. openings
    Printemps Is French. Its Food Speaks Creole.Chef Gregory Gourdet is applying his Haitian background to the downtown megastore’s many menus.
  23. the approval matrix
    The Approval Matrix: Uptown Dorian Gray Fights Downtown VanyaOur guide to what’s highbrow, lowbrow, brilliant, and despicable.
  24. the grub street diet
    Monica Lewinsky Once Wrote a Poem About Pizza“It found its way to the internet in 1998 or soon after. Mary Oliver I am not.”
  25. underground gourmet
    Salmon Roe Is the Perfect Ingredient For This MomentThese eggs are both luxurious and affordable.
  26. restaurant review
    A Tiny Restaurant With a Huge FollowingHa’s Snack Bar is already too full, but it’s also too good to ignore.
  27. closings
    Tribeca Grill Fades to BlackOur restaurant critic spends a final night at Robert De Niro’s neighborhood cafeteria.
  28. opening
    Tashkent’s Manhattan Store Is Opening, FinallyAfter years of waiting, the paper is off the windows on Sixth Avenue.
  29. adjustments
    Why Are So Many Chefs De-Spicing Their Menus?Across the city, dishes have gone from hot to not.
  30. guides
    Where to Eat in MarchThe best restaurants for right now.
  31. the grub street diet
    Jenny Hagel Makes Good Choices“Only an insane person would turn down the opportunity to take a regular, everyday object and Reubenize it.”
  32. lunch with friends
    Two Carnivores Walk Into a Vegan Sichuan JointI wondered if my favorite meat-free restaurant could win over some meat-loving punks.
  33. first taste
    It’s Hot. It’s Mysterious. It’s on the Upper East Side?Chez Fifi is, somehow, the place to be.
  34. five lines
    Pizza Sushi Is a TikTok Hit — Is It Any Good?The viral foods that are worth trying right now (and some that aren’t).
  35. shockers
    Ferdinando’s Focacceria Is ClosedBrooklyn lost an Italian legend this weekend.
  36. encounter
    Bird Flu Wiped Out His Entire FarmDoug Corwin was forced to cull 100,000 ducks after the virus came to his century-old Long Island farm.
  37. the approval matrix
    The Approval Matrix: Barron’s WishesOur guide to what’s highbrow, lowbrow, brilliant, and despicable.
  38. the grub street diet
    Author Torrey Peters Always Spatchcocks Her Chicken“It cooks faster, and it’s fun to say.”
  39. restaurant review
    Cafe Commerce Offers Easy Uptown Glamour, Day or NightLululemon meets coconut cake at Harold Moore’s new UES canteen.
  40. trendlet
    How Cinnamon Rolls Became the Anti-CroissantGooey, glazed buns are nudging daintier baked goods out of the pastry case.
  41. spring fashion
    Let Him CookNew York chefs shop for date-night (and morning-after) recipes — and schlep it home in the bags everyone wants right now.
  42. streeteries
    Wait, Outdoor Dining Is Saved Now?Just 40 licenses have been granted, but operators can suddenly open roadway setups even without full approval.
  43. reservation wars
    The Cool Restaurants Are on OpenTable NowRestaurateurs are frustrated with Resy. Many have jumped back to an app they once left behind.
  44. the grub street diet
    Kyle Chayka Is Eating Through His Jet Lag“Our communal order of banana coffee cake and Caesar salad makes for an interesting first course.”
  45. first taste
    Ugly Baby Is Back, Sort OfHungry Thirsty is open on Smith Street. Can it live up to its predecessor’s legend?
  46. first person
    A Sandwich Killed My MomMy mother was one of ten people to die from eating liverwurst contaminated with listeria. Six months later, I second-guess every food I purchase.
  47. trends
    How Protein Mania Took Over the Grocery StoreAmericans can’t get enough of its favorite macronutrient. Big Food is heeding the call.
  48. underground gourmet
    Schmuck Is Unlike Any Other Bar in New YorkThe Barcelona import sounds silly. It’s actually pretty great.
  49. openings
    A New Spot Treats Its Kimchee Pairings Like WineAt Raon, chef Soogil Lim showcases the versatility and complexity of Korea’s most famous side dish.
  50. the approval matrix
    The Approval Matrix: Planets Aligned, Everything Is Fine?Our guide to what’s highbrow, lowbrow, brilliant, and despicable.
More Articles

Openings

The City Is Getting Some Completely New Pho
The City Is Getting Some Completely New Pho

Guides

Where to Eat in April
Where to Eat in April
`; // integrate Sub(x) scripts and elements if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain document.head.appendChild(trackingScript); document.body.insertAdjacentHTML('beforeend', subXAnimationElements); }

There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}}); }, {"3":3,"6":6,"19":19,"39":39,"46":46}]; window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(19),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(3),appendLandingPageParams=require(143),pageUri=require(133).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let i=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||i.classList.remove("open")})}function gtmSendReport(e,n,t){let i={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(i.eventLabel=n.href),gtm.reportNow(i)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const i=t.split("?"),o=new URLSearchParams(i[1]);for(let e of n.entries())o.set(e[0],e[1]);t=`${i[0]}?${o.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),auth.isMobileAppRequest()&&e.classList.add("nymag-app"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init; }, {"3":3,"4":4,"19":19,"133":133,"143":143}]; window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(229),_each=require(416),Fingerprint2=require(415),DS=require(414),Eventify=require(254);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents(); }, {"229":229,"254":254,"414":414,"415":415,"416":416}]; window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(127),_forEach=require(116),_isString=require(276),_intersectionWith=require(417),_isEqual=require(282),_each=require(416),_debounce=require(160),_sortBy=require(213),page=require(133),visit=require(123);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]); }, {"116":116,"123":123,"127":127,"133":133,"160":160,"213":213,"276":276,"282":282,"416":416,"417":417}]; window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}}); }, {}]; window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy"); }, {"cid.legacy":"cid.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy"}]; window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]); }, {}]; require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key)); } function tryToMount(fn, el, name) { try { fn(el); // init the controller } catch (e) { const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML)); console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e); } } /** * mount client.js component controllers */ function mountComponentModules() { Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => { let controllerFn = window.require(key); if (typeof controllerFn === 'function') { const name = key.replace('.client', ''), instancesSelector = `[data-uri*="_components/${name}/"]`, defaultSelector = `[data-uri$="_components${name}"]`, instances = document.querySelectorAll(instancesSelector), defaults = document.querySelectorAll(defaultSelector); for (let el of instances) { tryToMount(controllerFn, el, name); } for (let el of defaults) { tryToMount(controllerFn, el, name); } } }); } // Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies, // services, or components that could require it // note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js window.process = window.process || {}; window.process.env = window.process.env || {}; if (!window.process.env.NODE_ENV) { window.process.env.NODE_ENV = ''; } // note: legacy controllers that require legacy services (e.g. dollar-slice) must // wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first mountLegacyServices(); mountComponentModules(); // ]]