ADVERTISEMENT

Adobo for all

A flavorful journey through the Philippines' most beloved dish

Published Apr 24, 2025 10:10 pm
PORK ADOBO from A Bay's in Kona, Hawaii (Photo: Unsplash).jpeg
PORK ADOBO from A Bay's in Kona, Hawaii (Photo: Unsplash)

Adobo is a dish that unites and divides Filipinos. Every Pinoy household has its own adobo recipe handed down over generations.

There remains a debate over the origins of this dish, with one theory attributing it to the Spanish colonizers. Nationalists, however, point out that all the ingredients had been in use on the islands before the Europeans arrived.

Basic recipe
Simple ingredients are required in adobo: vinegar, salt, black pepper, garlic, bay leaves and soy sauce. Some cooks omit or substitute one or two of those ingredients.

For pork, chicken or any meat adobo, the meat is first marinated for 30 minutes, drained and fried until brown, then simmered in its marinade. The garlic is fried to golden brown and simmered with the meat over low heat until tender.

Soupy or dry
Rice eaters love adobo because its gravy pours perfectly over rice, coating every grain. This practice is common, especially among unli-rice eaters.

The dry, crispy adobo was introduced by Larry Cruz at Cafe Adriatico and was soon copied by many wannabes. The other outlets of his LJC chain also make one of the best Chicken Pork Adobo in the country.
Adobo 24/7 is the attraction for balikbayans at Aristocrat Restaurant, the country’s most popular eatery. Served either as breakfast or à la carte, the dish comes as large chunks of slowly cooked pork and chicken parts. For takeouts, the dish can be ordered frozen to be enjoyed at home.

Nationwide appeal
Traveling all over the Philippines, one discovers hundreds of adobo variants which utilize spices, herbs and other ingredients available locally.

Spending one summer in San Carlos, Pangasinan in the 1950s, I learned how to make binagoongang adobo, using no salt or soy sauce. Alamang bagoong provided the saltiness. Once cooked, it was pink from the salted shrimp and aromatic from bay leaves and garlic. Almost all the meat juices had evaporated, leaving the pork pieces immersed in rendered fat which would keep it from spoiling.

Ex-dancers’ legacy
Adobo sa gata is the heirloom dish of some families in my hometown, a legacy from dancehall girls from Bicol who worked in Las Piñas after the war. Mostly coming from Polangui, the pretty ladies married some of the town’s most eligible bachelors and became ideal wives, mothers and grandmothers.

Hunters’ delight
Men in our barrio used to go hunting in the mountains of Rizal and Cavite. They were often gone for days, subsisting on rice and whatever they caught. Sometimes they brought back wild animals still alive. My favorite was bayawak (monitor lizard), which really tasted like chicken when cooked adobo-style. Other wild game also ended up in the adobo pot: frogs, eel, wild quail, migrating birds.

Even vegetables are delicious as adobong kangkong, sigarilyas. And don’t forget peanuts and cornick. Truly, adobo is not just a national dish, it's a universal dish.

For any inquiries regarding my article, please feel free to email me at [email protected] or follow me on FB.

Related Tags

MB Lifestyle Online
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.