ADVERTISEMENT

JC Santos and Bela Padilla return in '100 Awit Para Kay Stella'

Published Sep 1, 2025 12:22 am
From left: Kyle Echarri, Bela Padilla, and JC Santos
From left: Kyle Echarri, Bela Padilla, and JC Santos

Back in 2017, '100 Tula Para Kay Stella'  touched audiences with its moving narrative of unspoken love. Viva Films will release its sequel, '100 Awit Para Kay Stella', on Sept. 10.

The first movie was about the bittersweet journey of Fidel (JC Santos), an honor student with a speech handicap, and Stella (Bela Padilla), a rebellious campus rocker. 

Now, the sequel, also directed by Jason Paul Laxamana,  features the same lead stars. After 15 years, Stella is now an events organizer, while Fidel is retreating from the corporate grind. Their paths cross again just as rising musician Clyde (Kyle Echarri) enters the picture.

Bela revealed that watching the first film again before shooting was a must to remind her of its charm. "Na-realize ko, I don’t remember filming  half of  'Isang Daang Tula Para Kay Stella' kasi lagi kaming puyat noon  pero ang sarap niya panoorin. When they gave us this movie, I was excited, and I made sure na mag-focus sa kanya, and  I think we really got to play with our characters this time around. (I realized, I don’t remember filming half of 'Isang Daang Tula Para Kay Stella' because we were always sleep-deprived, but it was such a joy to watch. When they gave us this movie, I was excited, and I made sure to really focus on it.)

JC, reprising his role as Fidel, shared that the new film presented its own set of challenges. He explained that both he and Bela worked closely with the production team to ensure the script reflected authentic character growth between him and Stella.

He added that there's joy in waiting for the sequel. "Kung nangyari ito years before, baka hilaw sya. Maganda na rin ito na naluto sya ng maayos at umabot ng eight years para masarap. (If this had happened years earlier, it might have turned out half-baked. It’s better that it was correctly developed and took eight years to really ripen.)"

'100 Awit Para Kay Stella' official movie poster
'100 Awit Para Kay Stella' official movie poster

For Kyle, playing Clyde meant complementing an already iconic pairing. He credited his co-stars for making the transition smooth. ‘They never made me feel the pressure. From day one, I never felt out of place, and I think you’ll see that on screen.’ 

"I think ang pinaka-challenge lang para sa character ko was to make sure that I get my story across, kung ano ang gusto kong i-kwento ni Direk Jason through Clyde, while also being able to be a catalyst din (to Fidel and Stella)," he added.

The sequel carries with it the weight of expectations. The original "100 Tula Para Kay Stella" did well at the box office when it was shown and became a favorite among young audiences who saw their own struggles reflected in Fidel and Stella’s life views. 

Asked if the new film can surpass that success, Bela candidly remarked: ‘I don’t wanna think that we have to surpass or match the box office returns of 100 Tula. We put a great deal of effort into this follow-up film. People will watch it because it’s good, or because they watched the first one and want to see what happens next.’

The actors also acknowledged the nostalgia factor, with familiar songs from the first film reappearing. For Bela, music served as an emotional anchor: ‘Laking factor ng nostalgia. Minsan kahit eksena hindi nakakailang kasi may kanta na bumabalik.’ (Nostalgia plays a big role. Even when the scene feels difficult, a familiar song brings it back.)

"100 Awit Para Kay Stella" doesn’t just revisit old characters; it wrestles with themes of timing, second chances, and how love evolves across the years. As Bela put it, the film is ultimately about people growing up alongside the characters: fans who watched Fidel and Stella’s story in 2017 may now see themselves reflected in their struggles 15 years later. But one thing is clear: the story of Fidel and Stella still has songs left to sing.

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.