First Look
Doce Mesas in Uptown is strong on drinks but skip the Queso Doce. And maybe the enchiladas (and beans) too.
By Desiree Gutierrez
October 8, 2024
Combo No. 5 at Doce Mesas will cure whatever ails you.Desiree Gutierrez
`,`
Related
- Vector Brewing Now Serving Breakfast (Plus a Heavenly Cinnamon Roll)
`,`
Related
`,`
Related
- Abby's Bagels: Lower Greenville's Go-To for Hot Bagels and Strong Espresso
`,`
Related
- First Look: Everything Madeleine in Historic Downtown Carrollton
`,`
Related
- Molcajete Taquero: The Star of the Taqueria Catrinas Menu
`,`
Related
- Patrick Kennedy's Irish Pub: Comfort Food in the Heart of Downtown
`,`
Related
- Is Mar y Sol More Than an Influencer Trap?
`,`
Related
- We Try Plano's New All-You-Can-Eat Sushi Spot (We'll Be Back)
`,`
Related
- First Look: Omar Flores' New Seafood Spot Even Coast
` ];
Legendary restaurateur Michael “Mico” Rodriguez has been a part of many Dallas Tex-Mex staples, including co-founding Mi Cocina and serving as CEO of Mesero Restaurant Group. Now, he is leading the expansion of the Mexican and Tex-Mex restaurant Doce Mesas.
Doce Mesas’ third location opened in mid-September in Uptown at the remodeled and reimagined Maple Terrace. The original building, built in the '20s, has been embellished with a glossy new mixed-use development add-on. The California coast-inspired restaurant pays homage to the storied restaurateur's roots.
In 1991, Rodriguez broke into the Dallas dining scene with the original Mi Cocina, a 12-table (hence, doce mesas) Preston Hollow restaurant that reimagined Tex-Mex as upscale fare. From a 2009 DMagazine articletitled "The Rise and Fall of Dallas Restaurateur Mico Rodriguez," his initial $82,500 investment skyrocketed into current-day six-figure annual revenue for M Crowd Restaurant Group, Mi Cocina’s parent company.
Most iconically, Rodriguez introduced Dallas to the Mambo Taxi, a swirl margarita that has become synonymous with Dallas drinking. He exited M Crowd Restaurant Group under controversy (as detailed at length in the DMagazine article) butlater reemerged to open Mr. Mesero, a relationship that also soured. Finally, Rodriguez has found his pace with Doce Mesas in a new iconic space.
The breezy restaurant is built on Rodriguez’s upscale Tex-Mex legacy. He kept his recipe for success consistent — plenty of enchiladas, potent drinks and tasteful decor. No reservations. It's worked. And Rodriguez's comeback isn’t slowing down.
click to enlarge
The new Doce Mesas is inside an adjacent space to Maple Terrace.
Desiree Gutierrez
The third Doce Mesas is breezy. Floor-to-ceiling windows open up the space. A covered terrace is surrounded by lush greenery. The interior seems small at first glance, but there is plenty of seating. A mix of seating options (high-top, the bar and tables) and a large rounded booth provide enough space for privacy. There is a generous cushioned wall bench that easily accommodates a party of 14.
At noon on a Saturday, Doce Mesas was surprisingly empty. A group of four diners sat on the terrace. We were the only ones inside. But, every table was occupied by 1 p.m.
This Doce Mesas location offers breakfast available daily. There are chilaquiles verdes and rojos ($14 each), Mayan French toast made with challah pullman bread ($14), and the El Jefe Breakfast ($18), a ribeye steak with two eggs, avocado, chimichurri sauce, and roasted potatoes. There’s Abuelita hot chocolate ($4) and Mexican coffee ($4) on the beverage menu.
click to enlarge
Doce Mesas' iteration of the skinny margarita (right), Le Barbie, with a hit of spice added. The Cincuenta Y Siete (left) is one and done.
Desiree Gutierrez
We decided to go for the classics Rodriguez is known for. We began with a frozen skinny margarita called Le Barbie ($14). We asked for it spicy, a lofty request for a frozen margarita, but we thought we’d give it a shot. The bar accommodated this request with ease. The spicy Le Barbie was strong with no artificial sugar aftertaste. The jalapeño spices and Tajin rim gave the drink the right amount of kick.
The Cincuenta Y Siete ($17) is a one and done. It’s Doce Mesas The One Mambo King swirl margarita ($14) with a Cointreau Noir floater.
click to enlarge
The Doce Queso is tasty, but not for long.
Desiree Gutierrez
The drinks paired well with the complimentary crispy round tortilla chips, red salsa and roasted tomatillo salsa. We ordered a cup of the Queso Doce ($11). One bite of the queso gave flashbacks to the Observer’s 2013 review of Miguel Mesero, an early iteration of Mesero. The gelatinous queso is made with spinach, white cheddar, charged poblano and artichokes. Within five minutes, the appetizer had solidified.
click to enlarge
The Chin-Chin salad with charred chicken.
Desiree Gutierrez
Main courses didn’t fare any better. The Chin-Chin salad ($17) looks irresistible on Instagram. A heaping mound of mixed lettuce salad is served alongside a nicely charred chicken. Jicama, roasted corn and peanut ginger dressing add depth to the salad. Unfortunately, the bountiful serving of mixed lettuce was wilted.
The “Composed” menu section offers combination plates. The No. 5 has the most variety. For $18, diners get an enchilada norteña, beef picadillo taco, enchilada blanco, red rice and pinto beans. The enchilada blanco swam in the processed queso. The enchilada norteña leaned salty. The plate was served with black beans, instead of pinto. The rice and beef picadillo taco were bland.
Rodriguez's consistency is undeniable. He’s mastered the margarita and the ability to make plates deceivingly appealing, but we won’t be deterred. That Le Barbie is the best skinny margarita we’ve had.
Doce Mesas, 3007 Maple Ave. Monday – Thursday, 8 a.m. – 10 p.m.; Friday, 8 a.m. –11 p.m.; Saturday, 9 a.m. – 11 p.m.; Sunday, 9 a.m. – 10 p.m.
') let lineHeight = jQuery('[line-height-check]').get(0).clientHeight; jQuery('[line-height-check]').remove() if (jQuery(element).prop('tagName').match(/HIDDEN/i) !== null) { jQuery(element).children('div').last().css({ marginBottom: `${lineHeight*2}px` }); } else { jQuery(element).css({ marginTop: `${lineHeight*2}px`, marginBottom: `${lineHeight}px` }); } // const insertionBlockClass = `fdn-paragraph-insertion-block`; const styleElementHook = `fdn-paragraph-insertion-styles`; jQuery(element).addClass(insertionBlockClass); if (jQuery(`[${styleElementHook}]`).length === 0) { jQuery('div.fdn-content-body, div #storyBody').append('
') const paragraphLineHeight = jQuery('[line-height-check]').get(0).clientHeight; jQuery('[line-height-check]').remove() const styleElement = jQuery(`
`); const styleText = ` div.fdn-content-body br+.${insertionBlockClass}:not([hidden]), div #storyBody br+.${insertionBlockClass}:not([hidden]) { margin-top: ${paragraphLineHeight*2}px; margin-bottom: ${paragraphLineHeight}px; } div.fdn-content-body br+.${insertionBlockClass}[hidden] > div:last-of-type, div #storyBody br+.${insertionBlockClass}[hidden] > div:last-of-type { margin-bottom: ${paragraphLineHeight*2}px; } ` styleElement.text(styleText); jQuery('head').append(styleElement); } // } } jQuery(element).insertBefore(this.paragraphEndNodes[index]); } else { console.warn('Foundation.ParagraphTool.insertElemenAt: invalid insertion index', index); } } this.insertElemenAtEnd = function (element) { if (this.paragraphEndNodes.length) { let lastNode = this.getNodeAtIndex(this.paragraphEndNodes.length -1); if (this.isDoubleBrParagraphBreak(lastNode) || this.isBrParagraphBreakBeforeBlockElement(lastNode)) { if (jQuery(element).get(0).tagName.match(/SCRIPT/i) !== null) { jQuery('
').insertAfter(this.paragraphEndNodes[index]); jQuery('
').insertAfter(this.paragraphEndNodes[index]); } else { jQuery('div.fdn-content-body, div #storyBody').append('
') let lineHeight = jQuery('[line-height-check]').get(0).clientHeight; jQuery('[line-height-check]').remove() if (jQuery(element).prop('tagName').match(/HIDDEN/i) !== null) { jQuery(element).children('div').last().css({ marginBottom: `${lineHeight*2}px` }); } else { jQuery(element).css({ marginTop: `${lineHeight*2}px`, marginBottom: `${lineHeight}px` }); } } } } this.bodyContainer.append(element); } this.getNodeAtIndex = function (index) { return this.paragraphEndNodes[index]; } }
`); } var paragraphCount = myParagraphTool.getParagraphEndNodeCount(); // No need to insert if there aren't enough paragaphs if (paragraphCount >= parseInt(item.requiredCountToDisplay)) { // Matches specific paragraph insertion indexes if (item.insertPoint.match(/^\d+$/) !== null) { var insertIndex = parseInt(item.insertPoint) - 1; // Insert within content if (insertIndex < paragraphCount) { myParagraphTool.insertElemenAtIndex(componentElement, insertIndex); } // Append to the end if the insert point is beyond the paragraph count else { myParagraphTool.insertElemenAtEnd(componentElement) } } // Matches for 1/2, 1/4, 2/3, 5/6, etc else if (item.insertPoint.match(/^[1223456]\/[23456]$/) !== null) { var fractionMatch = new RegExp(/^([123456])(?:\/)([23456]$)/); var fractionPart = parseInt(item.insertPoint.match(fractionMatch)[1]); var fractionWhole = parseInt(item.insertPoint.match(fractionMatch)[2]); var fractionValue = fractionPart / fractionWhole; var fractionIndex = Math.floor(myParagraphTool.paragraphEndNodes.length * fractionValue) - 1; myParagraphTool.insertElemenAtIndex(componentElement, fractionIndex); } // Matches for every Nth insertion point else if (item.insertPoint.match(/^\d*th$/i) !== null) { var intervalIndex = parseInt(item.insertPoint.match(/^(\d*)th$/i)[1]); var startingIndex = parseInt(item.startingPoint) - 1; var insertionMax = parseInt(item.maxInsertions) || 100; var insertionCount = 0; for (var i = startingIndex; i < myParagraphTool.paragraphEndNodes.length && insertionCount < insertionMax; i++) { if ((i - startingIndex) % intervalIndex === 0) { let currentNode = myParagraphTool.getNodeAtIndex(i); const clonedComponent = componentElement.clone(); myParagraphTool.insertElemenAtIndex(clonedComponent, i); insertionCount++; } } } } }); Foundation.Content['20656917'].setupInlineComponents = function () { return true; }; if (typeof callback === 'function') { callback(); } }, 200); } Foundation.Content['20656917'].previewInsertionPoints = function () { var myParagraphTool = Foundation.Content['20656917'].paragraphTool myParagraphTool.paragraphEndNodes.each((index, item) => { const insertionPointPlaceholder = jQuery(`
`) myParagraphTool.insertElemenAtIndex(insertionPointPlaceholder, index); }); return 'Paragraph insertion placeholders applied.'; }