Best Of 2022
- 2023
- 2022
- 2021
- 2020
- 2019
- 2018
- 2017
- 2016
- 2015
- 2014
- 2013
- 2012
- 2011
- 2010
- 2009
- 2008
- 2007
- 2006
- 2005
- 1997
- Drinking + Nightlife
- Local Notables
- Arts + Entertainment
- Food + Dining
- Services
- Attractions + Recreation
- City Life
- Health, Beauty + Wellness
- Local Music
- Shopping + Retail
- Best Of Orlando
- 2022
- Food + Dining
- Readers' Choice
1st: Don Julio Mexican Kitchen & Tequila Bar, donjuliomexicankitchen.com
2nd: F&D Cantina, fdcantina.com
3rd (tie): Dexter's of Lake Mary, dexterslakemaryfl.com
3rd (tie): Fishbones, fishbonesrestaurants.com
Previous Winners
- 2023F+D Cantina
Local Legends: Jason and Sue Chin
This (super)power couple must have the ability to freeze time, because somehow they split their energies among all the entities in their Good Salt Restaurant Group, including Seito Sushi, The Osprey, Reyes Mezcaleria and The Monroe. The Chins are staunch supporters of local chef talent and front-of-house rockstars, and they're steady builders of Orlando's fine dining scene.
- Best Of Orlando
- 2022
- Food + Dining
- Readers' Choice
1st: Santiago's Bodega, santiagosbodega.com
2nd: Seasons 52, seasons52.com
3rd: Tibby's New Orleans Kitchen, tibbys.com
- Best Of Orlando
- 2022
- Food + Dining
- Readers' Choice
1st: Domu, domufl.com
2nd: Winter Park Biscuit Co., winterparkbiscuitco.com
3rd: Seito Sushi Baldwin Park, seitosushibp.com
- Best Of Orlando
- 2022
- Food + Dining
- Readers' Choice
1st: The Glass Knife, theglassknife.com
Not content to simply present an array of sweet treats to be boxed up and whisked away to a workplace breakroom, The Glass Knife elevates the confectionary experience to an encounter with delicate and delectable art.
2nd: Gideon's Bakehouse, gideonsbakehouse.com
3rd: Se7en Bites, se7enbites.com
- Best Of Orlando
- 2022
- Food + Dining
- Readers' Choice
1st: 4 Rivers Smokehouse, 4rsmokehouse.com
2nd: Pig Floyd's, pigfloyds.com
3rd: Yellow Dog Eats, yellowdogeats.com
- Best Of Orlando
- 2022
- Food + Dining
- Readers' Choice
1st: Agave Azul, agaveazulcocinamex.com
2nd: Hunger Street Tacos, hungerstreettacos.com
3rd: Don Julio Mexican Kitchen & Tequila Bar, donjuliomexicankitchen.com
- Best Of Orlando
- 2022
- Food + Dining
- Readers' Choice
1st: Royaltea Orlando, royalteaus.com
2nd: Quickly Boba, quicklybobasnowtogo.com
3rd: Chewy Boba Co., chewyboba.com
- Best Of Orlando
- 2022
- Food + Dining
- Readers' Choice
1st: Se7en Bites, se7enbites.com
2nd: The Briarpatch, thebriarpatchrestaurant.com
3rd: First Watch, firstwatch.com
- Best Of Orlando
- 2022
- Food + Dining
- Readers' Choice
1st: Santiago's Bodega, santiagosbodega.com
2nd: Maxine's on Shine, maxinesonshine.com
3rd: The Briarpatch, thebriarpatchrestaurant.com
- Best Of Orlando
- 2022
- Food + Dining
- Readers' Choice
1st: The Tap Room at Dubsdread, taproomatdubsdread.com
2nd: Teak Neighborhood Grill, teakorlando.com
3rd: The Hangry Bison, thehangrybison.com
'Object.defineProperties(this, {'items': { get: function() { return jQuery(this.itemContainerSelector).find(this.itemSelector)}},'currentItem': {get: function() {var foundItem = nullvar foundItemInView = nullthis.items.each(function () {var currentInView = elementInView(jQuery(this), scrollTopOffset, 0)if (currentInView) {// An in view item is already located extra logicif (foundItemInView && foundItemInView.inView) {// The entire previously found item is visible - it winsif (foundItemInView.topInView && foundItemInView.bottomInView) return// The previously found item covers the visible area - it winsif (foundItemInView.middleCoversView) return// The previously found item has more surface area - it winsif (foundItemInView.percentVisable > currentInView.percentOfViewHeight) return}foundItem = jQuery(this)foundItemInView = currentInView}})return foundItem}},'currentItemIndex': {get: function() {var currentElement = this.currentItem.closest('[bestof-index]')if(currentElement) {return parseInt(currentElement.attr('bestof-index'))}return null}},'currentItemId': {get: function() {var currentElement = this.currentItem.closest('[bestof-id]')if(currentElement) {return currentElement.attr('bestof-id')}return null}}})var bestOfInstance = thisvar scrollTopOffset = window.innerHeight > this.smallMenuBreakPoint ? 110 : 140var originUrl = window.location.hrefthis.scrollToIndex = function (index) {var bestOfItem = this.items.filter('[bestof-index="' + index + '"]')if (bestOfItem.length) { var topOffset = bestOfItem.offset().top - scrollTopOffset// window.scrollTo({ top: topOffset, behavior: 'smooth' })window.scrollTo({ top: topOffset, behavior: 'auto' })}else {this.fetchMore(index, function () {bestOfInstance.scrollToIndex(index)})}}this.fetchMore = function (startIndex, callback) {var currentItemOnFetch = this.currentItemvar url = window.location.origin + window.location.pathnamevar params = {ajaxComponent: componentId,action: 'grabMore',startIndex: startIndex,startingItem: jQuery('[bestof-starting-item]').attr('bestof-starting-item'),}var keywords = currentItemOnFetch.attr('bestof-keywords')if (keywords) {params.keywords = keywords}var featureValue = currentItemOnFetch.attr('bestof-feature')if (featureValue) {params.feature = featureValue}jQuery.ajax({url: url,type: 'GET',data: params,dataType: 'json',beforeSend: function () { console.log('Fetching results') },success: function (data) {console.log('success', data.results, data.results.length, data.error, data)if (data) {if (data.error) {console.log(data.error)}else if (data.results) {console.log('bestOfInstance.items', bestOfInstance.items)for (var i = 0; i < data.results.length; i++) {var resultItem = jQuery(data.results[i])var resultItemIndex = parseInt(resultItem.attr('bestof-index'))var resultAlreadyInserted = bestOfInstance.items.filter('[bestof-index="' + resultItemIndex + '"]').length > 0console.log('result', resultItemIndex)var previousItem = nullvar previousItemIndex = 0if (!resultAlreadyInserted) {bestOfInstance.items.each(function () {if (resultAlreadyInserted) returnvar currentItem = jQuery(this)var currentItemIndex = parseInt(currentItem.attr('bestof-index'))if (resultItemIndex === currentItemIndex ) {resultAlreadyInserted = truereturn}else if (resultItemIndex > previousItemIndex && resultItemIndex < currentItemIndex) {var topOffsetBeforeInsert = currentItemOnFetch.get(0).getBoundingClientRect().topresultItem.insertBefore(currentItem)resultAlreadyInserted = truevar adjustedTopPosition = currentItemOnFetch.offset().top - topOffsetBeforeInsertwindow.scrollTo({ top: adjustedTopPosition, behavior: 'auto' })}previousItem = currentItempreviousItemIndex = currentItemIndex})if (!resultAlreadyInserted) {var topOffsetBeforeInsert = currentItemOnFetch.get(0).getBoundingClientRect().topresultItem.insertAfter(bestOfInstance.items.last())resultAlreadyInserted = truevar adjustedTopPosition = currentItemOnFetch.offset().top - topOffsetBeforeInsertwindow.scrollTo({ top: adjustedTopPosition, behavior: 'auto' })}}}}else { console.log('How did we get here?') }}else { console.log('No result or error returned from content request.') }},complete: function () { bestOfInstance.items = jQuery(bestOfInstance.itemSelector) // Update items resultjQuery(bestOfInstance.itemContainerSelector + ' div[uk-spinner]').remove()if (typeof callback === 'function') { callback() }},error: function (error) { console.log(error) }})}var lazyLoadTimeout = nullvar lazyLoadSurroundingItems = function (index) {if (bestOfInstance.lazyLoadMoreResults) {// Give lazyLoad a chance to finish before submiting more requestsvar lazyLoadTimeout = setTimeout(function () {var prevIndex = Math.max(index - 1, 1)var prevPrevIndex = Math.max(index - 2, 1)var nextIndex = index + 1var nextNextIndex = index + 2var prevIndexLoaded = bestOfInstance.items.filter('[bestof-index="' + prevIndex + '"]').length > 0var prevPrevIndexLoaded = bestOfInstance.items.filter('[bestof-index="' + prevPrevIndex + '"]').length > 0var nextIndexLoaded = bestOfInstance.items.filter('[bestof-index="' + nextIndex + '"]').length > 0var nextNextIndexLoaded = bestOfInstance.items.filter('[bestof-index="' + nextNextIndex + '"]').length > 0if(!prevIndexLoaded) {jQuery(bestOfInstance.itemContainerSelector + ' div[uk-spinner]').remove()// jQuery(bestOfInstance.itemContainerSelector).prepend(bestOfInstance.spinnerHTML)bestOfInstance.fetchMore(Math.max(prevIndex - 9, 1))}else if(!prevPrevIndexLoaded) {jQuery(bestOfInstance.itemContainerSelector + ' div[uk-spinner]').remove()// jQuery(bestOfInstance.itemContainerSelector).prepend(bestOfInstance.spinnerHTML)bestOfInstance.fetchMore(Math.max(prevPrevIndex - 9, 1))}if(!nextIndexLoaded) {jQuery(bestOfInstance.itemContainerSelector + ' div[uk-spinner]').remove()jQuery(bestOfInstance.itemContainerSelector).append(bestOfInstance.spinnerHTML)bestOfInstance.fetchMore(nextIndex)}else if(!nextNextIndexLoaded) {jQuery(bestOfInstance.itemContainerSelector + ' div[uk-spinner]').remove()jQuery(bestOfInstance.itemContainerSelector).append(bestOfInstance.spinnerHTML)bestOfInstance.fetchMore(nextNextIndex)}}, 500)}}var lastIndex = bestOfInstance.currentItemIndexjQuery(window).on('scroll resize', function () {// Give lazyLoad a chance to finish before submiting more requests// var lazyLoadTimeout = setTimeout(function () {// }, 200)var currentIndex = bestOfInstance.currentItemIndexif(currentIndex !== lastIndex) {lastIndex = currentIndexlazyLoadSurroundingItems(currentIndex)console.log(`BestOf Item index: ${currentIndex}`)fireEvent('foundation:bestof:itemchange')}})this.initialized = falsethis.init = function () {if (this.initialized === true) return// Prevent the browser from trying to scroll to the last scroll position before reloadif (history.scrollRestoration) {history.scrollRestoration = 'manual'}var startIndex = this.items.first().attr('bestof-index')var oid = window.location.pathname.match(/\d+$/)if (oid) {var grabIndex = parseInt(this.items.closest('[bestof-id="' + oid[0] + '"]').attr('bestof-index'))if (!isNaN(grabIndex)) {var startIndex = grabIndex}}if (startIndex > 1) {this.scrollToIndex(startIndex)}if(jQuery(this.itemContainerSelector + '[single-listing]').length === 0) {this.lazyLoadMoreResults = true}this.initialized = truelazyLoadSurroundingItems(startIndex)}return this}var BestOfItems = new BestOfItemsObj()// Timeout to prevent fast jogging from item to itemvar itemChangeTimeout = nulljQuery(document).on('foundation:bestof:itemchange', function () {itemChangeTimeout = setTimeout(function () {updateMetaDataFromElement(BestOfItems.currentItem)// Google track pageviewif (typeof ga === 'function') {console.log("foundation:bestof:itemchange event", "sending pageview navigation to:", window.location.href);ga('set', 'location', window.location.href)for (let i = 1; i <= 3; i++) {let currentDimension = jQuery(BestOfItems.currentItem).attr('ga-dimension'+i)if (typeof currentDimension === 'string') {ga('set', 'dimension' + i, currentDimension)}else {ga('set', 'dimension' + i, '') }}ga('send', 'pageview')}}, 200)if (typeof (Foundation.Ad.slots['_LeaderboardHeader-1']) === 'object') {Foundation.Ad.refresh('_LeaderboardHeader-1')}if (typeof (Foundation.Ad.slots['_Footer-1']) === 'object') {Foundation.Ad.showFooter('_Footer-1');}})// Try to init immediatelyBestOfItems.init()// On document loadedjQuery(function () {BestOfItems.init()})})();