Best of Cleveland 2024 (2024)

Best Of 2024

  • 2024
  • 2023
  • 2022
  • 2021
  • 2020
  • 2019
  • 2018
  • 2017
  • 2016
  • 2015
  • 2014
  • 2013
  • 2012
  • 2011
  • 2010
  • 2009
  • 2007
  • 2006
  • 2005
  • 2004
  • 2003
  • 2002
  • 2001
  • 2000

Best of Cleveland 2024 (2)

  • Best Of Cleveland
  • 2016

Cleveland is blessed with an abundance of appealing options when it comes to ethnic eats. But only one restaurant in town does what Empress Taytu does. And what it does is transport diners to another place, where the food is exotic, the setting unique and the service as gracious as one could hope for. Authentic Ethiopian cuisine, as one might imagine, hasn’t always been an easy sell in Cleveland. But after 20-plus years, the owners here have made fans of us all. Sit at mesobs — traditional low-slung basket tables — and enjoy flavorful stews by picking them up with pieces of injera, a grainy flatbread. Given that Ethiopian cuisine has always been largely vegetarian and gluten free, it is ideally suited for modern times.

6125 St. Clair Ave., 216-391-9400,empresstayturestaurantcleveland.com.

  • Best Of Cleveland
  • 2016

Progressive Field enhances the fan experience every single year, so it’s no surprise to us that Cleveland voters overwhelmingly handed it this award. With the addition of Momocho, Fat Head’s brewery and other local eats to an already impressive roster of unique food options, going to Progressive Field is like dining out in one of Cleveland’s hottest neighborhoods. The right field District tickets (which come with a beer) are only $13 and make for an incredible evening out. And with the summer sun just around the corner, there’s no better way to spend an afternoon or evening than cheering on the Tribe in one of the nation’s most cherished ballparks.

2401 Ontario St., 216-420-4487,indians.com.

  • Best Of Cleveland
  • 2016

The Barley House has been many things in its lifetime. It was, and still is, a nightlife destination on West Sixth. Its menu offerings are better than the average bar food. It's the home of rowdy Sunday Browns tailgates and live radio shows. Cleveland's athletes still drop by every weekend, making it a place to see and be seen. But somewhere along the way, it also became the best spot for EDM music in town. There was always music, of course, and plenty of DJs. But Barley started bringing in notable national acts to hold down the weekends. While the names might not be all that familiar to folks not into the scene, those who are in the know give Barley their enthusiastic stamp of approval. Hell, chances are they left at 2 a.m. Saturday morning only to come straight back on Sunday morning to catch the 92.3 The Fan tailgate and scope out the latest Browns loss with some pals.

1261 West Sixth St., 216-623-1700, barleyhousecleveland.com.

  • Best Of Cleveland
  • 2016

Most Jamaican joints around town — and there’s a handful — follow a well-worn formula that does everything but make the experience open and accessible to timid newbies. From the bullet-proof glass to the lack of dine-in seating, these places might serve great food, but only the most diehard jerk chicken fans will brave the delivery system. Taste of Jamaica is different. Located in a Mayfield Road strip mall with plenty of parking, the restaurant is making new friends by the day. Now, we can savor those pot-roasty braised oxtails, fiery jerk chicken and flakey beef patties in a setting that has, well, seats. Even better, those tables are topped with bottles of hot sauce for the true-blue Caribbean food fan.

5104 Mayfield Rd., Lyndhurst,440-565-7230.

  • Best Of Cleveland
  • 2016

We don’t have to tell you about Sokolowski’s, the popular Polish cafeteria in Tremont. After hearing about it for so long — the joint’s been peddling perogi for 90-plus years, for Pete’s sake — you’ve surely been. You already know about the famous home-style stuffed cabbage and savory Salisbury steak, served up without fanfare to long lines of loyal fans. It’s probably only been a week or two since you’ve enjoyed a heaping plate of kielbasa or schnitzel, so thin and crisp it lingers still in your memory banks. Tell us, did you cap off your most recent meal with rice pudding, carrot cake or fresh fruit pie? It doesn’t matter. It’s all good, as we’re all well aware by now.

1201 University Rd., 216-771-9236, sokolowskis.com.

  • Best Of Cleveland
  • 2016

When former Clevelander Chad Bilyeu, a guy who runs a multimedia studio based in Amsterdam that delves into art, music, nightlife and publications, needed a local outlet to sell one of his cassette-only releases, he hit up this record store/coffee shop/art gallery. The folks there were happy to help him out as they specialize in hard-to-find releases. Well-stocked with new and used vinyl (and cassettes, too, which also are making a comeback), Loop caters to the discriminating music fan. And the best thing? You can shop with a hot cuppa joe in your hand.

2180 West 11thSt.,216-298-5096,facebook.com/loopintremont.

  • Best Of Cleveland
  • 2015
  • Readers' Choice

By now we all know that live music and tasty arepas are best enjoyed with friends and chilly cerveza. Barroco has always turned traditional dining on its head, opting to make every night a sensory overload of colorful revelry. The BYOB vibe only serves to fan the flames of those festivities. This father-and-son restaurant is chock full of authentic Colombian fare enlivened by kicky homemade sauces, so bring along a few brews to wash down all the Latin fusion fun.

12906 Madison Ave., 216-221-8127, barrocogrill.com.

  • Best Of Cleveland
  • 2015
  • Readers' Choice

Jim Donovan is the voice of the Browns, and whether or not you'd call him a "reporter" — he's been the sports director at WKYC Channel 3 since 1986 — he's most certainly on his way to Joe Tait/Tom Hamilton-level street cred. Catch him on Sports Time Ohio or Channel 3 for Browns coverage, and tune in to WKNR 850 or 92.3 the Fan to catch his play-by-play when the season rolls around. He's really one of the only consistently decent products associated with the Cleveland Browns, so there's that too.

  • Best Of Cleveland
  • 2014

Mike Polk Jr., the man behind the Hastily Made Cleveland Tourism Video, the Factory of Sadness video (parts one and two), Last Call Cleveland comedy troupe and his very own show on Fox 8 (aptly called the Mike Polk Jr. Show) has done it again. He's your favorite local comedian by a wide margin. Polk says he's stayed in Cleveland because no one has invited him elsewhere (which isn't really true), but he's a wit with a true knowledge and empathy for the region. Polk, a Kent State alum, performs regularly around town and never fails to chime in on the issues of the day with relevant, humorous commentary. Not only do fans love Polk, but his fellow comedians do too. He's a consummate cheerleader for the craft and always around to offer advice to youngsters just starting out on the stage. Seriously, he's always around. Just go to his house and knock on his door. He'll be glad you stopped by, or at least too polite to show you otherwise.

@mikepolkjr.

Staff Pick: Ramon Rivas

  • Best Of Cleveland
  • 2014

The Lake Erie Monsters repeat for Best Minor League Team and we continue to agree for at least a few reasons. Because Cleveland has no NHL squad, the Monsters remain the only option on the ice (unless you get tickets to University School vs. Padua or something). Plus, the Monsters play at the Q, so it's not like you need to pack a picnic lunch on your trip to Akron or Lake County. The Monsters are the AHL affiliate of the Colorado Avalanche and going to a game has all the in-game flare of the Cleveland Cavaliers, plus the bonus of a team that's actually competitive. In general, prices are cheaper and crowds are thinner, and it's a perfect venue for a date, a family outing, or a night out with some hockey fans.

Lakeeriemonsters.com.

Staff Pick: Akron Rubber Ducks

'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['CLE_LeaderboardHeader-1']) === 'object') {Foundation.Ad.refresh('CLE_LeaderboardHeader-1')}if (typeof (Foundation.Ad.slots['CLE_Footer-1']) === 'object') {Foundation.Ad.showFooter('CLE_Footer-1');}})// Try to init immediatelyBestOfItems.init()// On document loadedjQuery(function () {BestOfItems.init()})})();

Best of Cleveland 2024 (2024)

References

Top Articles
Latest Posts
Article information

Author: Tyson Zemlak

Last Updated:

Views: 6141

Rating: 4.2 / 5 (63 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Tyson Zemlak

Birthday: 1992-03-17

Address: Apt. 662 96191 Quigley Dam, Kubview, MA 42013

Phone: +441678032891

Job: Community-Services Orchestrator

Hobby: Coffee roasting, Calligraphy, Metalworking, Fashion, Vehicle restoration, Shopping, Photography

Introduction: My name is Tyson Zemlak, I am a excited, light, sparkling, super, open, fair, magnificent person who loves writing and wants to share my knowledge and understanding with you.