{"id":3013,"date":"2026-04-23T13:39:58","date_gmt":"2026-04-23T06:39:58","guid":{"rendered":"https:\/\/satusatu.com\/inspiration\/?p=3013"},"modified":"2026-04-23T13:39:59","modified_gmt":"2026-04-23T06:39:59","slug":"mandapa-ubud","status":"publish","type":"post","link":"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/","title":{"rendered":"Mandapa Ubud: Inside the Ritz-Carlton Reserve That Feels Like a Living Balinese Village"},"content":{"rendered":"\n<p>A resort modeled on a Balinese village, built around a working rice paddy and a century-old mandapa temple, with every guest assigned their own personal butler. That is the premise at Mandapa, a Ritz-Carlton Reserve, and the execution lives up to the concept in ways that are genuinely rare in luxury hospitality.&nbsp;<\/p>\n\n\n\n<p>SatuSatu, a Bali travel platform helping travelers discover the best of the island, regularly highlights Mandapa as the gold standard for Ubud luxury, particularly for travelers seeking an experience that goes deeper than a beautiful room and a good breakfast.&nbsp;<\/p>\n\n\n\n<p>Since opening in 2015, it has consistently ranked among the finest resort properties in Southeast Asia and has been featured in the World&#8217;s 50 Best Hotels list.<\/p>\n\n\n\n    <!-- Styles -->\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Overpass:ital,wght@0,100..900;1,100..900&display=swap\" rel=\"stylesheet\">\n    <style>\n        \/* ========================= *\/\n          \/* BASE STYLES *\/\n          \/* ========================= *\/\n          .produk-container {\n              display: flex;\n              flex-direction: column;\n              gap: 12px;\n          }\n\n          .produk-card {\n            cursor: pointer;\n            display: flex;\n            margin: 0;\n            border: 1px solid #eee;\n            border-radius: 12px;\n            overflow: hidden;\n            font-family: Overpass, sans-serif;\n            background: #ffffff;\n          }\n\n          .produk-image {\n            position: relative;\n            flex-shrink: 0;\n          }\n\n          .produk-image img {\n            width: 100%;\n            height: 100%;\n            object-fit: cover;\n          }\n\n          .produk-location {\n            position: absolute;\n            left: 8px;\n            bottom: 8px;\n            background: #fff;\n            border-radius: 12px;\n            border: 1px solid #dadbe0;\n            padding: 4px 6px;\n            font-size: 10px;\n            line-height: 14px;\n          }\n\n          .produk-content {\n            flex: 1;\n            display: flex;\n            flex-direction: column;\n            gap: 12px;\n          }\n\n          .produk-title {\n            font-weight: 700;\n          }\n\n          .produk-rating {\n            font-size: 16px;\n            color: #333;\n            display: flex;\n            align-items: flex-start;\n            gap: 4px;\n          }\n\n          .produk-rating-line {\n            display: flex;\n            align-items: flex-start;\n            gap: 4px;\n          }\n\n          .produk-price-main {\n            color: #cb1c4f;\n            font-weight: 800;\n            font-size: 16px;\n          }\n\n          .produk-price-strike {\n            text-decoration: line-through;\n            font-size: 14px;\n            opacity: 0.7;\n            margin-right: 8px;\n          }\n\n          .produk-discount {\n            background: #cb1c4f;\n            color: #fff;\n            padding: 2px 6px;\n            border-radius: 4px;\n            font-size: 14px;\n          }\n\n          .produk-btn {\n            background: #cb1c4f;\n            color: #ffffff;\n            padding: 10px 16px;\n            border-radius: 8px;\n            text-decoration: none;\n            font-weight: 600;\n            margin-top: 8px;\n          }\n\n          .produk-btn:hover {\n            text-decoration: none;\n            color: #ffffff;\n          }\n\n          .product-info-wrap {\n            display: flex;\n            flex-wrap: nowrap;\n            justify-content: space-between;\n          }\n\n          \/* ========================= *\/\n          \/* DESKTOP (>= 800px) *\/\n          \/* ========================= *\/\n\n          @media (min-width: 800px) {\n            .produk-image {\n              width: 200px;\n            }\n\n            .produk-content {\n              padding: 20px;\n            }\n\n            .product-info-wrap {\n              flex-direction: row;\n              align-items: center;\n            }\n\n            .produk-btn {\n              display: inline-block;\n            }\n          }\n\n          \/* ========================= *\/\n          \/* TABLET (<= 768px) *\/\n          \/* ========================= *\/\n\n          @media (max-width: 768px) {\n            .produk-card {\n              flex-direction: column;\n            }\n\n            .produk-image {\n              width: 200px;\n              height: 220px;\n            }\n\n            .produk-content {\n              padding: 12px;\n            }\n\n            .produk-title {\n              font-size: 18px;\n            }\n\n            .produk-rating {\n              font-size: 14px;\n            }\n\n            .product-info-wrap {\n              flex-direction: column;\n              align-items: flex-start;\n              gap: 12px;\n            }\n\n            .produk-btn {\n              display: none;\n            }\n          }\n\n          \/* ========================= *\/\n          \/* MOBILE (<= 480px) *\/\n          \/* ========================= *\/\n\n          @media (max-width: 480px) {\n            .produk-image {\n              width: 100%;\n            }\n\n            .produk-content {\n              padding: 12px;\n            }\n\n            .produk-title {\n              font-size: 16px;\n              overflow: hidden;\n              text-overflow: ellipsis;\n            }\n\n            .produk-price-main {\n              font-size: 15px;\n            }\n\n            .produk-discount {\n              font-size: 12px;\n            }\n\n            .produk-btn {\n              display: none;\n            }\n          }\n\n          \/* ======================================= *\/\n          \/* CAROUSEL MODE (inside .carousel-list)  *\/\n          \/* ======================================= *\/\n\n          .carousel-wrapper {\n            position: relative;\n          }\n\n          .carousel-list {\n            overflow-x: auto;\n            overflow-y: hidden;\n            -webkit-overflow-scrolling: touch;\n            scroll-behavior: smooth;\n            scroll-snap-type: x mandatory;\n            scrollbar-width: none;\n          }\n\n          .carousel-list::-webkit-scrollbar {\n            display: none;\n          }\n\n          .carousel-list .produk-container {\n            display: flex;\n            flex-direction: row;\n            flex-wrap: nowrap;\n            width: max-content;\n            gap: 12px;\n          }\n\n          .carousel-list .produk-card {\n            flex: 0 0 auto;\n            width: 220px;\n            flex-direction: column;\n            scroll-snap-align: start;\n          }\n\n          .carousel-list .produk-image {\n            width: 100%;\n            height: 220px;\n          }\n\n          .carousel-list .produk-content {\n            padding: 12px;\n          }\n\n          .carousel-list .produk-title {\n\t\t\t  font-size: 16px;\n\t\t\t  overflow: hidden;\n\t\t\t  text-overflow: ellipsis;\n\t\t\t  display: -webkit-box;\n\t\t\t  -webkit-line-clamp: 2;\n\t\t\t  -webkit-box-orient: vertical;\n\t\t\t  line-clamp: 2;\n\t\t\t}\n\n          .carousel-list .produk-rating {\n            font-size: 14px;\n          }\n\n          .carousel-list .produk-price-main {\n            font-size: 15px;\n          }\n\n          .carousel-list .produk-discount {\n            font-size: 12px;\n          }\n\n          .carousel-list .product-info-wrap {\n            flex-direction: column;\n            align-items: flex-start;\n            gap: 12px;\n          }\n\n          .carousel-list .produk-btn {\n            display: none;\n          }\n\n          \/* ========================= *\/\n          \/* CAROUSEL ARROWS *\/\n          \/* ========================= *\/\n\n          .carousel-arrow {\n            position: absolute;\n            top: 50%;\n            transform: translateY(-50%);\n            width: 36px;\n            height: 36px;\n            border-radius: 50%;\n            background: #ffffff;\n            border: 1px solid #dadbe0;\n            box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            z-index: 10;\n            transition: opacity 0.2s, box-shadow 0.2s;\n            padding: 0;\n          }\n\n          .carousel-arrow:hover {\n\t\t\tbackground: #FFFFFF;\n            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n          }\n\n          .carousel-arrow.is-hidden {\n            opacity: 0;\n            pointer-events: none;\n          }\n\n          .carousel-arrow-left {\n            left: -18px;\n          }\n\n          .carousel-arrow-right {\n            right: -18px;\n          }\n\n          @media (max-width: 480px) {\n\t\t\t.carousel-arrow{\n\t\t\t\tdisplay: none;\n\t\t\t}\n            .carousel-arrow-left {\n              left: 4px;\n            }\n\n            .carousel-arrow-right {\n              right: 4px;\n            }\n          }\n    <\/style>\n\n    <!-- HTML -->\n    <div class=\"carousel-wrapper\" data-carousel-id=\"carousel-69f27607a8fc0\" data-is-carousel=\"1\">\n                    <button type=\"button\" class=\"carousel-arrow carousel-arrow-left is-hidden\" aria-label=\"Scroll left\">\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"25\" height=\"25\" fill=\"#000000\" viewBox=\"0 0 256 256\"><path d=\"M216,88v80a8,8,0,0,1-8,8H120v48L24,128l96-96V80h88A8,8,0,0,1,216,88Z\" opacity=\"0.2\"><\/path><path d=\"M208,72H128V32a8,8,0,0,0-13.66-5.66l-96,96a8,8,0,0,0,0,11.32l96,96A8,8,0,0,0,128,224V184h80a16,16,0,0,0,16-16V88A16,16,0,0,0,208,72Zm0,96H120a8,8,0,0,0-8,8v28.69L35.31,128,112,51.31V80a8,8,0,0,0,8,8h88Z\"><\/path><\/svg>\n            <\/button>\n            <button type=\"button\" class=\"carousel-arrow carousel-arrow-right is-hidden\" aria-label=\"Scroll right\">\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"25\" height=\"25\" fill=\"#000000\" viewBox=\"0 0 256 256\"><path d=\"M136,224V176H48a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8h88V32l96,96Z\" opacity=\"0.2\"><\/path><path d=\"M237.66,122.34l-96-96A8,8,0,0,0,128,32V72H48A16,16,0,0,0,32,88v80a16,16,0,0,0,16,16h80v40a8,8,0,0,0,13.66,5.66l96-96A8,8,0,0,0,237.66,122.34ZM144,204.69V176a8,8,0,0,0-8-8H48V88h88a8,8,0,0,0,8-8V51.31L220.69,128Z\"><\/path><\/svg>\n            <\/button>\n                <div class=\"carousel-list\">\n            <div class=\"produk-container\" data-slugs=\" uluwatu-temple-kecak-fire-dance-satusatu-curated-experience-sameday-booking-bonus-merchandise, satusatu-exclusive-car-charter-sameday-booking, satusatu-airport-transfer-from-to-airport-sameday-booking, nusa-penida-day-tour-satusatu-curated-experience-bonus-merchandise, bali-bird-park-experience-nature-wildlife-adventure\"><\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Script -->\n    <script>\n    (function() {\n\t\tfunction buildCatalogUrl(slug) {\n\t\t\t\/\/ UTM params hardcoded by the shortcode (these always win)\n\t\t\tconst hardcoded = {\n\t\t\t\tutm_source: \"blog\",\n\t\t\t\tutm_medium: \"in_line_product_cta\",\n\t\t\t};\n\n\t\t\t\/\/ UTM params from the current page URL (only used if hardcoded doesn't define them)\n\t\t\tconst pageParams = new URLSearchParams(window.location.search);\n\t\t\tconst utmKeys = [\"utm_source\", \"utm_medium\", \"utm_campaign\", \"utm_content\", \"utm_term\"];\n\t\t\tconst merged = new URLSearchParams();\n\n\t\t\tutmKeys.forEach(key => {\n\t\t\t\tif (hardcoded[key] !== undefined) {\n\t\t\t\t\t\/\/ Hardcoded value takes priority\n\t\t\t\t\tmerged.set(key, hardcoded[key]);\n\t\t\t\t} else if (pageParams.has(key)) {\n\t\t\t\t\t\/\/ Fall back to whatever the page URL has\n\t\t\t\t\tmerged.set(key, pageParams.get(key));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn \"https:\/\/satusatu.com\/en-ID\/catalog\/\" + slug + \"?\" + merged.toString();\n\t\t}\n\t\t\n        function renderCatalogItem(p) {\n            const location = p.location?.name || \"\";\n            const rating = p.rating?.average_rating ?? null;\n            const ratingCount = p.rating?.count_rating_display || \"\";\n            const soldDisplay = p.rating?.total_sold_display || \"\";\n            const currency = p.pricing?.currency_symbol || \"Rp\";\n            const price = p.pricing?.min_price || 0;\n            const originalPrice = p.pricing?.min_original_price || 0;\n            const discount = p.pricing?.discount || 0;\n\t\t\tconst catalogUrl = buildCatalogUrl(p.slug);\n\n            return `\n                <div class=\"produk-card\" data-url=\"${catalogUrl}\">\n                    <div class=\"produk-image\">\n                        <img decoding=\"async\" src=\"${p.image_url}\" alt=\"${p.title}\" \/>\n                        <div class=\"produk-location\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" fill=\"#000000\" viewBox=\"0 0 256 256\"><path d=\"M128,24a80,80,0,0,0-80,80c0,72,80,128,80,128s80-56,80-128A80,80,0,0,0,128,24Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,128,136Z\" opacity=\"0.2\"><\/path><path d=\"M128,64a40,40,0,1,0,40,40A40,40,0,0,0,128,64Zm0,64a24,24,0,1,1,24-24A24,24,0,0,1,128,128Zm0-112a88.1,88.1,0,0,0-88,88c0,31.4,14.51,64.68,42,96.25a254.19,254.19,0,0,0,41.45,38.3,8,8,0,0,0,9.18,0A254.19,254.19,0,0,0,174,200.25c27.45-31.57,42-64.85,42-96.25A88.1,88.1,0,0,0,128,16Zm0,206c-16.53-13-72-60.75-72-118a72,72,0,0,1,144,0C200,161.23,144.53,209,128,222Z\"><\/path><\/svg>\n                            <span>${location}<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"produk-content\">\n                        <div class=\"produk-title\">${p.title}<\/div>\n                        ${rating ? `\n                        <div class=\"produk-rating\">\n                            <div class=\"produk-rating-line\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"18\" fill=\"#F87500\" viewBox=\"0 0 256 256\"><path d=\"M229.06,108.79l-48.7,42,14.88,62.79a8.4,8.4,0,0,1-12.52,9.17L128,189.09,73.28,222.74a8.4,8.4,0,0,1-12.52-9.17l14.88-62.79-48.7-42A8.46,8.46,0,0,1,31.73,94L95.64,88.8l24.62-59.6a8.36,8.36,0,0,1,15.48,0l24.62,59.6L224.27,94A8.46,8.46,0,0,1,229.06,108.79Z\" opacity=\"0.2\"><\/path><path d=\"M239.18,97.26A16.38,16.38,0,0,0,224.92,86l-59-4.76L143.14,26.15a16.36,16.36,0,0,0-30.27,0L90.11,81.23,31.08,86a16.46,16.46,0,0,0-9.37,28.86l45,38.83L53,211.75a16.38,16.38,0,0,0,24.5,17.82L128,198.49l50.53,31.08A16.4,16.4,0,0,0,203,211.75l-13.76-58.07,45-38.83A16.43,16.43,0,0,0,239.18,97.26Zm-15.34,5.47-48.7,42a8,8,0,0,0-2.56,7.91l14.88,62.8a.37.37,0,0,1-.17.48c-.18.14-.23.11-.38,0l-54.72-33.65a8,8,0,0,0-8.38,0L69.09,215.94c-.15.09-.19.12-.38,0a.37.37,0,0,1-.17-.48l14.88-62.8a8,8,0,0,0-2.56-7.91l-48.7-42c-.12-.1-.23-.19-.13-.5s.18-.27.33-.29l63.92-5.16A8,8,0,0,0,103,91.86l24.62-59.61c.08-.17.11-.25.35-.25s.27.08.35.25L153,91.86a8,8,0,0,0,6.75,4.92l63.92,5.16c.15,0,.24,0,.33.29S224,102.63,223.84,102.73Z\"><\/path><\/svg>\n                                <span>${rating} (${ratingCount}) &bull; ${soldDisplay} sold<\/span>\n                            <\/div>\n                        <\/div>` : ''}\n                        <div class=\"product-info-wrap\">\n                            <div>\n                                <div style=\"display:flex;gap:6px;\">\n                                    <div style=\"font-size:14px;\">From<\/div>\n                                    <div class=\"produk-price-main\">${currency} ${price.toLocaleString()}<\/div>\n                                <\/div>\n                                ${discount > 0 ? `\n                                <div>\n                                    <span class=\"produk-price-strike\">${currency} ${originalPrice.toLocaleString()}<\/span>\n                                    <span class=\"produk-discount\">-${discount}%<\/span>\n                                <\/div>` : ''}\n                            <\/div>\n                            <div>\n                                <a target=\"_blank\" href=\"${catalogUrl}\" class=\"produk-btn\">Check Availability<\/a>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function initSatuSatuCatalog(wrapperEl) {\n            const scrollEl = wrapperEl.querySelector(\".carousel-list\");\n            const container = wrapperEl.querySelector(\".produk-container\");\n            const slugs = container.getAttribute(\"data-slugs\");\n            const isCarousel = wrapperEl.getAttribute(\"data-is-carousel\") === \"1\";\n            const leftArrow = wrapperEl.querySelector(\".carousel-arrow-left\");\n            const rightArrow = wrapperEl.querySelector(\".carousel-arrow-right\");\n\n            fetch(\"https:\/\/api.satusatu.com\/content\/guest\/satusatu\/v1\/catalogs\/blog\/catalog-list?slugs=\" + slugs)\n                .then(res => res.json())\n                .then(data => {\n                    container.innerHTML = data.data.map(renderCatalogItem).join('');\n                    \/\/ Event handler for card click\n                    container.querySelectorAll('.produk-card').forEach(card => {\n                        card.addEventListener('click', () => {\n                            window.open(card.dataset.url, '_blank');\n                        });\n                    });\n\n                    if (isCarousel && scrollEl && leftArrow && rightArrow) {\n                        const scrollAmount = 240;\n                        function updateArrows() {\n                            const sl = scrollEl.scrollLeft;\n                            const sw = scrollEl.scrollWidth;\n                            const cw = scrollEl.clientWidth;\n                            leftArrow.classList.toggle(\"is-hidden\", sl <= 0);\n                            rightArrow.classList.toggle(\"is-hidden\", sl + cw >= sw - 1);\n                        }\n                        leftArrow.addEventListener(\"click\", e => {\n                            e.stopPropagation();\n                            scrollEl.scrollBy({ left: -scrollAmount, behavior: \"smooth\" });\n                        });\n                        rightArrow.addEventListener(\"click\", e => {\n                            e.stopPropagation();\n                            scrollEl.scrollBy({ left: scrollAmount, behavior: \"smooth\" });\n                        });\n                        scrollEl.addEventListener(\"scroll\", updateArrows);\n                        window.addEventListener(\"resize\", updateArrows);\n                        setTimeout(updateArrows, 200);\n                    }\n                });\n        }\n\n        document.addEventListener(\"DOMContentLoaded\", function() {\n            document.querySelectorAll(\"[data-carousel-id]\").forEach(initSatuSatuCatalog);\n        });\n    })();\n    <\/script>\n    \n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is Mandapa Ubud?<\/h2>\n\n\n\n<p>Mandapa, a Ritz-Carlton Reserve, is a luxury wellness resort set along the banks of the Ayung River in Kedewatan, Ubud. The Reserve is the Ritz-Carlton brand&#8217;s ultra-premium tier, distinguished from standard Ritz-Carlton properties by intimate scale, immersive destination design, and a higher ratio of staff to guests.&nbsp;<\/p>\n\n\n\n<p>Mandapa was designed by architect Jeffrey Wilkes with a philosophy rooted in Balinese heritage and the spiritual concept of Tri Hita Karana, which describes harmony between humans, nature, and the divine.&nbsp;<\/p>\n\n\n\n<p>The resort accommodates 35 suites and 25 private pool villas across a lush hillside site, with public areas, restaurants, and a spa cascading down toward the river below.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Location and How to Get There<\/h2>\n\n\n\n<p>Mandapa is located in Kedewatan Village, within the Ubud District, Gianyar Regency, Bali 80571. Kedewatan sits approximately 10 to 15 minutes by car from central Ubud, and the resort operates a complimentary shuttle service to the town center with departures roughly every two hours from morning to late afternoon.&nbsp;<\/p>\n\n\n\n<p>From Ngurah Rai International Airport in Denpasar, the drive typically takes 60 to 90 minutes depending on traffic. The resort is positioned above the Ayung River valley, and the approach down the tree-lined lane gives no preparation for the views that open up when you reach the lobby terrace.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Suites, Villas, and Pricing<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/04\/mandapa-ubud-2.png\" alt=\"Mandapa Ubud\" class=\"wp-image-3015\"\/><\/figure>\n\n\n\n<p>Accommodation at Mandapa falls into two broad categories. The 35 suites, located in the main building, range from the Mandapa Suite with its 270-degree views of the valley and rice paddies, to larger premium suites offering additional living space.&nbsp;<\/p>\n\n\n\n<p>The 25 private pool villas are the more immersive option, set lower on the hillside with direct terrace access, private plunge pools, and views across the rice paddies, the jungle canopy, or the river below.&nbsp;<\/p>\n\n\n\n<p>Each accommodation comes with access to a dedicated Patih, the Balinese term for a personal butler, who manages every detail of the stay from unprompted. Rates at Mandapa typically begin from around USD 700 to 900 per night for suites and rise significantly for pool villas, reflecting the Reserve tier positioning.&nbsp;<\/p>\n\n\n\n<p>All rates are subject to seasonal variation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Top Facilities and Highlights<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Mandapa Spa and Wellness Center:<\/strong> The spa is one of the property&#8217;s defining features. Set along the riverside with treatment rooms, yoga pavilions, sauna, steam rooms, and a rooftop vitality pool, it offers a comprehensive wellness program built on five pillars: Balinese spa, detox and nutrition, alternative therapy, body therapy, and healing. Indigenous Ubud healers are accessible to guests for spiritual and wellness sessions, a feature that sets Mandapa apart from almost any other resort in the region.<br><\/li>\n\n\n\n<li><strong>Kubu Restaurant:<\/strong> Kubu is widely regarded as one of the finest restaurants in Ubud. Intimate bamboo cocoon dining pods sit beside the river, creating one of the most distinctive dining environments in all of Bali. The menu features international fine dining executed with exceptional technique. Reservations are necessary and strongly recommended even for resort guests.<br><\/li>\n\n\n\n<li><strong>Sawah Terrace Restaurant:<\/strong> Sawah Terrace serves authentic Indonesian cuisine against a backdrop of the working rice paddies. The setting is accompanied by Balinese cultural performances on selected evenings, and breakfast here is considered among the most memorable in the Ubud area.<br><\/li>\n\n\n\n<li><strong>Ambar Bar:<\/strong> Positioned higher on the property to capture the best jungle and valley views, Ambar is the resort&#8217;s cocktail destination, particularly well-suited for sunset. Creative cocktails and a curated drinks list make it a natural gathering point in the late afternoon.<br><\/li>\n\n\n\n<li><strong>Mandapa Camp and Kids Club:<\/strong> The kids club at Mandapa is an architectural statement in itself, designed by the team behind Bali&#8217;s Green School in a sinuous bamboo structure. It champions outdoor activities over screens, including nature hikes, herb planting, Balinese dance lessons, and lawn games. It is considered one of the most thoughtfully designed children&#8217;s facilities in the region.<br><\/li>\n\n\n\n<li><strong>Rice Paddy Yoga and Cultural Programming:<\/strong> Daily yoga sessions can be held on platforms within the working rice fields, one of the most grounding and visually striking settings imaginable. The cultural program includes temple blessings, rice-planting participation, cooking classes, and full moon ceremonies at the estate&#8217;s lava stone temple.<br><\/li>\n\n\n\n<li><strong>Patih Butler Service:<\/strong> Every guest at Mandapa, regardless of room category, has access to a personal Patih who is available 24 hours. The Patih manages logistics, anticipates preferences, coordinates dining and activity arrangements, and creates the seamless, personalized experience the Reserve brand is built around.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">What Makes It Special<\/h2>\n\n\n\n<p>Mandapa&#8217;s premise is that staying here should feel like living in a Balinese village for a few days, not visiting a resort that has Balinese decoration. The working rice paddy at the center of the property is tended daily by local farmers.&nbsp;<\/p>\n\n\n\n<p>The mandapa temple on the grounds hosts genuine ceremonial activity. The healers who work with guests are from the surrounding community. That authenticity is not performed; it is structural.<\/p>\n\n\n\n<p>The scale keeps the intimacy intact. With 60 accommodations total and a high staff ratio, the resort does not feel crowded or anonymous.&nbsp;<\/p>\n\n\n\n<p>The combination of natural beauty, wellness depth, culinary excellence through Kubu especially, and genuine service delivery puts Mandapa in a category where very few properties globally can compete.&nbsp;<\/p>\n\n\n\n<p>It is best suited to honeymooners, couples celebrating milestones, wellness seekers, travelers who come to Bali specifically for its spiritual dimension, and families wanting the finest Ubud experience regardless of price.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Explore Mandapa Ubud Further with SatuSatu<\/h2>\n\n\n\n<p><a href=\"http:\/\/satusatu.com\">SatuSatu.com<\/a> is where Mandapa guests can build the rest of their Bali experience with the same care and ease. SatuSatu is a Bali travel platform that brings together curated experiences, transport, and local activities in one place, bookable directly with Indonesian and international payment methods.<\/p>\n\n\n\n<p>For guests staying in the Ubud area and wanting a contrast to the serene resort atmosphere, the <a href=\"https:\/\/satusatu.com\/en-US\/catalog\/dadi-bali-adventure-atv-quad-bike\">Dadi Bali Jungle ATV Adventure<\/a> on <a href=\"http:\/\/satusatu.com\">SatuSatu.com<\/a> brings physical excitement to a highland stay.&nbsp;<\/p>\n\n\n\n<p>Based in nearby Payangan, this highly rated jungle quad bike experience offers a completely different perspective on Bali&#8217;s interior landscape.<\/p>\n\n\n\n<p>Arriving at Mandapa without the stress of airport negotiation is made simple through <a href=\"https:\/\/satusatu.com\/en-US\/catalog\/satusatu-airport-transfer-from-to-airport-sameday-booking\">SatuSatu&#8217;s Airport Transfer<\/a> service, which picks up from Ngurah Rai International Airport with transparent, pre-agreed pricing and no hassle on arrival.&nbsp;<\/p>\n\n\n\n<p>For exploring beyond Kedewatan and Ubud, the <a href=\"https:\/\/satusatu.com\/en-US\/catalog\/satusatu-exclusive-car-charter-sameday-booking\">SatuSatu Exclusive Car Charter <\/a>gives you a dedicated local driver for the full day, ideal for visiting temples, rice terraces, and artisan villages across Gianyar and beyond.<\/p>\n\n\n\n<p>And for a sunset that matches the cultural depth of a Mandapa stay, the <a href=\"https:\/\/satusatu.com\/en-US\/catalog\/uluwatu-temple-kecak-fire-dance-satusatu-curated-experience-sameday-booking-bonus-merchandise\">Uluwatu Temple Kecak and Fire Dance<\/a> is SatuSatu&#8217;s best-selling experience with over 1,000 tickets sold.&nbsp;<\/p>\n\n\n\n<p>The performance at the clifftop amphitheater above the Indian Ocean is Bali&#8217;s most iconic cultural event, and same-day booking is available. All bookings are made directly on <a href=\"http:\/\/satusatu.com\">SatuSatu.com<\/a> supporting BCA, Mandiri, OVO, DANA, credit cards, and more.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ About Mandapa Ubud<\/h2>\n\n\n\n<p><strong>What is Mandapa Ubud?<\/strong>&nbsp;<\/p>\n\n\n\n<p>Mandapa, a Ritz-Carlton Reserve, is a luxury wellness resort in Kedewatan, near Ubud, set along the Ayung River. It offers 35 suites and 25 private pool villas, with a personal butler for every guest, four dining venues, and a full-service spa and wellness program.<\/p>\n\n\n\n<p><strong>How far is Mandapa from central Ubud?<\/strong>&nbsp;<\/p>\n\n\n\n<p>The resort is approximately 10 to 15 minutes by car from central Ubud. A complimentary shuttle service connects the resort to the town center throughout the day.<\/p>\n\n\n\n<p><strong>What makes Mandapa different from other Ubud resorts?<\/strong>&nbsp;<\/p>\n\n\n\n<p>Mandapa is designed around the concept of an indigenous Balinese village, with a working rice paddy, a century-old mandapa temple on the grounds, access to traditional healers, and a personal butler for every guest. Its restaurant Kubu is regarded as one of Ubud&#8217;s finest dining experiences.<\/p>\n\n\n\n<p><strong>Does Mandapa have a spa?<\/strong>&nbsp;<\/p>\n\n\n\n<p>Yes. The Mandapa Spa and Wellness Center features treatment rooms along the river, yoga pavilions, a rooftop vitality pool, sauna, steam rooms, and access to indigenous Ubud healers and wellness practitioners.<\/p>\n\n\n\n<p><strong>How far is Mandapa from the airport?<\/strong>&nbsp;<\/p>\n\n\n\n<p>From Ngurah Rai International Airport, the resort is approximately 60 to 90 minutes by car depending on traffic.<\/p>\n\n\n\n    <!-- Styles -->\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Overpass:ital,wght@0,100..900;1,100..900&display=swap\" rel=\"stylesheet\">\n    <style>\n        \/* ========================= *\/\n          \/* BASE STYLES *\/\n          \/* ========================= *\/\n          .produk-container {\n              display: flex;\n              flex-direction: column;\n              gap: 12px;\n          }\n\n          .produk-card {\n            cursor: pointer;\n            display: flex;\n            margin: 0;\n            border: 1px solid #eee;\n            border-radius: 12px;\n            overflow: hidden;\n            font-family: Overpass, sans-serif;\n            background: #ffffff;\n          }\n\n          .produk-image {\n            position: relative;\n            flex-shrink: 0;\n          }\n\n          .produk-image img {\n            width: 100%;\n            height: 100%;\n            object-fit: cover;\n          }\n\n          .produk-location {\n            position: absolute;\n            left: 8px;\n            bottom: 8px;\n            background: #fff;\n            border-radius: 12px;\n            border: 1px solid #dadbe0;\n            padding: 4px 6px;\n            font-size: 10px;\n            line-height: 14px;\n          }\n\n          .produk-content {\n            flex: 1;\n            display: flex;\n            flex-direction: column;\n            gap: 12px;\n          }\n\n          .produk-title {\n            font-weight: 700;\n          }\n\n          .produk-rating {\n            font-size: 16px;\n            color: #333;\n            display: flex;\n            align-items: flex-start;\n            gap: 4px;\n          }\n\n          .produk-rating-line {\n            display: flex;\n            align-items: flex-start;\n            gap: 4px;\n          }\n\n          .produk-price-main {\n            color: #cb1c4f;\n            font-weight: 800;\n            font-size: 16px;\n          }\n\n          .produk-price-strike {\n            text-decoration: line-through;\n            font-size: 14px;\n            opacity: 0.7;\n            margin-right: 8px;\n          }\n\n          .produk-discount {\n            background: #cb1c4f;\n            color: #fff;\n            padding: 2px 6px;\n            border-radius: 4px;\n            font-size: 14px;\n          }\n\n          .produk-btn {\n            background: #cb1c4f;\n            color: #ffffff;\n            padding: 10px 16px;\n            border-radius: 8px;\n            text-decoration: none;\n            font-weight: 600;\n            margin-top: 8px;\n          }\n\n          .produk-btn:hover {\n            text-decoration: none;\n            color: #ffffff;\n          }\n\n          .product-info-wrap {\n            display: flex;\n            flex-wrap: nowrap;\n            justify-content: space-between;\n          }\n\n          \/* ========================= *\/\n          \/* DESKTOP (>= 800px) *\/\n          \/* ========================= *\/\n\n          @media (min-width: 800px) {\n            .produk-image {\n              width: 200px;\n            }\n\n            .produk-content {\n              padding: 20px;\n            }\n\n            .product-info-wrap {\n              flex-direction: row;\n              align-items: center;\n            }\n\n            .produk-btn {\n              display: inline-block;\n            }\n          }\n\n          \/* ========================= *\/\n          \/* TABLET (<= 768px) *\/\n          \/* ========================= *\/\n\n          @media (max-width: 768px) {\n            .produk-card {\n              flex-direction: column;\n            }\n\n            .produk-image {\n              width: 200px;\n              height: 220px;\n            }\n\n            .produk-content {\n              padding: 12px;\n            }\n\n            .produk-title {\n              font-size: 18px;\n            }\n\n            .produk-rating {\n              font-size: 14px;\n            }\n\n            .product-info-wrap {\n              flex-direction: column;\n              align-items: flex-start;\n              gap: 12px;\n            }\n\n            .produk-btn {\n              display: none;\n            }\n          }\n\n          \/* ========================= *\/\n          \/* MOBILE (<= 480px) *\/\n          \/* ========================= *\/\n\n          @media (max-width: 480px) {\n            .produk-image {\n              width: 100%;\n            }\n\n            .produk-content {\n              padding: 12px;\n            }\n\n            .produk-title {\n              font-size: 16px;\n              overflow: hidden;\n              text-overflow: ellipsis;\n            }\n\n            .produk-price-main {\n              font-size: 15px;\n            }\n\n            .produk-discount {\n              font-size: 12px;\n            }\n\n            .produk-btn {\n              display: none;\n            }\n          }\n\n          \/* ======================================= *\/\n          \/* CAROUSEL MODE (inside .carousel-list)  *\/\n          \/* ======================================= *\/\n\n          .carousel-wrapper {\n            position: relative;\n          }\n\n          .carousel-list {\n            overflow-x: auto;\n            overflow-y: hidden;\n            -webkit-overflow-scrolling: touch;\n            scroll-behavior: smooth;\n            scroll-snap-type: x mandatory;\n            scrollbar-width: none;\n          }\n\n          .carousel-list::-webkit-scrollbar {\n            display: none;\n          }\n\n          .carousel-list .produk-container {\n            display: flex;\n            flex-direction: row;\n            flex-wrap: nowrap;\n            width: max-content;\n            gap: 12px;\n          }\n\n          .carousel-list .produk-card {\n            flex: 0 0 auto;\n            width: 220px;\n            flex-direction: column;\n            scroll-snap-align: start;\n          }\n\n          .carousel-list .produk-image {\n            width: 100%;\n            height: 220px;\n          }\n\n          .carousel-list .produk-content {\n            padding: 12px;\n          }\n\n          .carousel-list .produk-title {\n\t\t\t  font-size: 16px;\n\t\t\t  overflow: hidden;\n\t\t\t  text-overflow: ellipsis;\n\t\t\t  display: -webkit-box;\n\t\t\t  -webkit-line-clamp: 2;\n\t\t\t  -webkit-box-orient: vertical;\n\t\t\t  line-clamp: 2;\n\t\t\t}\n\n          .carousel-list .produk-rating {\n            font-size: 14px;\n          }\n\n          .carousel-list .produk-price-main {\n            font-size: 15px;\n          }\n\n          .carousel-list .produk-discount {\n            font-size: 12px;\n          }\n\n          .carousel-list .product-info-wrap {\n            flex-direction: column;\n            align-items: flex-start;\n            gap: 12px;\n          }\n\n          .carousel-list .produk-btn {\n            display: none;\n          }\n\n          \/* ========================= *\/\n          \/* CAROUSEL ARROWS *\/\n          \/* ========================= *\/\n\n          .carousel-arrow {\n            position: absolute;\n            top: 50%;\n            transform: translateY(-50%);\n            width: 36px;\n            height: 36px;\n            border-radius: 50%;\n            background: #ffffff;\n            border: 1px solid #dadbe0;\n            box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            z-index: 10;\n            transition: opacity 0.2s, box-shadow 0.2s;\n            padding: 0;\n          }\n\n          .carousel-arrow:hover {\n\t\t\tbackground: #FFFFFF;\n            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n          }\n\n          .carousel-arrow.is-hidden {\n            opacity: 0;\n            pointer-events: none;\n          }\n\n          .carousel-arrow-left {\n            left: -18px;\n          }\n\n          .carousel-arrow-right {\n            right: -18px;\n          }\n\n          @media (max-width: 480px) {\n\t\t\t.carousel-arrow{\n\t\t\t\tdisplay: none;\n\t\t\t}\n            .carousel-arrow-left {\n              left: 4px;\n            }\n\n            .carousel-arrow-right {\n              right: 4px;\n            }\n          }\n    <\/style>\n\n    <!-- HTML -->\n    <div class=\"carousel-wrapper\" data-carousel-id=\"carousel-69f27607a8fe0\" data-is-carousel=\"1\">\n                    <button type=\"button\" class=\"carousel-arrow carousel-arrow-left is-hidden\" aria-label=\"Scroll left\">\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"25\" height=\"25\" fill=\"#000000\" viewBox=\"0 0 256 256\"><path d=\"M216,88v80a8,8,0,0,1-8,8H120v48L24,128l96-96V80h88A8,8,0,0,1,216,88Z\" opacity=\"0.2\"><\/path><path d=\"M208,72H128V32a8,8,0,0,0-13.66-5.66l-96,96a8,8,0,0,0,0,11.32l96,96A8,8,0,0,0,128,224V184h80a16,16,0,0,0,16-16V88A16,16,0,0,0,208,72Zm0,96H120a8,8,0,0,0-8,8v28.69L35.31,128,112,51.31V80a8,8,0,0,0,8,8h88Z\"><\/path><\/svg>\n            <\/button>\n            <button type=\"button\" class=\"carousel-arrow carousel-arrow-right is-hidden\" aria-label=\"Scroll right\">\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"25\" height=\"25\" fill=\"#000000\" viewBox=\"0 0 256 256\"><path d=\"M136,224V176H48a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8h88V32l96,96Z\" opacity=\"0.2\"><\/path><path d=\"M237.66,122.34l-96-96A8,8,0,0,0,128,32V72H48A16,16,0,0,0,32,88v80a16,16,0,0,0,16,16h80v40a8,8,0,0,0,13.66,5.66l96-96A8,8,0,0,0,237.66,122.34ZM144,204.69V176a8,8,0,0,0-8-8H48V88h88a8,8,0,0,0,8-8V51.31L220.69,128Z\"><\/path><\/svg>\n            <\/button>\n                <div class=\"carousel-list\">\n            <div class=\"produk-container\" data-slugs=\" uluwatu-temple-kecak-fire-dance-satusatu-curated-experience-sameday-booking-bonus-merchandise, satusatu-exclusive-car-charter-sameday-booking, satusatu-airport-transfer-from-to-airport-sameday-booking, nusa-penida-day-tour-satusatu-curated-experience-bonus-merchandise, bali-bird-park-experience-nature-wildlife-adventure\"><\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Script -->\n    <script>\n    (function() {\n\t\tfunction buildCatalogUrl(slug) {\n\t\t\t\/\/ UTM params hardcoded by the shortcode (these always win)\n\t\t\tconst hardcoded = {\n\t\t\t\tutm_source: \"blog\",\n\t\t\t\tutm_medium: \"in_line_product_cta\",\n\t\t\t};\n\n\t\t\t\/\/ UTM params from the current page URL (only used if hardcoded doesn't define them)\n\t\t\tconst pageParams = new URLSearchParams(window.location.search);\n\t\t\tconst utmKeys = [\"utm_source\", \"utm_medium\", \"utm_campaign\", \"utm_content\", \"utm_term\"];\n\t\t\tconst merged = new URLSearchParams();\n\n\t\t\tutmKeys.forEach(key => {\n\t\t\t\tif (hardcoded[key] !== undefined) {\n\t\t\t\t\t\/\/ Hardcoded value takes priority\n\t\t\t\t\tmerged.set(key, hardcoded[key]);\n\t\t\t\t} else if (pageParams.has(key)) {\n\t\t\t\t\t\/\/ Fall back to whatever the page URL has\n\t\t\t\t\tmerged.set(key, pageParams.get(key));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn \"https:\/\/satusatu.com\/en-ID\/catalog\/\" + slug + \"?\" + merged.toString();\n\t\t}\n\t\t\n        function renderCatalogItem(p) {\n            const location = p.location?.name || \"\";\n            const rating = p.rating?.average_rating ?? null;\n            const ratingCount = p.rating?.count_rating_display || \"\";\n            const soldDisplay = p.rating?.total_sold_display || \"\";\n            const currency = p.pricing?.currency_symbol || \"Rp\";\n            const price = p.pricing?.min_price || 0;\n            const originalPrice = p.pricing?.min_original_price || 0;\n            const discount = p.pricing?.discount || 0;\n\t\t\tconst catalogUrl = buildCatalogUrl(p.slug);\n\n            return `\n                <div class=\"produk-card\" data-url=\"${catalogUrl}\">\n                    <div class=\"produk-image\">\n                        <img decoding=\"async\" src=\"${p.image_url}\" alt=\"${p.title}\" \/>\n                        <div class=\"produk-location\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" fill=\"#000000\" viewBox=\"0 0 256 256\"><path d=\"M128,24a80,80,0,0,0-80,80c0,72,80,128,80,128s80-56,80-128A80,80,0,0,0,128,24Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,128,136Z\" opacity=\"0.2\"><\/path><path d=\"M128,64a40,40,0,1,0,40,40A40,40,0,0,0,128,64Zm0,64a24,24,0,1,1,24-24A24,24,0,0,1,128,128Zm0-112a88.1,88.1,0,0,0-88,88c0,31.4,14.51,64.68,42,96.25a254.19,254.19,0,0,0,41.45,38.3,8,8,0,0,0,9.18,0A254.19,254.19,0,0,0,174,200.25c27.45-31.57,42-64.85,42-96.25A88.1,88.1,0,0,0,128,16Zm0,206c-16.53-13-72-60.75-72-118a72,72,0,0,1,144,0C200,161.23,144.53,209,128,222Z\"><\/path><\/svg>\n                            <span>${location}<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"produk-content\">\n                        <div class=\"produk-title\">${p.title}<\/div>\n                        ${rating ? `\n                        <div class=\"produk-rating\">\n                            <div class=\"produk-rating-line\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"18\" fill=\"#F87500\" viewBox=\"0 0 256 256\"><path d=\"M229.06,108.79l-48.7,42,14.88,62.79a8.4,8.4,0,0,1-12.52,9.17L128,189.09,73.28,222.74a8.4,8.4,0,0,1-12.52-9.17l14.88-62.79-48.7-42A8.46,8.46,0,0,1,31.73,94L95.64,88.8l24.62-59.6a8.36,8.36,0,0,1,15.48,0l24.62,59.6L224.27,94A8.46,8.46,0,0,1,229.06,108.79Z\" opacity=\"0.2\"><\/path><path d=\"M239.18,97.26A16.38,16.38,0,0,0,224.92,86l-59-4.76L143.14,26.15a16.36,16.36,0,0,0-30.27,0L90.11,81.23,31.08,86a16.46,16.46,0,0,0-9.37,28.86l45,38.83L53,211.75a16.38,16.38,0,0,0,24.5,17.82L128,198.49l50.53,31.08A16.4,16.4,0,0,0,203,211.75l-13.76-58.07,45-38.83A16.43,16.43,0,0,0,239.18,97.26Zm-15.34,5.47-48.7,42a8,8,0,0,0-2.56,7.91l14.88,62.8a.37.37,0,0,1-.17.48c-.18.14-.23.11-.38,0l-54.72-33.65a8,8,0,0,0-8.38,0L69.09,215.94c-.15.09-.19.12-.38,0a.37.37,0,0,1-.17-.48l14.88-62.8a8,8,0,0,0-2.56-7.91l-48.7-42c-.12-.1-.23-.19-.13-.5s.18-.27.33-.29l63.92-5.16A8,8,0,0,0,103,91.86l24.62-59.61c.08-.17.11-.25.35-.25s.27.08.35.25L153,91.86a8,8,0,0,0,6.75,4.92l63.92,5.16c.15,0,.24,0,.33.29S224,102.63,223.84,102.73Z\"><\/path><\/svg>\n                                <span>${rating} (${ratingCount}) &bull; ${soldDisplay} sold<\/span>\n                            <\/div>\n                        <\/div>` : ''}\n                        <div class=\"product-info-wrap\">\n                            <div>\n                                <div style=\"display:flex;gap:6px;\">\n                                    <div style=\"font-size:14px;\">From<\/div>\n                                    <div class=\"produk-price-main\">${currency} ${price.toLocaleString()}<\/div>\n                                <\/div>\n                                ${discount > 0 ? `\n                                <div>\n                                    <span class=\"produk-price-strike\">${currency} ${originalPrice.toLocaleString()}<\/span>\n                                    <span class=\"produk-discount\">-${discount}%<\/span>\n                                <\/div>` : ''}\n                            <\/div>\n                            <div>\n                                <a target=\"_blank\" href=\"${catalogUrl}\" class=\"produk-btn\">Check Availability<\/a>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            `;\n        }\n\n        function initSatuSatuCatalog(wrapperEl) {\n            const scrollEl = wrapperEl.querySelector(\".carousel-list\");\n            const container = wrapperEl.querySelector(\".produk-container\");\n            const slugs = container.getAttribute(\"data-slugs\");\n            const isCarousel = wrapperEl.getAttribute(\"data-is-carousel\") === \"1\";\n            const leftArrow = wrapperEl.querySelector(\".carousel-arrow-left\");\n            const rightArrow = wrapperEl.querySelector(\".carousel-arrow-right\");\n\n            fetch(\"https:\/\/api.satusatu.com\/content\/guest\/satusatu\/v1\/catalogs\/blog\/catalog-list?slugs=\" + slugs)\n                .then(res => res.json())\n                .then(data => {\n                    container.innerHTML = data.data.map(renderCatalogItem).join('');\n                    \/\/ Event handler for card click\n                    container.querySelectorAll('.produk-card').forEach(card => {\n                        card.addEventListener('click', () => {\n                            window.open(card.dataset.url, '_blank');\n                        });\n                    });\n\n                    if (isCarousel && scrollEl && leftArrow && rightArrow) {\n                        const scrollAmount = 240;\n                        function updateArrows() {\n                            const sl = scrollEl.scrollLeft;\n                            const sw = scrollEl.scrollWidth;\n                            const cw = scrollEl.clientWidth;\n                            leftArrow.classList.toggle(\"is-hidden\", sl <= 0);\n                            rightArrow.classList.toggle(\"is-hidden\", sl + cw >= sw - 1);\n                        }\n                        leftArrow.addEventListener(\"click\", e => {\n                            e.stopPropagation();\n                            scrollEl.scrollBy({ left: -scrollAmount, behavior: \"smooth\" });\n                        });\n                        rightArrow.addEventListener(\"click\", e => {\n                            e.stopPropagation();\n                            scrollEl.scrollBy({ left: scrollAmount, behavior: \"smooth\" });\n                        });\n                        scrollEl.addEventListener(\"scroll\", updateArrows);\n                        window.addEventListener(\"resize\", updateArrows);\n                        setTimeout(updateArrows, 200);\n                    }\n                });\n        }\n\n        document.addEventListener(\"DOMContentLoaded\", function() {\n            document.querySelectorAll(\"[data-carousel-id]\").forEach(initSatuSatuCatalog);\n        });\n    })();\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"<p>A resort modeled on a Balinese village, built around a working rice paddy and a century-old mandapa temple, with every guest assigned their own personal butler. That is the premise at Mandapa, a Ritz-Carlton Reserve, and the execution lives up to the concept in ways that are genuinely rare in luxury hospitality.&nbsp; SatuSatu, a Bali&hellip;&nbsp;<\/p>\n","protected":false},"author":22,"featured_media":3014,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[569,4195,520,4261],"tags":[570,4199,533,4265,4289,526],"class_list":["post-3013","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bali-hotel","category-bali-hotel-resort","category-bali-resort","category-hotel-review","tag-bali-hotel","tag-bali-hotel-resort","tag-bali-resort","tag-hotel-review","tag-mandapa-ubud","tag-satusatu"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mandapa Ubud: Inside the Ritz-Carlton Reserve That Feels Like a Living Balinese Village - SatuSatu Inspiration<\/title>\n<meta name=\"description\" content=\"An inside look at Mandapa Ubud, a Ritz-Carlton Reserve, featuring luxury villas, riverside spa, fine dining, and an immersive Balinese village experience\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mandapa Ubud: Inside the Ritz-Carlton Reserve That Feels Like a Living Balinese Village - SatuSatu Inspiration\" \/>\n<meta property=\"og:description\" content=\"An inside look at Mandapa Ubud, a Ritz-Carlton Reserve, featuring luxury villas, riverside spa, fine dining, and an immersive Balinese village experience\" \/>\n<meta property=\"og:url\" content=\"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/\" \/>\n<meta property=\"og:site_name\" content=\"SatuSatu Inspiration\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-23T06:39:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-23T06:39:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/04\/mandapa-ubud.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Fatiya Aulia Muthmainnah\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatiya Aulia Muthmainnah\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/mandapa-ubud\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/mandapa-ubud\\\/\"},\"author\":{\"name\":\"Fatiya Aulia Muthmainnah\",\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/#\\\/schema\\\/person\\\/4b773aced63910f3c4d3c4a8c82516c2\"},\"headline\":\"Mandapa Ubud: Inside the Ritz-Carlton Reserve That Feels Like a Living Balinese Village\",\"datePublished\":\"2026-04-23T06:39:58+00:00\",\"dateModified\":\"2026-04-23T06:39:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/mandapa-ubud\\\/\"},\"wordCount\":1505,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/mandapa-ubud\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/mandapa-ubud.png\",\"keywords\":[\"Bali Hotel\",\"Bali Hotel &amp; Resort\",\"Bali Resort\",\"Hotel Review\",\"Mandapa Ubud\",\"SatuSatu\"],\"articleSection\":[\"Bali Hotel\",\"Bali Hotel &amp; Resort\",\"Bali Resort\",\"Hotel Review\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/mandapa-ubud\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/mandapa-ubud\\\/\",\"url\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/mandapa-ubud\\\/\",\"name\":\"Mandapa Ubud: Inside the Ritz-Carlton Reserve That Feels Like a Living Balinese Village - SatuSatu Inspiration\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/mandapa-ubud\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/mandapa-ubud\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/mandapa-ubud.png\",\"datePublished\":\"2026-04-23T06:39:58+00:00\",\"dateModified\":\"2026-04-23T06:39:59+00:00\",\"description\":\"An inside look at Mandapa Ubud, a Ritz-Carlton Reserve, featuring luxury villas, riverside spa, fine dining, and an immersive Balinese village experience\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/mandapa-ubud\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/mandapa-ubud\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/mandapa-ubud\\\/#primaryimage\",\"url\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/mandapa-ubud.png\",\"contentUrl\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/mandapa-ubud.png\",\"width\":1536,\"height\":1024,\"caption\":\"Mandapa Ubud\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/mandapa-ubud\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mandapa Ubud: Inside the Ritz-Carlton Reserve That Feels Like a Living Balinese Village\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/#website\",\"url\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/\",\"name\":\"SatuSatu\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/#organization\",\"name\":\"SatuSatu\",\"url\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/Variant1024.png\",\"contentUrl\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/Variant1024.png\",\"width\":1024,\"height\":1024,\"caption\":\"SatuSatu\"},\"image\":{\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/#\\\/schema\\\/person\\\/4b773aced63910f3c4d3c4a8c82516c2\",\"name\":\"Fatiya Aulia Muthmainnah\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f1bd35afe4fc3154c4ed985ce96b5941e11cd1aca25cc24a42ff9c58d10c640e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f1bd35afe4fc3154c4ed985ce96b5941e11cd1aca25cc24a42ff9c58d10c640e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f1bd35afe4fc3154c4ed985ce96b5941e11cd1aca25cc24a42ff9c58d10c640e?s=96&d=mm&r=g\",\"caption\":\"Fatiya Aulia Muthmainnah\"},\"url\":\"https:\\\/\\\/satusatu.com\\\/inspiration\\\/author\\\/ext-fatiya-aulia\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mandapa Ubud: Inside the Ritz-Carlton Reserve That Feels Like a Living Balinese Village - SatuSatu Inspiration","description":"An inside look at Mandapa Ubud, a Ritz-Carlton Reserve, featuring luxury villas, riverside spa, fine dining, and an immersive Balinese village experience","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/","og_locale":"en_US","og_type":"article","og_title":"Mandapa Ubud: Inside the Ritz-Carlton Reserve That Feels Like a Living Balinese Village - SatuSatu Inspiration","og_description":"An inside look at Mandapa Ubud, a Ritz-Carlton Reserve, featuring luxury villas, riverside spa, fine dining, and an immersive Balinese village experience","og_url":"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/","og_site_name":"SatuSatu Inspiration","article_published_time":"2026-04-23T06:39:58+00:00","article_modified_time":"2026-04-23T06:39:59+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/04\/mandapa-ubud.png","type":"image\/png"}],"author":"Fatiya Aulia Muthmainnah","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Fatiya Aulia Muthmainnah","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/#article","isPartOf":{"@id":"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/"},"author":{"name":"Fatiya Aulia Muthmainnah","@id":"https:\/\/satusatu.com\/inspiration\/#\/schema\/person\/4b773aced63910f3c4d3c4a8c82516c2"},"headline":"Mandapa Ubud: Inside the Ritz-Carlton Reserve That Feels Like a Living Balinese Village","datePublished":"2026-04-23T06:39:58+00:00","dateModified":"2026-04-23T06:39:59+00:00","mainEntityOfPage":{"@id":"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/"},"wordCount":1505,"commentCount":0,"publisher":{"@id":"https:\/\/satusatu.com\/inspiration\/#organization"},"image":{"@id":"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/#primaryimage"},"thumbnailUrl":"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/04\/mandapa-ubud.png","keywords":["Bali Hotel","Bali Hotel &amp; Resort","Bali Resort","Hotel Review","Mandapa Ubud","SatuSatu"],"articleSection":["Bali Hotel","Bali Hotel &amp; Resort","Bali Resort","Hotel Review"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/","url":"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/","name":"Mandapa Ubud: Inside the Ritz-Carlton Reserve That Feels Like a Living Balinese Village - SatuSatu Inspiration","isPartOf":{"@id":"https:\/\/satusatu.com\/inspiration\/#website"},"primaryImageOfPage":{"@id":"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/#primaryimage"},"image":{"@id":"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/#primaryimage"},"thumbnailUrl":"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/04\/mandapa-ubud.png","datePublished":"2026-04-23T06:39:58+00:00","dateModified":"2026-04-23T06:39:59+00:00","description":"An inside look at Mandapa Ubud, a Ritz-Carlton Reserve, featuring luxury villas, riverside spa, fine dining, and an immersive Balinese village experience","breadcrumb":{"@id":"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/#primaryimage","url":"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/04\/mandapa-ubud.png","contentUrl":"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/04\/mandapa-ubud.png","width":1536,"height":1024,"caption":"Mandapa Ubud"},{"@type":"BreadcrumbList","@id":"https:\/\/satusatu.com\/inspiration\/mandapa-ubud\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/satusatu.com\/inspiration\/"},{"@type":"ListItem","position":2,"name":"Mandapa Ubud: Inside the Ritz-Carlton Reserve That Feels Like a Living Balinese Village"}]},{"@type":"WebSite","@id":"https:\/\/satusatu.com\/inspiration\/#website","url":"https:\/\/satusatu.com\/inspiration\/","name":"SatuSatu","description":"","publisher":{"@id":"https:\/\/satusatu.com\/inspiration\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/satusatu.com\/inspiration\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/satusatu.com\/inspiration\/#organization","name":"SatuSatu","url":"https:\/\/satusatu.com\/inspiration\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/satusatu.com\/inspiration\/#\/schema\/logo\/image\/","url":"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/Variant1024.png","contentUrl":"https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/01\/Variant1024.png","width":1024,"height":1024,"caption":"SatuSatu"},"image":{"@id":"https:\/\/satusatu.com\/inspiration\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/satusatu.com\/inspiration\/#\/schema\/person\/4b773aced63910f3c4d3c4a8c82516c2","name":"Fatiya Aulia Muthmainnah","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f1bd35afe4fc3154c4ed985ce96b5941e11cd1aca25cc24a42ff9c58d10c640e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f1bd35afe4fc3154c4ed985ce96b5941e11cd1aca25cc24a42ff9c58d10c640e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f1bd35afe4fc3154c4ed985ce96b5941e11cd1aca25cc24a42ff9c58d10c640e?s=96&d=mm&r=g","caption":"Fatiya Aulia Muthmainnah"},"url":"https:\/\/satusatu.com\/inspiration\/author\/ext-fatiya-aulia\/"}]}},"uagb_featured_image_src":{"full":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/04\/mandapa-ubud.png",1536,1024,false],"thumbnail":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/04\/mandapa-ubud.png",150,100,false],"medium":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/04\/mandapa-ubud.png",300,200,false],"medium_large":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/04\/mandapa-ubud.png",768,512,false],"large":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/04\/mandapa-ubud.png",1024,683,false],"1536x1536":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/04\/mandapa-ubud.png",1536,1024,false],"2048x2048":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/04\/mandapa-ubud.png",1536,1024,false],"neve-blog":["https:\/\/satusatu.com\/inspiration\/wp-content\/uploads\/2026\/04\/mandapa-ubud.png",930,620,false]},"uagb_author_info":{"display_name":"Fatiya Aulia Muthmainnah","author_link":"https:\/\/satusatu.com\/inspiration\/author\/ext-fatiya-aulia\/"},"uagb_comment_info":0,"uagb_excerpt":"A resort modeled on a Balinese village, built around a working rice paddy and a century-old mandapa temple, with every guest assigned their own personal butler. That is the premise at Mandapa, a Ritz-Carlton Reserve, and the execution lives up to the concept in ways that are genuinely rare in luxury hospitality.&nbsp; SatuSatu, a Bali&hellip;&nbsp;","_links":{"self":[{"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/posts\/3013","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/comments?post=3013"}],"version-history":[{"count":1,"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/posts\/3013\/revisions"}],"predecessor-version":[{"id":3016,"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/posts\/3013\/revisions\/3016"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/media\/3014"}],"wp:attachment":[{"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/media?parent=3013"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/categories?post=3013"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/satusatu.com\/inspiration\/wp-json\/wp\/v2\/tags?post=3013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}