ADVERTISEMENT

A taste of Singapore closer to home with Tiong Bahru Singapore Flavours

From Hainanese chicken to laksa, hawker staples arrive in the Philippines

Published Apr 9, 2026 09:44 pm
Gateway Mall branch (Photo courtesy of Tiong Bahru Singapore Flavours)
Gateway Mall branch (Photo courtesy of Tiong Bahru Singapore Flavours)
Singaporean food often comes down to variety. One table, several dishes, each one different from the next.
That is the idea behind Tiong Bahru Singapore Flavours, a restaurant that has been serving Singaporean dishes in the Philippines since 2019. Named after the well-known neighborhood in Singapore, the concept draws from the experience of hawker centers, where meals are quick, varied, and built around everyday favorites.
Now operating under the name Tiong Bahru Singapore Flavours, the restaurant reflects the brand’s continued growth in the Philippines, while keeping its focus on introducing diners to the range of dishes found in Singapore’s hawker centres. In that sense, it also bridges a gap, bringing flavors that are not always easy to find locally into a more accessible setting.
The menu is anchored on dishes that are widely associated with Singaporean cuisine. Hainanese chicken is one of them, poached chicken served with seasoned rice and a mix of ginger, chili, and soy sauces. For those who prefer something with more texture, there is also a roasted version, with skin that comes out crisp while keeping the meat tender.
(Photo courtesy of Tiong Bahru Singapore Flavours)
(Photo courtesy of Tiong Bahru Singapore Flavours)
(Photo courtesy of Tiong Bahru Singapore Flavours)
(Photo courtesy of Tiong Bahru Singapore Flavours)
(Photo courtesy of Tiong Bahru Singapore Flavours)
(Photo courtesy of Tiong Bahru Singapore Flavours)
Beyond that, the selection opens up to other staples. Bak kut teh offers a peppery pork rib broth served hot, with pieces of pork that hold up well in the soup. Laksa, on the other hand, leans richer, with a spiced broth and noodles that carry the flavor through each bite.
The menu reflects what the restaurant is aiming to do, offer a range of dishes that represent the mix of influences found in Singaporean cooking, rather than focusing on a single signature plate.
Since its launch, the brand has stayed close to that idea of familiarity. Not just one dish to return for, but several, served in a way that mirrors how they are typically eaten.
The goal, as the restaurant puts it, is to offer “a true taste of Singapore, just like home.”
For diners, it is a straightforward proposition. A place to go for dishes that are already well-known, served in a setting that keeps things simple and consistent.
Antipolo Branch(Photo courtesy of Tiong Bahru Singapore Flavours)
Antipolo Branch(Photo courtesy of Tiong Bahru Singapore Flavours)
Landmark by the Bay branch (Photo courtesy of Tiong Bahru Singapore Flavours)
Landmark by the Bay branch (Photo courtesy of Tiong Bahru Singapore Flavours)

Related Tags

Singapore Tiong Bahru Manila Bulletin Lifestyle Manila Bulletin Foodies
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.