The Chez Ma Tante team’s classic-brasserie-style Le Crocodile feels familiar, but that’s the point.
ByAdam Platt,
a features writer at New Yorkwho served for many years as the magazine’s critic
Le Crocodile’s roasted chicken with herb jus and fries.
Photo: Liz Clayman
Le Crocodile’s roasted chicken with herb jus and fries.
Photo: Liz Clayman
There are all sorts of reasons why the second act following a surprise hit like Jake Leiber and Aidan O’Neal’s fine little Greenpoint bistro, Chez Ma Tante, can be more difficult and fraught with peril than the first one. Even out in the neighborly, relatively low-key fine-dining precincts of Brooklyn these days, success tends to attract the usual siren song of new money, which often brings with it a whole new set of challenges. How do you manage a larger kitchen staff and a bigger (read: more bankable) room, not to mention a rabble of opinionated new investors? Do you scrap your successful old formulas for an entirely new concept? Or do you reprise beloved recipes for simmered pork shoulder, say, or Chez Ma Tante’s famous brunchtime pancakes, which are popular among the old regulars but may lose a little of their special alchemy in a larger, more impersonal space?
84 (out of 100)* | Very Good
The polished hotel dining room lacks a little of the old-neighborhood-brasserie terroir, but a fine bar program and an expansive, diligently executed menu add up to a solid “very good” rating.
Happily for the old regulars, Chez Ma Tante remains open in its cozy corner space on Calyer Street, not far from the booming Williamsburg waterfront, but if you want to watch Leiber and O’Neal wrestle with this next, more populous stage of their careers, you can do it at an expansive new brasserie called Le Crocodile, which opened recently in the oft-remodeled dining room on the ground floor of the Wythe Hotel. This venture seats 90 (as opposed to 50 back on Calyer Street), and — with the help of their new, deep-pocketed partners at the Golden Age Hospitality group (Acme, the Happiest Hour) — the tall, dining-hall-style space has been refitted with stylish new toffee-colored wood moldings along the walls, a generously sized bar up front serving six varieties of gin-and-tonics, and a classic menu that reads as if it’s been transported directly from one of the more venerable dining precincts of Montreal or Paris.
The dining room has had a subtle makeover.
Photo: Liz Clayman
“Almost everything here looks good to eat,” pronounced one of the self-appointed brasserie experts at my table. And if you’re a fan of organ-meat pâtés (I counted four options), heart-stopping Gallic specialties like “oeuf mayonnaise chaud” (dappled here, for extra measure, with trout roe), and a variety of barnyard proteins (steak, chicken, duck) piled, in classic bistro fashion, with mountains of salty, golden frites, it’s true. Leiber and O’Neal have taken inspiration from the usual sacred institutions in Paris (the profiteroles are a facsimile of the ones they encountered at Chez Georges) and Montreal (Au Pied de Cochon, L’Express), but their stated goal at Le Crocodile is to build in Brooklyn the kind of buzzy, accessible, casually elegant French-accented destination that has flourished across the river for years at restaurants like Balthazar and, more recently, Frenchette.
This seems like a noble enough aspiration, not to mention a wise business decision for young chefs plotting their second act, and if you happen to be a devotee of the old (and, it must be admitted, somewhat overly familiar) brasserie canon, there’s plenty to like about the cooking at Le Crocodile. I’m thinking of the escargots served de-shelled in a pool of fennel-rich stew touched with Pernod and of the tender shrimp in my shrimp cocktail, which were de-shelled too and laid out, like the finest oysters, on a mound of crushed ice. My sturdy crock of onion soup arrived at the table on just the wrong side of tepidness, but the chewy, pistachio-flecked beet salad was a thing of beauty, and so was the smooth, perfectly textured omelet, which the kitchen serves as one of the “plats principaux” with a tangle of frisée decked here and there with pickled chanterelles.
Clockwise from top: Shrimp cocktail, beets with pistachios and goat cheese, and steak tartare. Photo: Liz Clayman.
Clockwise from top: Shrimp cocktail, beets with pistachios and goat cheese, and steak tartare. Photo: Liz Clayman.
Plenty of other bounty is available on the main-course list; indeed, some preparations (the country chicken buried in those drifts of salty frites, the gargantuan, beautifully seared duck breast bathed in gouts of prune sauce) seem like almost too much of a good thing. There are also platters of soft, knuckle-size sweetbreads buttressed with puréed potatoes, lardons, and a shimmering veal gravy (delicious, if you like that sort of thing); crunchy-topped servings of aged New York strip with a boat of thickly whipped béarnaise (ditto); and a sturdy winter pot-au-feu constructed with plump boudin blanc sausages seasoned with a blend of nutmeg and cloves among other things. I didn’t manage to eat my way through all of the slightly lighter offerings (salmon with horseradish cream, a promising-sounding vegetarian tagine), but if you have to choose between the pork chop and the steak au poivre, call for the latter, which is one of the best new examples in town of this great specialty.
In the depths of the wintry, post-holiday doldrums, the poshly refurbished dining room at Le Crocodile doesn’t quite exude the sense of crackling occasion and bonhomie that the famous institutions on which it’s modeled are known for. But there’s a good roster of stiff, well-crafted (though, for $16, not inexpensive by neighborhood standards) classic cocktails to help enliven your evening (try the Vieux Carré stirred with reserve armagnac) and a bountiful selection of desserts. These range from the usual old chestnuts (madeleines dusted with powdered sugar, a standard-issue crème brûlée, the slightly stodgy Chez Georges knockoff profiteroles) to more internationalist selections from the bistro catalogue, including slices of lemon tart, delicious maple pie, and banana-flavored sticky toffee pudding the size (and heft) of a small cannonball.
Clockwise from top: Duck breast with Madeira and wild rice, maple pie, and profiteroles. Photo: Liz Clayman.
Clockwise from top: Duck breast with Madeira and wild rice, maple pie, and profiteroles. Photo: Liz Clayman.
The drinks themselves merit a trip.
Bites
Le Crocodile
80 Wythe Ave., at N. 11th St., Williamsburg; 718-460-8004; lecrocodile.com
Open: Dinner Monday to Saturday. Prices: Appetizers, $9 to $21; entrées, $19 to $35 (32-ounce strip steak for $91). Ideal Meal: Fromage de tête and/or chicken-liver pâté, beet salad and/or escargots, omelet with chanterelles and/or roasted chicken, sweetbreads with lardons, steak au poivre, maple pie. Note: Fans of the beloved Chez Ma Tante brunchtime pancakes, keep your fingers crossed; Le Crocodile will begin serving weekend brunch shortly.
*The rating scale of 0 to 100 reflects our editors’ appraisals of all the tangible and intangible factors that make a restaurant or bar great — or terrible — regardless of price. See The Thousand Best for 999 more great places to eat and drink.
*This article appears in the February 3, 2020, issue of New York Magazine. Subscribe Now!
`;
// 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(4),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(135),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,"4":4,"12":12,"124":124,"135":135}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(406),Fingerprint2=require(408),DS=require(407),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(406),_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,"406":406,"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","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();
// ]]