ADVERTISEMENT

'Ganito, Ganyan, Ganoon': A Filipino family drama that refuses to feel familiar

Published Aug 15, 2026 11:38 am  |  Updated Aug 15, 2026 01:07 pm
Cast of the film
Cast of the film "Ganito, Ganyan, Ganoon"
By Margaret Tipton Siytangco
The first thing that struck me about "Ganito, Ganyan, Ganoon" was how unlike a typical Filipino family drama it felt. I don’t mean that as a criticism. If anything, I think director Cholo Laurel deliberately wanted us to feel a little unsettled.
Paz (Agot Isidro) returns to the Philippines after spending more than two decades in the United States, where she left behind her daughter, Joanne (Jodi Sta. Maria). That reunion is the backbone of the story, but the film refuses to take the familiar route.
Usually, when a Filipino mother leaves her family, it’s because she needs to work abroad and support them. Paz didn’t leave out of necessity. She left to chase a dream. That one decision immediately changes how we see her.
Then the movie keeps adding little things that make everything feel just a bit different.
Paz and her son Matti speak with American accents and mannerisms that make them feel like strangers in their own country. Paz insists on calling her daughter “Joanne” instead of the “Jo” everyone else uses. Joanne seeks help from a psychiatrist, something we still rarely see in Filipino films. Even the casual use of marijuana is presented without fanfare, simply as part of these characters’ lives.
None of these choices feels random. Together, they create a family that doesn’t quite fit the image we’re used to seeing in local cinema.
I don’t know if making the audience uncomfortable was Laurel’s intention, but it was certainly my experience. The movie kept nudging me out of my comfort zone, not with shocking twists, but with characters and situations that refused to behave the way I expected.
That also extends to the characters themselves.
Paz is difficult to like, but she’s never reduced to a one-note villain. Joanne has every reason to be angry, but the film doesn’t allow her to become simply “the wronged daughter” either. Both women are given enough layers that you understand where they’re coming from, even if you don’t always agree with them.
The one character I wanted more from was Joanne’s father, played by Gardo Versoza. Gardo is effortlessly likable, and it’s easy to see why the film uses him for many of its lighter moments. But I kept waiting for another side of him. Here’s a man whose wife walked away more than twenty years ago, built another life overseas, and then suddenly came back. Yet he accepts almost everything with surprising ease. I wasn’t looking for a shouting match. I just wanted one honest moment where we could see the hurt behind the jokes. That would have made his character even stronger.
Then there’s the title.
Ganito. Ganyan. Ganoon.
The more I rolled those words around in my head, the more they seemed to describe the film itself.
People aren’t just one thing. They don’t fit neatly into “good” or “bad.” Families don’t always look the way we think they should. Everyone carries their own version of the truth, and sometimes those truths don’t line up.
That’s what stayed with me.
Whether you agree with the characters or not, "Ganito, Ganyan, Ganoon" refuses to make life simple. It’s messy, uncomfortable, occasionally frustrating, and very human. In the end, I found myself thinking less about who was right or wrong and more about how complicated families really are.

Related Tags

Agot Isidro Jodi Sta Maria Ganito Ganyan Ganoon Netflix
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; } }

{{ static_articles_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.