Best Of 2024
- 2024
- 2023
- 2022
- 2021
- 2020
- 2019
- 2018
- 2017
- 2016
- 2015
- 2014
- 2013
- 2012
- 2011
- 2010
- 2009
- 2008
- 2007
- 2006
- 2005
- 1997
- Staff Picks
- Readers' Choices
- Drinking + Nightlife
- Arts + Entertainment
- Local Notables
- Food + Dining
- Services
- Attractions + Recreation
- City Life
- Health, Beauty + Wellness
- Local Music
- Shopping + Retail
- Drinking + Nightlife
- Arts + Entertainment
- Local Notables
- Food + Dining
- Services
- Attractions + Recreation
- City Life
- Health, Beauty + Wellness
- Local Music
- Shopping + Retail
- Best Of Orlando
- 2024
- Health, Beauty + Wellness
- Readers' Choice
Winner: Terrie Makin, Park Ave Cryotherapy, parkavecryo.com
2nd: Victoria Nelson, drphillipsaesthetics.net/victoria-nelson
3rd: Samantha Gainey, Be Well Holistic Care, bewellcfl.com
Previous Winners
- 2023Riley Arnold at Dishman Chiropractic
- 2022Best Massage Therapist
Orlando synchronized swimming: Trying to keep your perfect hair and makeup from sliding off your head in 100% humidity
- Best Of Orlando
- 2024
- Health, Beauty + Wellness
- Readers' Choice
Winner: Be Well Holistic Care, bewellcfl.com
2nd: Dr. Audra Baker, Baker Family Chiropractic, bakerfamilychiro.com
3rd: Melanie Mendoza, The Salt Room and Wellness Spa, saltroomorlando.com
- Best Of Orlando
- 2024
- Health, Beauty + Wellness
- Readers' Choice
Winner: The Bar Method Winter Park, barmethod.com
2nd: Pure Barre Orlando, purebarre.com
3rd: Breaking Barre, breaking-barre.com
- Best Of Orlando
- 2024
- Health, Beauty + Wellness
- Staff Pick
- Readers' Choice
Winner: Dishman Chiropractic and Wellness Center, celebrationchiro.com
2nd: Baker Family Chiropractic, bakerfamilychiro.com
3rd: Dr. Brooks Saunders, facebook.com/brooks.saunders.3
- Best Of Orlando
- 2024
- Health, Beauty + Wellness
- Staff Pick
- Readers' Choice
THC gummies, or, as Florida's Department of Health prefers to call them, "soft chews," are a tasty way to get a buzz for those who can't smoke (or prefer not to), but all chews are not made equal when it comes to either flavor or effects. Camino gummies, available at AYR, are sweet but not saccharine; they'd be a tasty treat even without any THC, but rest assured, after the 60 or 90 minutes it takes most edibles to kick in, they deliver. Pineapple Habañero (which reminds us of a spicy margarita in the best way) induces the energetic head tingles characteristic of sativas, while Midnight Berry will give you that stereotypical indica couch-lock. Chomp chomp.
multiple locations, ayrdispensaries.com
- Best Of Orlando
- 2024
- Health, Beauty + Wellness
- Readers' Choice
Winner: The Ritz-Carlton Spa, Orlando, Grande Lakes, ritzcarlton.com
2nd: The Now Massage Downtown Orlando, thenowmassage.com/downtown-orlando
3rd: Be Well Holistic Care, bewellcfl.com
- Best Of Orlando
- 2024
- Health, Beauty + Wellness
- Readers' Choice
Winner: Park Smiles Dentistry, dentistwinterpark.com
2nd: Hamlin Modern Dentistry, hamlinmoderndentistry.com
3rd: Celebration Dental Group, celebrationdentalgroup.com
- Best Of Orlando
- 2024
- Health, Beauty + Wellness
- Readers' Choice
Winner: Sand Lake Dermatology Center, sandlakedermatology.com
2nd: Derrow Dermatology, derrowdermatology.com
3rd: Knight Dermatology, knightdermatology.com
- Best Of Orlando
- 2024
- Health, Beauty + Wellness
- Readers' Choice
Winner: Erica Icovitti, Be Well Holistic Care, bewellcfl.com
2nd: Victoria Nelson, drphillipsaesthetics.net/victoria-nelson
3rd: Karen Marie Schmal, Bijoux Med Spa, facebook.com/karen.carnicellischmal, bijouxmedspa.com
- Best Of Orlando
- 2024
- Health, Beauty + Wellness
- Readers' Choice
Winner: Oxford Eyes, oxfordeyes.com
2nd: Eola Eyes, eolaeyes.com
3rd: Florida Eye Clinic, floridaeyeclinic.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()})})();