ADVERTISEMENT

Mothers at work in Dangwa's flower rush

Published May 9, 2026 10:34 am  |  Updated May 9, 2026 02:23 pm
Mother vendors cut and arrange flowers in the scorching heat along Dos Castillas Street in Dangwa, as demand for Mother’s Day keeps stalls busy throughout the day. (Photo taken by Diann Calucin/MANILA BULLETIN)
Mother vendors cut and arrange flowers in the scorching heat along Dos Castillas Street in Dangwa, as demand for Mother’s Day keeps stalls busy throughout the day. (Photo taken by Diann Calucin/MANILA BULLETIN)

On Mother’s Day in Dangwa, women behind flower stalls cut stems, arrange bouquets, and wrap roses in plastic, calling out prices over the steady hum of engines and crowds they hardly notice anymore.

Around them, the rush moves fast, customers weaving through tight spaces, motorcycles inching past rows of stalls, and vendors wrapping bouquets as quickly as they are sold.

Between the streets of Dapitan, Laong Laan, and Dos Castillas, the occasion feels less like a celebration and more like a deadline.

Before sunrise, vendor mothers across hundreds of stalls were already unloading flowers, sorting stems, and setting up makeshift displays.

By mid-morning, the streets had filled, sidewalks narrowed, traffic slowed, and selling picked up steadily as the day went on.

For many, it means hours of standing under the heat, hands constantly at work, with little time to rest.

“Wala pong pahinga pag ganito. Tuloy-tuloy ang dating ng tao, kailangan mabilis ka rin (There’s no rest in situations like this. People keep coming, so you also have to work fast),” said one vendor who has been selling flowers in Dangwa for decades.

A woman in an apron weighs and sorts flower stems at a stall along Dos Castillas Street in Dangwa, carefully preparing bundles for Mother’s Day buyers.
A woman in an apron weighs and sorts flower stems at a stall along Dos Castillas Street in Dangwa, carefully preparing bundles for Mother’s Day buyers.

Another mother described the rush as relentless.

“Minsan hindi ka na nakakain sa oras. Basta benta lang nang benta habang may bumibili (Sometimes you don’t even get to eat on time. You just keep selling as long as there are customers),” she said, briefly pausing before turning to another customer.

At Hannah’s Flower Shop, a long-standing business inside the Dangwa Flower Market, workers extended their selling area onto Dos Castillas Street to keep up with demand.

Staff moved quickly between buckets of fresh flowers, assembling bouquets in near-constant motion as orders piled up.

The shop noted that aside from Mother’s Day -- celebrated every second Sunday of May -- graduation season is also driving the surge in buyers, with some motorists even pulling over to buy bouquets, while others purchase flowers in bulk to resell in their areas.

With crowds building as early as 4 a.m., traffic along Dapitan, Laong Laan, and Dos Castillas crawled as stalls spilled into the streets and buyers filled every available space, turning the area into a dense flow of movement and trade.

In the middle of it all are mothers, hands full of flowers, eyes already on the next customer.

They may be surrounded by flowers, but for many of them, the day is spent selling bouquets instead of receiving them.

Related Tags

METRONEWS Manila MOTHERS DAY
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.