The Frye Fest Is the Summer Festival America Deserves
By
Chris Crowley ,
senior writer at Grub Street
who covers the people who work and eat in New York City’s restaurants
Save this article to read it later.
Find this story in your account’s ‘Saved for Later’ section.
Unlimited fries you say?
Photo: Martin Bureau/AFP/Getty Images
Grub would like to announce we’re taking a vacation to a “not so secluded area of Tallahassee.” Next month, we’re heading south for the Frye Fest, which promises to be the most exciting development in American food since we decided salads could be made of cookies: “an immersive fried potato festival.” If that sounds like your life, then okay Grub’s too, but still. This is a day of unlimited fried potatoes (for $20 or $25) in not one but three styles (French, waffle, and curly — the best!) served in four variations (that’s 12 fries) all with a chance to see Florida Man resurface? Granted, his presence hasn’t been promised and his whereabouts have been unknown for months. But it’s an immersive fry fest. How could he not show up?
Eat like the experts.
Sign up for the Grub Street newsletter.
Vox Media, LLC Terms and Privacy Notice
By submitting your email, you agree to our Terms and Privacy Notice and to receive email correspondence from us.
The Frye Fest Is the Summer Festival America Deserves
Things you buy through our links may earn Vox Media a commission.
Latest News from Grub Street
openings
Yesterday at 11:22 a.m.
Ops Is Expanding to the East Village
The Bushwick favorite is heading to Manhattan, with new pizza inspired by the Midwest.
By Chris Crowley
openings
June 9, 2025
Eddie Huang Is Cooking in New York Again
The chef has a new pop-up, a new family, and a new approach to Chinese cooking.
By Tammie Teclemariam
father's day gifts
June 8, 2025
The Best Gifts for Foodie Dads
Foolproof ideas for the dad who says the quickest way to his heart is through his stomach.
the grub street diet
June 6, 2025
Erik Piepenburg Used to Man-hunt at Veselka
“The dining room isn’t as gay as when I went there in the ‘90s, but whatever.”
By Paula Aceves
1.5x speed
June 3, 2025
What Keith McNally Is Listening To
“Because this is a dangerous time in America, I gravitate to podcasts which concentrate on the lunacy of the Trump administration.”
chef shuffle
June 3, 2025
Victoria Blamey Is Heading to Il Buco
The acclaimed chef will be culinary director for Donna Lennard’s family of Italian restaurants.
openings
June 3, 2025
Dell’anima Returns to the West Village
The 2010s favorite is back where it belongs.
By Anna Hezel
where to eat
June 2, 2025
Where to Eat in June
The best restaurants for right now.
By Grub Street
the approval matrix
May 30, 2025
The Approval Matrix: Elon’s Big, Beautiful Crash
Our guide to what’s highbrow, lowbrow, brilliant, and despicable.
gifts
May 30, 2025
The Best Gifts for Beer Lovers, According to Brewers and Beer Lovers
Because you can do better than a novelty beer helmet.
the grub street diet
May 30, 2025
Restaurateur Natalie Johnson Romanticizes Sandwiches From the ’90s
“We do a seared tuna burger with wasabi-soy glaze, and it’s just what I want to be eating.”
By Alan Sytsma
announcements
May 29, 2025
Introducing Emily Gould, Dinner Party ’s New Host
Here’s what to expect from the newsletter’s next era.
restaurant review
May 29, 2025
Bánh Anh Em Makes Food With Some Tooth
The sandwiches and soups are chewy, crunchy, crispy, and crackly — usually all at once.
By Matthew Schneier
coming soon
May 28, 2025
Millions of People Watch Cugine’s Videos. Will They Eat His Chicken Cutlets?
The social-media food star is opening a café in Brooklyn. “I needed to do something new,” he says.
By Jason Diamond
comebacks
May 27, 2025
This City Is Ready for Some Fro-Yo
Pistachio drizzles top artisanal swirls while once-forgotten chains plot a return to prominence. Is the next big yogurt boom here at last?
By Rachel Sugar
the grub street diet
May 23, 2025
Erika Henningsen Hates a Book-Length Menu
“I’m talking to you, Cheesecake Factory.”
By Zach Schiffman
talking to
May 22, 2025
The Chef Who Opened His First Restaurant at 46
Gregory Gourdet won awards for his restaurant and found fame on Top Chef . He’s back in New York to launch his next chapter on the cusp of turning 50.
By Adam Platt
staffing up
May 21, 2025
Where Have All the Good GMs Gone?
Managers keep restaurants running, and they are more in demand than ever. Newfound leverage means higher salaries and even pre-approved time off.
By Chris Crowley
openings
May 20, 2025
A Star From France Is Opening a Properly Luxe Restaurant in the West Village
Le Chêne, from Alexia Duchêne, debuts this week.
By Tammie Teclemariam
coming soon
May 19, 2025
One of King’s Owners Is Going Solo at Lei
Annie Shi’s new Chinatown wine bar is something different.
By Megan Krigbaum
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,"20":20,"39":39,"45":45}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(20),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(144),pageUri=require(134).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,"20":20,"134":134,"144":144}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(231),_each=require(417),Fingerprint2=require(419),DS=require(418),Eventify=require(257);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();
}, {"231":231,"257":257,"417":417,"418":418,"419":419}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(128),_forEach=require(117),_isString=require(279),_intersectionWith=require(420),_isEqual=require(285),_each=require(417),_debounce=require(161),_sortBy=require(215),page=require(134),visit=require(124);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()})}}]);
}, {"117":117,"124":124,"128":128,"134":134,"161":161,"215":215,"279":279,"285":285,"417":417,"420":420}];
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("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy","ads.legacy":"ads.legacy"}];
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();
// ]]