Le French Diner is where your favorite chefs eat on their nights off.
ByChris Crowley,
senior writer at Grub Streetwho covers the people who work and eat in New York City’s restaurants
Photo: Matt Morris
Photo: Matt Morris
Photo: Matt Morris
It’s Saturday night on Orchard Street. Inside one restaurant, smaller than a Manhattan studio, customers are bumping elbows. French pop music is blasting, dishes are clanking, wine’s being poured, and diners are dipping into bubbling escargot. “Jeffrey!” shouts one regular as he sits down, greeting the sous chef, Jeffrey Villaruz. Even in November, it’s hot. It’s packed. Everyone at the tiny bar is buzzed off red from the Languedoc. As Flavien Berger’s crunchy “Mars balnéaire” comes on, the smell of sizzling beef fat takes over the room. Would-be customers come in throughout the night, anxiously asking about the wait list — they’d put their name down, maybe they got skipped by accident? Around 7 p.m., the man in charge of that list is already giving people the bad news, telling them, cryptically, “If it happens, it happens.” This is Le French Diner, a downtown restaurant that has in the past couple of years emerged to become the place that the people who live and breathe restaurants go when they want something to eat, to avoid any gimmicks or trends, and to forget for the night that Resy even exists.
“I don’t want to say it’s straightforward or simple,” explains Basile Al Mileik, a French Diner regular who is the operating partner and wine director for St. Jardim in the West Village. “In French, you would say sans chichi — like, there is none of the sparkle around it.” This, Al Mileik says, is the point. “It’s just, like, 20 people crammed into a tiny room and you have to say ‘Behind’ to the chef when you want to go to the bathroom.”
Inside, worn walls and a tin ceiling make the restaurant look more like a dive bar than a destination for tartare. The heart of the action is the nine-seat bar, wrapped around an open kitchen and service station with wine and an espresso machine. One side of the stovetop’s hood is decorated with Polaroids of longtime customers, another used to have a chalkboard listing wine and beer. On one shelf, there’s a Japanese greeting cat flipping customers off; a couple feet away sits a framed illustration of a duck with a chef’s knife and a meat fork crossed in front of it. Above the duck, it reads, “Le French Diner”; below, “Vive la France.”
Somehow, they’ve managed to squeeze three tables into the 270-square-foot space. In the kitchen, which is even more of a squeeze, they turn out a succinct menu heavy on the bistro classics. Some dishes never leave the menu, like the crispy chickpea crêpe called socca, the rough-chopped steak tartare, the grilled octopus with lemon aioli, and the hanger steak with red wine and shallot sauce. Recently, they’ve had black cod with romanesco and grilled quail with mashed yams. In the past, there was stewed rabbit or maybe beef Bourguignon in the winter.
Sometimes, it seems like everyone in the restaurant industry — or at least everyone who works at the Four Horsemen — is posting photos from the dimly lit restaurant. Two bartenders, a couple, go every month. A general manager in Brooklyn has been a regular since 2016, and has celebrated most New Year’s Eves there since. (“Don’t tell too many people,” she pleads.) Jorge Luis Pabon, the executive chef of Estela, says he’s in once a week to catch up with other chef friends. People heard about it from a friend who’s a cook, or their own restaurant’s beverage director, or maybe just friends in the industry, or from “my favorite chef,” as one put it.
“Maybe it’s because it’s an open kitchen, and it’s all real. You have the dishwasher there, you have the cook there, and then the server,” says the restaurant’s chef, Burcu Aydeniz. “You know exactly what’s happening at that moment.”
Le French Diner was opened in February 2014 by Aydeniz and Pierre Moulin, who had first come to New York for a three-month vacation in the early aughts. They married and divorced several years before the restaurant opened but remain close friends. Aydeniz eventually quit a job in finance to pursue cooking, while Moulin worked in bars. For a long time, he thought he wanted a bar. (“That was stupid of me,” he now says.) Then a former boss asked if he was interested in a space on Orchard Street. At first, Aydeniz (who was working at the John Dory) was just going to assist with a short menu. But in the back of his head, Moulin knew it’d be great if she came onboard. Once she did, he says, he knew exactly what the restaurant was going to be.
For the first four years, the restaurant struggled. Moulin says they had plenty of zero-dollar nights, and Aydeniz worked for seven months straight. Through word of mouth, though, they built a following, and by 2019 the restaurant started to take off. “We had what I thought was a real restaurant,” Moulin says. The pandemic knocked them sideways, but the restaurant’s popularity has only skyrocketed since 2020.
“Pierre and Burcu do what they want to do: There’s no formal ‘service’ or selling, the menu changes when Burcu feels right about a new ingredient, and the music is always something that I’m curious about, Shazam-ing,” says Natalie Johnson, who runs Anton’s with her husband, Nick Anderer. “Everyone who gets a seat feels special, like they were let into a party that just happened at random … but there’s nothing random about it.”
Le French Diner stands out from the city’s other French restaurants because, well, there just aren’t a lot of small places like it downtown. “Most holes in the wall tend to be like, ‘Oh, it’s a burger joint’ or ‘It’s a dumpling joint’ or whatever,” says Shom Mazumder, who cooks at L’Industrie and operates a pop-up called Egodeath. “But this place, it’s just a full-service restaurant, wine, and all that shit.”
“So much stuff feels like it’s built for Instagram or TikTok,” says Nick Briñez, the head chef at Rose Bakery in Midtown East. Not Le French Diner. “You can go there to eat and expect everything to be exactly what it’s supposed to be.”
The most amazing detail about the restaurant is that it exists at all. “I have a feeling that if Pierre didn’t take over the space, it probably would have just been gutted out and turned into maybe a gallery or something,” Villaruz says. First-time customers sitting at the bar may be surprised to see Moulin disappear through a trapdoor into basement storage. They may be surprised by how good the steak is — draped in onions and sitting in a pool of red-wine sauce with a side of potato gratin fit for a construction worker — or by the char on the octopus.
Moulin has mixed feelings about the restaurant’s newfound popularity. “I have customers who are here to do a TikTok and fuck off,” he says. The restaurant can only seat about 60 people a night, and they’re selective about who they bring in. They tend to prioritize the people they know — the regulars who were there before the buzz, friends and fellow travelers in the restaurant industry — and that doesn’t leave a lot of room for new arrivals. One reason is to make sure the place is still accessible to the people they want to see, but another is so that they can run the restaurant in a way that affords everyone a good living. Moulin describes his approach as “very socialist” — if the restaurant makes an extra dollar, everyone sees a cut. (Villaruz says this is the case, and that he’s never had to ask for a pay raise.) But Le French Diner’s model doesn’t work if customers are lingering over a glass of wine and escargot. There aren’t enough seats.
The Saturday before Thanksgiving, Villaruz had returned from a three-week paid vacation in the Philippines, where his dad lives. Aydeniz will go home to Turkey for a few weeks. “I think we’re lucky to have a small operation that’s doing well enough to give people what they deserve,” she says. “We try to put the team first so that the pressure on the mental health is a bit lessened. It’s okay. It’s just food. It’s just drinks. No need to stress out about those things, at least.”
Whatever uncertainty they felt in 2020 is gone these days. A few weeks ago, Moulin says, he signed another ten-year lease. They’re hiring another cook, so Aydeniz can focus on prep and menu development. Once this lease is up, they want to turn the restaurant over to Villaruz. Things could change before December 2033 — but that’s the plan for now.
Customers often tell Moulin how French the whole place feels, like it’s some hidden bar à vins on an unseen corner in the 11th. But he doesn’t think that description is accurate at all. “This is nothing like one of the places I would go growing up in Paris. To me, this place is very New York,” he says. Others tell him about going on their first date with the person who is now their husband or wife. That is slightly better, Moulin thinks: “It’s a place that brings people together. We seal the deal,” he says. “I think it’s more of a third-date place, but I’m glad it worked out for them.”
`;
// 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()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(3),auth=require(12),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(1),appendLandingPageParams=require(136),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.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"),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;
}, {"1":1,"3":3,"12":12,"124":124,"136":136}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(408),Fingerprint2=require(407),DS=require(406),Eventify=require(246);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();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(408),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);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()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"408":408,"409":409}];
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","aaa-module-mounting.legacy":"aaa-module-mounting.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.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();
// ]]