ADVERTISEMENT

Flame and finesse

At Ember by Josh Boutwood, the prix fixe lunch glows with bold flavor, elegance and value

Published Jun 25, 2025 08:55 am
There’s a quiet confidence that comes with restraint. At Ember in Greenbelt 3, that confidence is plated with elegance. Chef Josh Boutwood is at the helm, and his food has always leaned into subtlety and depth rather than flash. Ember’s recently launched prix fixe lunch menu follows that path. It is compact, thoughtful and quietly excellent.
Available weekdays from 11 a.m. to 3 p.m., the prix fixe menu is structured for both efficiency and indulgence. It offers a two-course set at ₱1,250, or a three-course version with dessert at ₱1,450. In a city where mid-day meals too often feel rushed and forgettable, this is a deliberate invitation to pause.
Liver Parfait, sourdough, pickles
Liver Parfait, sourdough, pickles
Seasonal soup
Seasonal soup
Ember sides
Ember sides
The starters make it clear this is not a perfunctory lunch. A plate of thin-sliced apple with pumpkin seeds and capicola is layered in both texture and tone—sweet, salty, soft, crisp. The liver parfait arrives with a sheen of richness, spread onto toasted sourdough and cut by briny pickles. Even the seasonal soup (on a recent visit, a roasted tomato bisque) felt composed rather than convenient.
For mains, the lineup draws from global inspirations but filters them through Josh’s refined lens. The chicken with cilantro and lime is bright and fragrant. The halibut, paired with butterhead lettuce and bacon, carries a quiet smokiness. The pork tomahawk is generous and seared just to the edge of char, glazed with a sweet and spicy mix of peach and habanero. The 300g ribeye, an upgrade for ₱2,050, is indulgent and sings in garlic butter.
Side options include creamy mashed potatoes, nutty wild rice or corn ribs with a hint of char and sweetness.
This isn’t a kitchen just coasting on the lunch rush. The execution is precise and the space, with its modern and slightly moody atmosphere, stays true to Ember’s refined but welcoming personality.
While the prix fixe lunch is a new offering, it feels right at home in Ember’s lineup. The full menu remains filled with favorites. The mushroom with comté and hazelnut is earthy and elegant. The octopus, charred and spiced with harissa, draws from Mediterranean flavors but feels unmistakably Ember. And then there’s the bone-in ribeye, a dramatic showpiece for meat lovers.
Pork Tomahawk
Pork Tomahawk
Ember Steak
Ember Steak
Tres Leches
Tres Leches
Halibut
Halibut
What stands out most is how this lunch menu reflects the Bistro Group’s approach as a whole. These aren’t throwaway promos. They’re well thought out, crafted with intent and designed with the dining public in mind. It’s good business, yes. But more than that, it’s thoughtful hospitality.
Kudos to Josh, too, for keeping that vision burning strong.
Ember is located at Greenbelt 3. For reservations, visit joshboutwood.net/restaurants/ember or call +63 916 420 1600. Follow them on Instagram @ember.manila.

ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.