ADVERTISEMENT

The Thai that bonds: A review of 'How to Make Millions Before Grandma Dies'

Published Jun 7, 2024 02:52 am

At A Glance

  • Showing exclusively at SM Cinemas, some are asking why there aren't more screens devoted to this Thai film.
image0.jpeg
A scene from 'How To Make Millions Before Grandma Dies'

If you’re going by word of mouth, the movie that’s been earning the buzz since last week isn’t some Hollywood film like Garfield or Bad Boys Ride or Die. Neither is it some Korean film or the Queen of Tears K-drama series. That’s all so last month, or not the real big thing of Now. It may surprise many, but the film earning all the plaudits as the current must-watch is a family drama from Thailand.

Yes, don’t rub your eyes or stare in disbelief. In a week when it wasn’t a Hollywood or Korean film hogging social media, it wasn’t a Filipino film that captured the public’s imagination, but a Thai film. How to Make Millions Before Grandma Dies (an SM Cinemas exclusive), is the film making friends and family turn movie-watching into a bonding experience - the Thai That Bonds! 

Directed and co-written by Pat Boonnitipat (Bad Genius the Series); and starring Thai Chinese actor Putthipong Assaratanakul (Billkin) as M, the lead protagonist, and Usha Seamkhum as Amah, the titular grandmother (her film debut) - the film is so simple, yet effective! And this is where the rubbing of eyes does haunt us, as the film is a certified tearjerker, making grown men sob in sympathy to what’s happening on screen. 

image1.jpeg

The plot is practically explained in the film title. A cancer-stricken Lola finds her grandson is ready to take care of her in the hope that he becomes her favorite, and she bequeaths a good chunk of her fortune to him. Jettisoning his work as a game caster, M makes his Amah his life’s priority for pecuniary reasons. 

It’s how this is handled and the narrative’s development that has made this film such a winner. It talks of generational divides, the caring of elders, and how ambition driven by money can evolve into something else—a lesson for the ages. The film doesn’t preach but allows situations to progress organically. 

image2.jpeg

The family assembled for the film isn’t sugar-coated. Several of the characters have interesting arcs and regressions, and interesting developments occur as Amah begins to dispose of her assets, surprising and disappointing many members of the family. And I won’t say more for fear of giving spoilers. 

I may be sympathetic with those bewailing why the public was lining up to watch a Thai film when so many new releases from our local film industry have fared dismally in the cinemas. But in the same breath, we have to ask ourselves if it’s also the fault of our producers and the homegrown industry. 

Showing exclusively at SM Cinemas, some are asking why there aren’t more screens devoted to this Thai film. Like in the Haikyu!! The Dumpster Battle, which is still showing and enjoying repeat viewings at SM Cinemas, there is an audience ready to enjoy the cinema experience, but we have to ask what the product is being offered and if it’s compelling enough. How to Make Millions Before Grandma Dies has struck a strong, responsive chord with Filipino audiences. 

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.