* { margin: 0; padding: 0; box-sizing: border-box; } :root { –blue: #005BAA; –blue2: #0072D6; –blue-light: #E8F2FC; –orange: #F47920; –orange2: #da532c; –dark: #1a2340; –gray: #6b7280; –white: #ffffff; –green: #2a9d8f; –text: #1a2340; } body { background: #f4f8fd; color: var(–text); font-family: ‘Plus Jakarta Sans’, ‘Segoe UI’, system-ui, sans-serif; overflow-x: hidden; margin:0; } a { text-decoration: none; color: inherit; } img { display: block; } nav { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; display: flex; align-items: center; justify-content: space-between; padding: 0 40px; height: 70px; background: rgba(255,255,255,0.97); backdrop-filter: blur(20px); top: 48px !important; border-bottom: 1px solid rgba(0,91,170,0.12); box-shadow: 0 2px 16px rgba(0,91,170,0.08); } .nav-logo { display: flex; align-items: center; gap: 10px; } .nav-logo .logo-text { font-size: 22px; font-weight: 800; letter-spacing: -0.5px; } .nav-logo .logo-enjoy { color: var(–text); } .nav-logo .logo-jakarta { color: var(–blue); } .nav-logo .logo-dot { color: var(–orange); } .nav-links { display: flex; gap: 30px; align-items: center; } .nav-links a { font-size: 14px; color: #4a5568; font-weight: 500; transition: color 0.2s; } .nav-links a:hover { color: var(–blue); } .nav-cta { background: var(–blue); color: white; padding: 10px 20px; border-radius: 25px; font-size: 13px; font-weight: 600; transition: all 0.2s; cursor: pointer; border: none; } .nav-cta:hover { background: var(–blue2); transform: scale(1.02); } .hero { min-height: 100vh; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; padding-top: 118px; } .hero-bg-img { position: absolute; inset: 0; background-image: url(‘https://images.unsplash.com/photo-1555899434-94d1368aa7af?auto=format&fit=crop&w=1920&q=80’); background-size: cover; background-position: center; } .hero-overlay { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0,30,80,0.88) 0%, rgba(0,91,170,0.82) 50%, rgba(0,100,180,0.78) 100%); } .hero-grid { position: absolute; inset: 0; opacity: 0.04; background-image: linear-gradient(rgba(255,255,255,0.8) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.8) 1px, transparent 1px); background-size: 60px 60px; } .hero-content { text-align: center; z-index: 1; padding: 0 20px; max-width: 920px; } .hero-badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.3); border-radius: 30px; padding: 8px 18px; font-size: 13px; color: #ffe0b2; margin-bottom: 28px; font-weight: 500; } .hero-badge .dot { width: 6px; height: 6px; background: var(–orange); border-radius: 50%; animation: pulse 2s infinite; } @keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.5;transform:scale(1.5)} } .hero-title { font-size: clamp(48px, 8vw, 88px); font-weight: 900; line-height: 1.0; letter-spacing: -2px; margin-bottom: 20px; } .hero-title .line1 { color: #fff; display: block; } .hero-title .line2 { color: #FFD166; display: block; } .hero-title .line3 { color: rgba(255,255,255,0.8); display: block; font-size: 0.7em; font-weight: 700; } .hero-sub { font-size: 18px; color: rgba(255,255,255,0.82); max-width: 620px; margin: 0 auto 40px; line-height: 1.7; } .hero-search { display: flex; align-items: center; background: rgba(255,255,255,0.97); border: 2px solid rgba(255,255,255,0.5); border-radius: 60px; padding: 8px 8px 8px 24px; max-width: 700px; margin: 0 auto 30px; box-shadow: 0 12px 40px rgba(0,0,0,0.2); } .hero-search:focus-within { border-color: var(–orange); } .hero-search input { flex: 1; background: transparent; border: none; outline: none; color: var(–text); font-size: 16px; padding: 8px 0; font-family: inherit; } .hero-search input::placeholder { color: #9ca3af; } .hero-search button { background: var(–orange); color: white; border: none; border-radius: 50px; padding: 14px 28px; font-size: 15px; font-weight: 700; cursor: pointer; white-space: nowrap; font-family: inherit; } .hero-search button:hover { background: var(–orange2); } .hero-filters { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; } .filter-pill { background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.3); border-radius: 30px; padding: 9px 18px; font-size: 13px; color: rgba(255,255,255,0.9); cursor: pointer; transition: all 0.2s; font-weight: 500; } .filter-pill:hover, .filter-pill.active { background: var(–orange); border-color: var(–orange); color: white; } .hero-stats { display: flex; gap: 50px; justify-content: center; margin-top: 60px; } .stat { text-align: center; } .stat-number { font-size: 36px; font-weight: 900; color: #FFD166; } .stat-label { font-size: 12px; color: rgba(255,255,255,0.7); text-transform: uppercase; letter-spacing: 1px; margin-top: 4px; } section { padding: 80px 40px; } .section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 40px; } .section-title { font-size: 30px; font-weight: 800; color: var(–text); } .section-title span { color: var(–blue); } .section-link { font-size: 14px; color: var(–blue); font-weight: 600; display: flex; align-items: center; gap: 4px; } .section-subtitle { color: var(–gray); font-size: 15px; margin-top: 6px; } .happening-strip { background: var(–blue); padding: 14px 40px; display: flex; align-items: center; gap: 20px; overflow: hidden; } .happening-label { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 2px; white-space: nowrap; display: flex; align-items: center; gap: 8px; color: white; } .live-dot { width: 8px; height: 8px; background: var(–orange); border-radius: 50%; animation: pulse 1.5s infinite; } .happening-scroll { display: flex; gap: 30px; animation: scroll 35s linear infinite; } @keyframes scroll { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} } .happening-item { white-space: nowrap; font-size: 14px; opacity: 0.9; color: white; } .cards-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; } .event-card { background: #fff; border-radius: 16px; overflow: hidden; border: 1px solid rgba(0,91,170,0.1); transition: all 0.3s; cursor: pointer; box-shadow: 0 2px 12px rgba(0,91,170,0.06); } .event-card:hover { transform: translateY(-5px); border-color: rgba(0,91,170,0.25); box-shadow: 0 20px 40px rgba(0,91,170,0.12); } .card-img { height: 210px; position: relative; overflow: hidden; background: var(–blue-light); display: flex; align-items: center; justify-content: center; } .card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s; } .event-card:hover .card-img img { transform: scale(1.05); } .card-badge { position: absolute; top: 12px; left: 12px; background: var(–blue); color: white; font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 20px; text-transform: uppercase; } .card-price { position: absolute; top: 12px; right: 12px; background: rgba(255,255,255,0.95); color: var(–text); font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 20px; } .card-body { padding: 20px; } .card-category { font-size: 11px; color: var(–orange); font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 8px; } .card-title { font-size: 17px; font-weight: 700; margin-bottom: 10px; line-height: 1.35; color: var(–text); } .card-meta { display: flex; flex-direction: column; gap: 5px; } .card-meta span { font-size: 13px; color: var(–gray); } .card-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(0,91,170,0.08); } .card-likes { font-size: 13px; color: var(–gray); } .card-btn { background: var(–blue); color: white; border: none; border-radius: 20px; padding: 8px 18px; font-size: 13px; font-weight: 600; cursor: pointer; font-family: inherit; } .card-btn:hover { background: var(–blue2); } .ai-section { background: linear-gradient(135deg, #003d7a 0%, #005BAA 50%, #0072D6 100%); } .ai-container { max-width: 920px; margin: 0 auto; text-align: center; } .ai-icon { font-size: 60px; margin-bottom: 20px; } .ai-title { font-size: 42px; font-weight: 900; margin-bottom: 14px; color: white; line-height: 1.15; } .ai-title span { color: #FFD166; } .ai-desc { font-size: 18px; color: rgba(255,255,255,0.8); margin-bottom: 40px; line-height: 1.75; max-width: 720px; margin-left: auto; margin-right: auto; } .ai-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 40px; } .ai-step { background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); border-radius: 16px; padding: 28px 16px; text-align: center; } .ai-step-icon { font-size: 36px; margin-bottom: 12px; } .ai-step-label { font-size: 13px; color: rgba(255,255,255,0.65); margin-top: 4px; } .ai-step-title { font-size: 15px; font-weight: 700; color: white; } .ai-demo { background: rgba(255,255,255,0.1); border: 1.5px solid rgba(255,255,255,0.25); border-radius: 20px; padding: 32px; text-align: left; } .ai-demo-input { background: rgba(0,0,0,0.2); border: 1px solid rgba(255,255,255,0.15); border-radius: 14px; padding: 18px 22px; font-size: 15px; color: rgba(255,255,255,0.85); font-style: italic; margin-bottom: 20px; line-height: 1.6; } .ai-demo-label { font-size: 11px; color: rgba(255,255,255,0.5); font-weight: 600; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 6px; } .ai-demo-title { font-size: 13px; color: #FFD166; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 18px; } .ai-timeline { display: flex; flex-direction: column; gap: 12px; } .ai-time-item { display: flex; gap: 14px; align-items: flex-start; } .ai-time-badge { background: var(–orange); color: white; font-size: 10px; font-weight: 800; padding: 4px 9px; border-radius: 8px; white-space: nowrap; margin-top: 2px; } .ai-time-text { font-size: 14px; color: rgba(255,255,255,0.85); line-height: 1.55; } .ai-cta { background: var(–orange); color: white; border: none; border-radius: 30px; padding: 17px 40px; font-size: 17px; font-weight: 700; cursor: pointer; margin-top: 32px; font-family: inherit; } .cats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; } .cat-card { border-radius: 18px; padding: 32px 20px; text-align: center; cursor: pointer; transition: all 0.3s; border: 1px solid transparent; background: #fff; box-shadow: 0 2px 8px rgba(0,91,170,0.06); } .cat-card:hover { transform: translateY(-5px); box-shadow: 0 14px 28px rgba(0,91,170,0.13); } .cat-icon { font-size: 44px; margin-bottom: 14px; } .cat-name { font-size: 16px; font-weight: 700; margin-bottom: 5px; color: var(–text); } .cat-count { font-size: 13px; color: var(–gray); } .cat-music { background: linear-gradient(135deg,#f0eaff,#e0d0ff); border-color: rgba(139,92,246,0.2); } .cat-food { background: linear-gradient(135deg,#fff7ed,#ffecd0); border-color: rgba(244,121,32,0.25); } .cat-family { background: linear-gradient(135deg,#e8fdf5,#c6f6e4); border-color: rgba(42,157,143,0.25); } .cat-arts { background: linear-gradient(135deg,#e8f2fc,#c5dcf5); border-color: rgba(0,91,170,0.2); } .cat-sports { background: linear-gradient(135deg,#e8f6ff,#c5e8ff); border-color: rgba(0,114,214,0.2); } .cat-nightlife { background: linear-gradient(135deg,#f3e8ff,#e2c5ff); border-color: rgba(180,0,255,0.15); } .cat-free { background: linear-gradient(135deg,#edfff0,#c6ffd0); border-color: rgba(100,200,100,0.25); } .cat-tourism { background: linear-gradient(135deg,#fffbe8,#fff3c0); border-color: rgba(244,121,32,0.25); } .neighborhoods-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; } .neighborhood-card { border-radius: 20px; overflow: hidden; position: relative; cursor: pointer; height: 220px; display: flex; align-items: flex-end; transition: all 0.3s; } .neighborhood-card:hover { transform: scale(1.02); box-shadow: 0 20px 40px rgba(0,0,0,0.2); } .neighborhood-card:first-child { grid-column: span 2; } .neighborhood-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; } .neighborhood-card:hover img { transform: scale(1.06); } .neighborhood-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,20,60,0.88) 0%, rgba(0,40,100,0.3) 50%, transparent 100%); } .neighborhood-info { position: relative; z-index: 1; padding: 22px; } .neighborhood-name { font-size: 21px; font-weight: 800; margin-bottom: 5px; color: white; } .neighborhood-count { font-size: 13px; color: rgba(255,255,255,0.75); } .neighborhood-tag { display: inline-block; background: var(–orange); color: white; font-size: 10px; font-weight: 700; padding: 3px 9px; border-radius: 12px; text-transform: uppercase; margin-bottom: 8px; } .map-section { background: #e8f2fc; padding: 80px 40px; } .map-container { background: #fff; border-radius: 24px; height: 480px; border: 1px solid rgba(0,91,170,0.12); overflow: hidden; box-shadow: 0 4px 20px rgba(0,91,170,0.08); } .map-container iframe { width: 100%; height: 100%; border: none; } .featured-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 20px; } .featured-main { background: #fff; border-radius: 20px; overflow: hidden; border: 1px solid rgba(0,91,170,0.1); cursor: pointer; transition: all 0.3s; box-shadow: 0 2px 12px rgba(0,91,170,0.06); } .featured-main:hover { border-color: rgba(0,91,170,0.25); transform: translateY(-4px); } .featured-img { height: 290px; overflow: hidden; position: relative; background: var(–blue-light); } .featured-img img { width: 100%; height: 100%; object-fit: cover; } .featured-body { padding: 26px; } .featured-tag { background: var(–blue); color: white; font-size: 11px; font-weight: 700; padding: 4px 12px; border-radius: 20px; text-transform: uppercase; display: inline-block; margin-bottom: 14px; } .featured-title { font-size: 21px; font-weight: 800; margin-bottom: 10px; line-height: 1.3; color: var(–text); } .featured-desc { font-size: 14px; color: var(–gray); line-height: 1.65; margin-bottom: 20px; } .featured-meta { display: flex; gap: 16px; flex-wrap: wrap; } .featured-meta span { font-size: 13px; color: var(–gray); } .membership-section { background: #e8f2fc; } .membership-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: 1050px; margin: 0 auto; } .member-card { background: #fff; border-radius: 24px; padding: 40px 30px; border: 1.5px solid rgba(0,91,170,0.1); text-align: center; transition: all 0.3s; position: relative; box-shadow: 0 2px 12px rgba(0,91,170,0.06); } .member-card:hover { transform: translateY(-7px); box-shadow: 0 24px 48px rgba(0,91,170,0.13); } .member-card.popular { border-color: var(–blue); border-width: 2px; } .popular-badge { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); background: var(–blue); color: white; font-size: 12px; font-weight: 700; padding: 6px 22px; border-radius: 20px; text-transform: uppercase; white-space: nowrap; } .member-icon { font-size: 52px; margin-bottom: 18px; } .member-name { font-size: 22px; font-weight: 800; margin-bottom: 6px; color: var(–text); } .member-price { font-size: 40px; font-weight: 900; color: var(–blue); margin-bottom: 4px; line-height: 1.1; } .member-price span { font-size: 16px; color: var(–gray); font-weight: 400; } .member-desc { font-size: 14px; color: var(–gray); margin-bottom: 28px; margin-top: 4px; } .member-features { list-style: none; text-align: left; margin-bottom: 28px; } .member-features li { font-size: 14px; color: var(–text); padding: 9px 0; border-bottom: 1px solid rgba(0,91,170,0.07); display: flex; align-items: center; gap: 9px; } .member-features li::before { content: ‘2713’; color: var(–green); font-weight: 800; font-size: 13px; } .member-btn { width: 100%; padding: 15px; border-radius: 30px; font-size: 16px; font-weight: 700; cursor: pointer; transition: all 0.2s; border: none; font-family: inherit; } .member-btn-free { background: rgba(0,91,170,0.07); color: var(–blue); border: 1.5px solid rgba(0,91,170,0.2); } .member-btn-paid { background: var(–blue); color: white; } .organizer-section { background: linear-gradient(135deg, #003d7a 0%, #005BAA 100%); } .organizer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; } .organizer-features { display: flex; flex-direction: column; gap: 22px; margin-top: 32px; } .org-feature { display: flex; gap: 18px; align-items: flex-start; } .org-icon { font-size: 30px; min-width: 44px; } .org-title { font-size: 17px; font-weight: 700; margin-bottom: 5px; color: white; } .org-desc { font-size: 14px; color: rgba(255,255,255,0.62); line-height: 1.6; } .organizer-cta { background: var(–orange); color: white; border: none; border-radius: 30px; padding: 17px 38px; font-size: 17px; font-weight: 700; cursor: pointer; margin-top: 32px; font-family: inherit; } .organizer-right { background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); border-radius: 24px; padding: 36px; } .org-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; } .org-stat { text-align: center; padding: 26px; background: rgba(255,255,255,0.08); border-radius: 18px; } .org-stat-num { font-size: 38px; font-weight: 900; color: #FFD166; } .org-stat-label { font-size: 12px; color: rgba(255,255,255,0.65); text-transform: uppercase; margin-top: 6px; } .newsletter-section { background: var(–orange); text-align: center; padding: 90px 40px; position: relative; overflow: hidden; } .newsletter-title { font-size: 44px; font-weight: 900; margin-bottom: 14px; color: white; } .newsletter-sub { font-size: 18px; color: rgba(255,255,255,0.9); margin-bottom: 16px; } .newsletter-perks { display: flex; justify-content: center; gap: 24px; margin-bottom: 36px; flex-wrap: wrap; } .newsletter-perk { font-size: 14px; color: rgba(255,255,255,0.9); } .newsletter-form { display: flex; gap: 12px; justify-content: center; max-width: 520px; margin: 0 auto; } .newsletter-form input { flex: 1; background: rgba(255,255,255,0.2); border: 1.5px solid rgba(255,255,255,0.4); border-radius: 30px; padding: 15px 24px; font-size: 15px; color: white; outline: none; font-family: inherit; } .newsletter-form button { background: white; color: var(–orange); border: none; border-radius: 30px; padding: 15px 28px; font-size: 15px; font-weight: 700; cursor: pointer; font-family: inherit; } footer { background: #0a1a35; padding: 64px 40px 32px; border-top: 1px solid rgba(255,255,255,0.06); } .footer-grid { display: grid; grid-template-columns: 2.2fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 50px; } .footer-brand p { font-size: 14px; color: rgba(255,255,255,0.52); line-height: 1.75; margin-top: 14px; max-width: 300px; } .footer-social { display: flex; gap: 10px; margin-top: 20px; } .social-btn { width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,0.08); display: flex; align-items: center; justify-content: center; font-size: 16px; cursor: pointer; } .social-btn:hover { background: var(–blue); } .footer-col h4 { font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px; color: rgba(255,255,255,0.4); margin-bottom: 18px; } .footer-col a { display: block; font-size: 14px; color: rgba(255,255,255,0.58); margin-bottom: 11px; transition: color 0.2s; } .footer-col a:hover { color: white; } .footer-bottom { display: flex; align-items: center; justify-content: space-between; padding-top: 28px; border-top: 1px solid rgba(255,255,255,0.08); flex-wrap: wrap; gap: 12px; } .footer-bottom p { font-size: 13px; color: rgba(255,255,255,0.35); } .footer-bottom-links { display: flex; gap: 20px; } .footer-bottom-links a { font-size: 13px; color: rgba(255,255,255,0.4); } @media (max-width: 900px) { nav { padding: 0 20px; } .nav-links { display: none; } section { padding: 60px 20px; } .cats-grid { grid-template-columns: repeat(2,1fr); } .ai-steps { grid-template-columns: repeat(2,1fr); } .neighborhoods-grid { grid-template-columns: 1fr; } .neighborhood-card:first-child { grid-column: span 1; } .featured-grid { grid-template-columns: 1fr; } .membership-cards { grid-template-columns: 1fr; } .organizer-grid { grid-template-columns: 1fr; gap: 40px; } .footer-grid { grid-template-columns: 1fr 1fr; } }
🎟️ PROMO EARLY BIRD — Daftar Jakarta Insider sekarang & dapatkan Ancol Annual Pass GRATIS! Terbatas untuk 50 member pertama
.jfy-page{display:none;}.jfy-page.jfy-active{display:block;}function jfyNav(p,e){if(e&&e.preventDefault)e.preventDefault();document.querySelectorAll(“.jfy-page”).forEach(function(el){el.classList.remove(“jfy-active”);});var pg=document.getElementById(“jfy-page-“+p);if(pg)pg.classList.add(“jfy-active”);window.scrollTo({top:0,behavior:”smooth”});try{history.pushState(null,null,”#”+p);}catch(x){}}window.addEventListener(“popstate”,function(){var h=location.hash.replace(“#”,””);jfyNav(h||”home”);});document.addEventListener(“DOMContentLoaded”,function(){var h=location.hash.replace(“#”,””);jfyNav(h||”home”);}); function jfyOpenFreeSignup(){ var m=document.getElementById(‘jfy-free-modal’); if(m){m.style.display=’flex’;} } function jfySubmitFree(){ var name=document.getElementById(‘jfy-free-name’)?.value?.trim(); var email=document.getElementById(‘jfy-free-email’)?.value?.trim(); var status=document.getElementById(‘jfy-free-status’); var btn=document.querySelector(‘#jfy-free-modal button:last-of-type’); if(!name||!email){status.style.display=’block’;status.style.background=’#fff3cd’;status.style.color=’#856404′;status.textContent=’Mohon isi nama dan email kamu.’;return;} if(btn){btn.disabled=true;btn.textContent=’Mendaftar…’;} fetch(‘/?rest_route=/jfy/v1/register’,{method:’POST’,headers:{‘Content-Type’:’application/json’},body:JSON.stringify({name:name,email:email,plan:’explorer_free’})}) .then(function(r){return r.json();}) .then(function(data){ if(btn){btn.disabled=false;btn.innerHTML=’✓ Daftar Sekarang — Gratis!’;} if(data.code===’duplicate’){status.style.display=’block’;status.style.background=’#fff3cd’;status.style.color=’#856404′;status.textContent=’Email ini sudah terdaftar.’;return;} if(!data.success){status.style.display=’block’;status.style.background=’#fee2e2′;status.style.color=’#991b1b’;status.textContent=’Gagal mendaftar. Coba lagi.’;return;} status.style.display=’block’;status.style.background=’#d1fae5′;status.style.color=’#065f46′; status.innerHTML=’✓ Selamat datang, ‘+name+’! Akun Explorer kamu sudah aktif.’; setTimeout(function(){var m=document.getElementById(‘jfy-free-modal’);if(m)m.style.display=’none’;},3000); }).catch(function(){ if(btn){btn.disabled=false;btn.innerHTML=’✓ Daftar Sekarang — Gratis!’;} status.style.display=’block’;status.style.background=’#fee2e2′;status.style.color=’#991b1b’;status.textContent=’Koneksi gagal. Coba lagi.’; }); } document.addEventListener(‘click’,function(e){ var m=document.getElementById(‘jfy-free-modal’); if(m&&e.target===m)m.style.display=’none’; }); function jfyNavToAI(e){ if(e&&e.preventDefault)e.preventDefault(); // Show home page document.querySelectorAll(‘.jfy-page’).forEach(function(el){el.classList.remove(‘jfy-active’);}); var pg=document.getElementById(‘jfy-page-home’); if(pg)pg.classList.add(‘jfy-active’); // Scroll after brief delay using every available method function doScroll(){ var el=document.getElementById(‘jfy-ai-anchor’); if(!el)return; var top=el.offsetTop-80; // Method 1 try{window.scrollTo({top:top,behavior:’smooth’});}catch(ex){} // Method 2 try{document.documentElement.scrollTo({top:top,behavior:’smooth’});}catch(ex){} // Method 3 try{document.body.scrollTo({top:top,behavior:’smooth’});}catch(ex){} // Method 4 – instant fallback try{if(window.scrollY===0&&document.documentElement.scrollTop===0&&document.body.scrollTop===0){document.documentElement.scrollTop=top;document.body.scrollTop=top;}}catch(ex){} // Method 5 – scrollIntoView try{el.scrollIntoView({behavior:’smooth’,block:’start’});}catch(ex){} setTimeout(function(){var ta=document.getElementById(‘jfy-prompt-input’);if(ta)ta.focus();},700); } setTimeout(doScroll,80); }
Sabtu, 6 Juni 2026  ·  ☀️ 31°C  ·  Jakarta

Your Jakarta.Right Now.Discover · Plan · Experience

Dari kopi pagi hingga konser tengah malam — semua yang terjadi di Jakarta, dikurasi khusus untuk kamu.

🔥 Hari Ini
📅 Weekend Ini
🎵 Musik
🍜 Kuliner
👪 Keluarga
🌙 Nightlife
✨ Gratis
2,847
Event Bulan Ini
1,200+
Partner Venue
48 Area
Coverage Jakarta
HAPPENING NOW
🎵 Java Jazz @ Ancol · 19:00 🍜 Jakarta Food Festival · SCBD 🎨 Pameran Seni Rupa · Dia.lo.gue 🏃 Fun Run Monas · Gratis 🎭 Teater Koma: Suksesi · TIM 🌊 Sunset Beach Party · Ancol ☕ Coffee Art Festival · PIK 2 🎵 Java Jazz @ Ancol · 19:00 🍜 Jakarta Food Festival · SCBD 🎨 Pameran Seni Rupa · Dia.lo.gue 🏃 Fun Run Monas · Gratis 🎭 Teater Koma: Suksesi · TIM
Pilihan Terbaik Hari Ini
Dikurasi oleh tim Jakarta kami — jangan sampai ketinggalan
Lihat semua hari ini →
Java Jazz Festival
Editor’s Pick
Rp 350rb
Musik & Konser
Java Jazz Festival Night 2 — Malam Kedua
📍 Ancol Beach City, Jakarta Utara🕐 Sabtu, 6 Juni · 19:00 – 23:30
Jakarta Street Food
Trending
Free Entry
Festival Kuliner
Jakarta Street Food Fiesta 2026
📍 Lapangan SCBD, Jakarta Selatan🕐 Sabtu–Minggu · 10:00 – 22:00
Dunia Fantasi
Keluarga
Rp 150rb
Aktivitas Keluarga
Dunia Fantasi — Weekend Experience
📍 Ancol, Jakarta Utara🕐 Buka setiap hari · 10:00 – 18:00
Pameran Seni
Seni
Rp 75rb
Seni & Pameran
Pameran Tunggal: “Jakarta 2050” — Manifold Art
📍 Museum MACAN, Jakarta Barat🕐 Hingga 30 Juni · 10:00 – 20:00
.cat-card.cat-active{outline:3px solid var(–blue);transform:translateY(-6px) !important;box-shadow:0 16px 32px rgba(0,91,170,0.22) !important;}.cat-panel{display:none;}.cat-panel.cat-panel-active{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:36px;animation:cfadeIn 0.35s ease;}@keyframes cfadeIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.citem{background:#fff;border-radius:16px;overflow:hidden;border:1px solid rgba(0,91,170,0.1);box-shadow:0 2px 12px rgba(0,91,170,0.06);transition:all 0.3s;}.citem:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(0,91,170,0.14);}.citem-img{height:180px;overflow:hidden;position:relative;}.citem-img img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s;}.citem:hover .citem-img img{transform:scale(1.06);}.citem-badge{position:absolute;top:10px;left:10px;background:var(–orange);color:#fff;font-size:10px;font-weight:700;padding:3px 9px;border-radius:12px;white-space:nowrap;}.citem-price{position:absolute;top:10px;right:10px;background:rgba(255,255,255,0.95);color:var(–text);font-size:10px;font-weight:700;padding:3px 9px;border-radius:12px;}.citem-body{padding:16px;}.citem-title{font-size:15px;font-weight:700;margin-bottom:5px;color:var(–text);line-height:1.3;}.citem-loc{font-size:12px;color:var(–gray);margin-bottom:14px;}.citem-btn{display:block;text-align:center;background:var(–blue);color:#fff;border-radius:20px;padding:9px 14px;font-size:13px;font-weight:600;text-decoration:none;transition:all 0.2s;font-family:inherit;}.citem-btn:hover{background:var(–blue2);}@media(max-width:900px){.cat-panel.cat-panel-active{grid-template-columns:repeat(2,1fr);}}@media(max-width:600px){.cat-panel.cat-panel-active{grid-template-columns:1fr;}}
Jelajahi Berdasarkan Kategori
Klik kategori untuk lihat rekomendasi terbaik kami di Jakarta
🎵
Musik & Konser
342 event aktif
🍜
Kuliner & Restoran
1,240 tempat makan
👪
Keluarga & Anak
186 aktivitas seru
🎨
Seni & Budaya
94 pameran & galeri
Olahraga & Fitness
218 aktivitas
🌙
Nightlife
167 venue malam
Event Gratis
89 minggu ini
🏛️
Wisata & Atraksi
312 destinasi
Java Jazz Festival 2026
🔴 LIVE
Rp 350rb
Java Jazz Festival 2026
📍 Ancol Beach City, Jakarta Utara
Beli Tiket
We The Fest 2026
Juli 2026
Rp 500rb
We The Fest 2026
📍 GBK Senayan, Jakarta Selatan
Info & Tiket
Synchronize Festival 2026
Oktober 2026
Rp 400rb
Synchronize Festival 2026
📍 Gambir Expo, Jakarta Pusat
Info & Tiket
Djakarta Warehouse Project (DWP)
Desember
Rp 650rb
Djakarta Warehouse Project (DWP)
📍 JIEXPO Kemayoran, Jakarta Utara
Info & Tiket
SCBD Weekland — Food & Fun
Setiap Weekend
Free Entry
SCBD Weekland — Food & Fun
📍 Lapangan SCBD, Jakarta Selatan
Lihat Info
Pasar Santa Food Market
Setiap Hari
Free Entry
Pasar Santa Food Market
📍 Kebayoran Baru, Jakarta Selatan
Lihat di Maps
Kemang Food & Artisan Market
Sabtu–Minggu
Free Entry
Kemang Food & Artisan Market
📍 Jl. Kemang Raya, Jakarta Selatan
Lihat Info
PIK Avenue Food Hall
Setiap Hari
Free Entry
PIK Avenue Food Hall
📍 PIK Avenue, Jakarta Utara
Kunjungi
Dunia Fantasi (Dufan)
Family Fun
Rp 275rb
Dunia Fantasi (Dufan)
📍 Ancol, Jakarta Utara
Beli Tiket
Sea World Ancol
Aquarium
Rp 120rb
Sea World Ancol
📍 Ancol, Jakarta Utara
Beli Tiket
KidZania Jakarta
Edukatif
Rp 250rb
KidZania Jakarta
📍 Pacific Place Mall, SCBD
Beli Tiket
Taman Mini Indonesia Indah (TMII)
Budaya & Alam
Rp 35rb
Taman Mini Indonesia Indah (TMII)
📍 Cipayung, Jakarta Timur
Kunjungi
Museum MACAN
Pameran Tetap
Rp 50rb
Museum MACAN
📍 AKR Tower, Jakarta Barat
Beli Tiket
Dia.lo.gue Artspace
Galeri
Free
Dia.lo.gue Artspace
📍 Kemang, Jakarta Selatan
Kunjungi
Galeri Nasional Indonesia
Seni Nasional
Free
Galeri Nasional Indonesia
📍 Gambir, Jakarta Pusat
Kunjungi
Pasar Seni Ancol
Kerajinan
Free
Pasar Seni Ancol
📍 Ancol, Jakarta Utara
Kunjungi
Jakarta Triathlon 2026
Minggu 07:00
Rp 200rb
Jakarta Triathlon 2026
📍 Ancol Beach, Jakarta Utara
Daftar Sekarang
Jakarta Marathon 2026
Oktober 2026
Rp 350rb
Jakarta Marathon 2026
📍 Monas, Jakarta Pusat
Daftar Sekarang
Car Free Day Monas & Sudirman
Setiap Minggu
Gratis
Car Free Day Monas & Sudirman
📍 Jl. Sudirman – Monas, Jakarta Pusat
Lihat Info
Senayan Sports Complex (GBK)
Fasilitas Lengkap
Rp 15rb
Senayan Sports Complex (GBK)
📍 GBK, Senayan, Jakarta Selatan
Kunjungi
Colosseum Club Jakarta
Klub Malam
Rp 150rb
Colosseum Club Jakarta
📍 Jl. Hayam Wuruk, Jakarta Barat
Info & Table
Skye Bar & Restaurant
Rooftop Bar
Rp 200rb
Skye Bar & Restaurant
📍 BCA Tower Level 56, Sudirman
Reservasi
MC Rooftop PIK
Rooftop
Rp 100rb
MC Rooftop PIK
📍 PIK, Jakarta Utara
Info & Table
Immigrant Dining Room
Dining & Music
Rp 150rb
Immigrant Dining Room
📍 Kemang, Jakarta Selatan
Reservasi
Car Free Day Sudirman–Thamrin
Setiap Minggu
100% Gratis
Car Free Day Sudirman–Thamrin
📍 Jl. Sudirman & Thamrin, Jakarta Pusat
Lihat Info
Pantai Ancol
Pantai Kota
Rp 35rb masuk
Pantai Ancol
📍 Ancol, Jakarta Utara
Beli Tiket Masuk
Wisata Kota Tua Jakarta
Heritage
100% Gratis
Wisata Kota Tua Jakarta
📍 Kota Tua, Jakarta Barat
Lihat Info
Taman Menteng & Taman Suropati
Taman Kota
100% Gratis
Taman Menteng & Taman Suropati
📍 Menteng, Jakarta Pusat
Lihat di Maps
Monumen Nasional (Monas)
Landmark Nasional
Rp 20rb
Monumen Nasional (Monas)
📍 Gambir, Jakarta Pusat
Kunjungi
Kota Tua Jakarta
Warisan Budaya
Gratis
Kota Tua Jakarta
📍 Pinangsia, Jakarta Barat
Lihat Info
Kepulauan Seribu
Island Hopping
Mulai Rp 50rb
Kepulauan Seribu
📍 Pelabuhan Muara Angke, Jakarta Utara
Pesan Paket
Taman Mini Indonesia Indah (TMII)
Budaya & Alam
Rp 35rb
Taman Mini Indonesia Indah (TMII)
📍 Cipayung, Jakarta Timur
Kunjungi
function jfyShowCat(id){document.querySelectorAll(‘#jfyc-tabs .cat-card’).forEach(function(e){e.classList.remove(‘cat-active’);});var t=document.getElementById(‘jfyc-tab-‘+id);if(t)t.classList.add(‘cat-active’);document.querySelectorAll(‘#jfyc-panels .cat-panel’).forEach(function(e){e.classList.remove(‘cat-panel-active’);});var p=document.getElementById(‘jfyc-panel-‘+id);if(p)p.classList.add(‘cat-panel-active’);}document.addEventListener(‘DOMContentLoaded’,function(){jfyShowCat(‘musik’);});
@keyframes jfyChatSpin{to{transform:rotate(360deg)}} @keyframes jfyChatFade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}} @keyframes jfyChatPulse{0%,100%{opacity:0.4}50%{opacity:1}} .jfy-chat-wrap{max-width:820px;margin:0 auto;} .jfy-prompt-box{position:relative;background:rgba(255,255,255,0.08);border:1.5px solid rgba(255,255,255,0.2);border-radius:24px;padding:4px 4px 4px 24px;display:flex;align-items:flex-end;gap:12px;transition:border-color 0.3s;} .jfy-prompt-box:focus-within{border-color:rgba(255,255,255,0.6);background:rgba(255,255,255,0.12);} .jfy-prompt-box textarea{flex:1;background:transparent;border:none;outline:none;color:white;font-size:16px;line-height:1.6;font-family:inherit;resize:none;padding:14px 0;min-height:52px;max-height:160px;} .jfy-prompt-box textarea::placeholder{color:rgba(255,255,255,0.4);} .jfy-send-btn{background:var(–orange);color:white;border:none;border-radius:18px;padding:12px 22px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;white-space:nowrap;flex-shrink:0;transition:all 0.2s;margin:4px;} .jfy-send-btn:hover{background:var(–orange2);transform:scale(1.03);} .jfy-send-btn:disabled{opacity:0.6;transform:none;cursor:wait;} .jfy-example-chip{background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.2);border-radius:30px;padding:8px 16px;font-size:13px;color:rgba(255,255,255,0.8);cursor:pointer;transition:all 0.2s;white-space:nowrap;} .jfy-example-chip:hover{background:rgba(255,255,255,0.2);color:white;} .jfy-chat-bubble{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);border-radius:20px;padding:20px 24px;margin-top:24px;animation:jfyChatFade 0.4s ease;} .jfy-typing-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,0.6);animation:jfyChatPulse 1.2s ease infinite;}
🤖
AI Experience Planner
Ceritakan apa yang kamu mau — siapa yang ikut, mau ngapain, budget, atau mood hari ini. Claude AI akan brainstorm dan buat itinerary Jakarta yang benar-benar personal untukmu.
👪 Weekend keluarga di Ancol dengan anak SD, budget 1 juta
💑 Date night romantis di Jakarta, budget 500rb berdua
🎵 Konser jazz malam ini + makan malam enak setelahnya
🧭 Solo traveler, 1 hari explore Kota Tua dan kuliner Betawi
✨ Itinerary gratis atau murah untuk mahasiswa di akhir pekan
function jfyFillPrompt(chip) { var ta = document.getElementById(‘jfy-prompt-input’); ta.value = chip.textContent.trim().replace(/^[^s]+s/,”); ta.style.height = ‘auto’; ta.style.height = Math.min(ta.scrollHeight, 160) + ‘px’; ta.focus(); } document.getElementById(‘jfy-prompt-input’)?.addEventListener(‘keydown’, function(e) { if (e.key === ‘Enter’ && !e.shiftKey) { e.preventDefault(); jfyChatSend(); } }); function jfyChatSend() { var ta = document.getElementById(‘jfy-prompt-input’); var prompt = ta.value.trim(); if (!prompt) return; var btn = document.getElementById(‘jfy-chat-send-btn’); var history = document.getElementById(‘jfy-chat-history’); // Show user bubble var userBubble = document.createElement(‘div’); userBubble.style.cssText = ‘display:flex;justify-content:flex-end;margin-top:16px;animation:jfyChatFade 0.3s ease;’; userBubble.innerHTML = ‘
‘ + prompt.replace(/</g,'<') + '
‘; history.appendChild(userBubble); // Show typing indicator var typingBubble = document.createElement(‘div’); typingBubble.id = ‘jfy-typing’; typingBubble.style.cssText = ‘display:flex;align-items:center;gap:6px;margin-top:16px;animation:jfyChatFade 0.3s ease;’; typingBubble.innerHTML = ‘
Claude AI sedang menyusun itinerary…
‘; history.appendChild(typingBubble); history.scrollIntoView({behavior:’smooth’, block:’nearest’}); // Disable input btn.disabled = true; btn.textContent = ‘…’; ta.value = ”; ta.style.height = ’52px’; // Hide example chips var examples = document.getElementById(‘jfy-examples’); if (examples) examples.style.display = ‘none’; // Call AI fetch(‘/?rest_route=/jfy/v1/plan’, { method: ‘POST’, headers: {‘Content-Type’:’application/json’}, body: JSON.stringify({prompt: prompt}) }).then(function(r){return r.json();}) .then(function(data) { var typing = document.getElementById(‘jfy-typing’); if (typing) typing.remove(); btn.disabled = false; btn.textContent = ‘u2728 Generate’; if (!data.success || !data.items || !data.items.length) { var errBubble = document.createElement(‘div’); errBubble.className = ‘jfy-chat-bubble’; errBubble.innerHTML = ‘
u26A0uFE0F ‘ + (data.message || data.code || ‘Gagal generate. Coba tulis ulang permintaanmu.’) + ‘
‘; history.appendChild(errBubble); return; } var items = data.items; var totalItem = items.find(function(i){return i.time && i.time.toUpperCase().includes(‘TOTAL’);}); var aiBubble = document.createElement(‘div’); aiBubble.className = ‘jfy-chat-bubble’; aiBubble.innerHTML = ‘
‘ + ‘
‘ + ‘
uD83EuDD16
‘ + ‘
Itinerary dari Claude AI
‘ + ‘
Dibuat khusus berdasarkan permintaanmu
‘ + (totalItem && totalItem.price ? ‘
uD83DuDCB0 ‘ + totalItem.price + ‘
‘ : ”) + ‘
‘ + ‘
‘ + items.map(function(it, i) { var isTotal = it.time && it.time.toUpperCase().includes(‘TOTAL’); return ‘
‘ + ‘
‘ + ‘
‘+it.activity+’
‘ + ‘
‘+it.time+’
‘ + ‘
uD83DuDCCD ‘ + it.location + ‘
‘ + (it.price ? ‘
uD83DuDCB0 ‘+it.price+’
‘ : ”) + (it.tip ? ‘
uD83DuDCA1 ‘+it.tip+’
‘ : ”) + ‘
‘; }).join(”) + ‘
‘ + ‘
‘ + ‘‘ + ‘‘ + ‘
‘; history.appendChild(aiBubble); aiBubble.scrollIntoView({behavior:’smooth’, block:’nearest’}); }) .catch(function(e) { var typing = document.getElementById(‘jfy-typing’); if (typing) typing.remove(); btn.disabled = false; btn.textContent = ‘u2728 Generate’; var errBubble = document.createElement(‘div’); errBubble.className = ‘jfy-chat-bubble’; errBubble.innerHTML = ‘
u274C ‘ + e.message + ‘
‘; history.appendChild(errBubble); }); }
Pilihan Weekend Ini
Yang terbaik di Jakarta, Sabtu–Minggu ini
Lihat semua →
Jelajahi Area Jakarta
Setiap sudut Jakarta menyimpan kejutan yang menakjubkan
Semua area →
Ancol
Populer
🌊 Ancol & Jakarta Utara
284 pengalaman · Pantai, Taman Bermain, Konser
SCBD
🏙️ SCBD & Sudirman
412 pengalaman · Fine Dining, Bisnis & Lifestyle
Kemang
🌿 Kemang
198 pengalaman · Kafe, Galeri, Brunch
Kota Tua
🏛️ Kota Tua & Glodok
167 pengalaman · Warisan, Budaya, Sejarah
PIK
✨ PIK & Pantai Indah Kapuk
223 pengalaman · Shopping, Nightlife & Kuliner
Menteng
🌸 Menteng
145 pengalaman · Taman, Museum, Kafe Heritage
.jfy-popup-wrap .leaflet-popup-content-wrapper{border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,0.18);padding:0;overflow:hidden;border:none;}.jfy-popup-wrap .leaflet-popup-content{margin:18px;}.jfy-popup-wrap .leaflet-popup-tip{background:white;}
Peta Pengalaman Jakarta
Klik marker untuk lihat detail event, harga, dan cara beli tiket
📍 24 event ditampilkan
var JFY_CAT_COLORS={“musik”:”#7c3aed”,”kuliner”:”#F47920″,”keluarga”:”#16a34a”,”seni”:”#005BAA”,”olahraga”:”#0072D6″,”nightlife”:”#7c00c8″,”gratis”:”#059669″,”wisata”:”#d97706″};var JFY_CAT_LABELS={“musik”:”Musik & Konser”,”kuliner”:”Kuliner”,”keluarga”:”Keluarga & Anak”,”seni”:”Seni & Budaya”,”olahraga”:”Olahraga & Fitness”,”nightlife”:”Nightlife”,”gratis”:”Event Gratis”,”wisata”:”Wisata & Atraksi”};var JFY_EVENTS=[{“id”:1,”cat”:”musik”,”e”:”🎵”,”n”:”Java Jazz Festival 2026″,”loc”:”Ancol Beach City, Jakarta Utara”,”d”:”Sabtu, 6 Juni · 19:00–23:30″,”p”:”Rp 350.000″,”link”:”https://jfp.events/ticket/jjf2026″,”btn”:”Beli Tiket”,”lat”:-6.1297,”lng”:106.8384},{“id”:2,”cat”:”musik”,”e”:”🎵”,”n”:”We The Fest 2026″,”loc”:”GBK Senayan, Jakarta Selatan”,”d”:”Juli 2026″,”p”:”Rp 500.000″,”link”:”https://wethefest.com”,”btn”:”Info & Tiket”,”lat”:-6.2185,”lng”:106.8025},{“id”:3,”cat”:”musik”,”e”:”🎵”,”n”:”Synchronize Festival 2026″,”loc”:”JCC Gambir, Jakarta Pusat”,”d”:”Oktober 2026″,”p”:”Rp 400.000″,”link”:”https://synchronize.id”,”btn”:”Info & Tiket”,”lat”:-6.173,”lng”:106.8229},{“id”:4,”cat”:”musik”,”e”:”🎵”,”n”:”Djakarta Warehouse Project (DWP)”,”loc”:”JIEXPO Kemayoran, Jakarta Utara”,”d”:”Desember 2026″,”p”:”Rp 650.000″,”link”:”https://www.dwpfestival.com/”,”btn”:”Info & Tiket”,”lat”:-6.1565,”lng”:106.8512},{“id”:5,”cat”:”kuliner”,”e”:”🍜”,”n”:”SCBD Weekland Food & Fun”,”loc”:”Lapangan SCBD, Jakarta Selatan”,”d”:”Setiap Sabtu–Minggu · 10:00–22:00″,”p”:”Free Entry”,”link”:”https://www.instagram.com/scbdweekland/”,”btn”:”Lihat Info”,”lat”:-6.231,”lng”:106.8099},{“id”:6,”cat”:”kuliner”,”e”:”🍜”,”n”:”Jakarta Street Food Fiesta 2026″,”loc”:”Lapangan SCBD, Jakarta Selatan”,”d”:”Sabtu–Minggu · 10:00–22:00″,”p”:”Free Entry”,”link”:”https://www.instagram.com/scbdweekland/”,”btn”:”Lihat Info”,”lat”:-6.2297,”lng”:106.8082},{“id”:7,”cat”:”kuliner”,”e”:”🍜”,”n”:”Kemang Food & Artisan Market”,”loc”:”Jl. Kemang Raya, Jakarta Selatan”,”d”:”Setiap Sabtu–Minggu”,”p”:”Free Entry”,”link”:”https://www.instagram.com/explore/tags/kemangmarket/”,”btn”:”Lihat Info”,”lat”:-6.2617,”lng”:106.8152},{“id”:8,”cat”:”keluarga”,”e”:”👪”,”n”:”Dunia Fantasi (Dufan) Ancol”,”loc”:”Ancol, Jakarta Utara”,”d”:”Setiap Hari · 10:00–18:00″,”p”:”Rp 275.000″,”link”:”https://www.ancol.com/widget/regular-dunia-fantasi”,”btn”:”Beli Tiket”,”lat”:-6.1266,”lng”:106.8346},{“id”:9,”cat”:”keluarga”,”e”:”👪”,”n”:”Sea World Ancol”,”loc”:”Ancol, Jakarta Utara”,”d”:”Setiap Hari · 09:00–16:30″,”p”:”Rp 120.000″,”link”:”https://www.ancol.com/unit-rekreasi/sea-world-ancol–3″,”btn”:”Beli Tiket”,”lat”:-6.1282,”lng”:106.8362},{“id”:10,”cat”:”keluarga”,”e”:”👪”,”n”:”KidZania Jakarta”,”loc”:”Pacific Place Mall, SCBD”,”d”:”Setiap Hari (cek jadwal)”,”p”:”Rp 250.000″,”link”:”https://www.kidzania.co.id/”,”btn”:”Beli Tiket”,”lat”:-6.225,”lng”:106.809},{“id”:11,”cat”:”seni”,”e”:”🎨”,”n”:”Museum MACAN — Jakarta 2050″,”loc”:”AKR Tower, Jakarta Barat”,”d”:”Hingga 30 Juni · 10:00–20:00″,”p”:”Rp 50.000–75.000″,”link”:”https://www.museummacan.org/tickets”,”btn”:”Beli Tiket”,”lat”:-6.1944,”lng”:106.7795},{“id”:12,”cat”:”seni”,”e”:”🎨”,”n”:”Dia.lo.gue Artspace”,”loc”:”Kemang, Jakarta Selatan”,”d”:”Selasa–Minggu · 10:00–18:00″,”p”:”Free”,”link”:”https://www.dialogue-artspace.com/”,”btn”:”Kunjungi”,”lat”:-6.2622,”lng”:106.8155},{“id”:13,”cat”:”seni”,”e”:”🎨”,”n”:”Galeri Nasional Indonesia”,”loc”:”Gambir, Jakarta Pusat”,”d”:”Selasa–Minggu · 09:00–16:00″,”p”:”Free”,”link”:”https://galeri-nasional.or.id/”,”btn”:”Kunjungi”,”lat”:-6.1712,”lng”:106.827},{“id”:14,”cat”:”seni”,”e”:”🎨”,”n”:”Teater Koma: Suksesi”,”loc”:”Taman Ismail Marzuki, Cikini”,”d”:”Sabtu, 19:30 WIB”,”p”:”Rp 120.000″,”link”:”https://teaterkoma.loket.com/”,”btn”:”Beli Tiket”,”lat”:-6.1964,”lng”:106.8367},{“id”:15,”cat”:”olahraga”,”e”:”⚽”,”n”:”Jakarta Triathlon 2026″,”loc”:”Ancol Beach, Jakarta Utara”,”d”:”Minggu · 07:00 WIB”,”p”:”Rp 200.000″,”link”:”https://www.loket.com/search?q=jakarta+triathlon+2026″,”btn”:”Daftar Sekarang”,”lat”:-6.1297,”lng”:106.84},{“id”:16,”cat”:”olahraga”,”e”:”⚽”,”n”:”Car Free Day Monas & Sudirman”,”loc”:”Jl. Sudirman – Monas, Jakarta Pusat”,”d”:”Setiap Minggu · 06:00–11:00″,”p”:”Gratis”,”link”:”https://maps.app.goo.gl/Sudirman”,”btn”:”Lihat di Maps”,”lat”:-6.2095,”lng”:106.8121},{“id”:17,”cat”:”olahraga”,”e”:”⚽”,”n”:”Jakarta Marathon 2026″,”loc”:”Monas, Jakarta Pusat”,”d”:”Oktober 2026″,”p”:”Rp 350.000″,”link”:”https://www.jakartamarathon.com/”,”btn”:”Daftar Sekarang”,”lat”:-6.1764,”lng”:106.8262},{“id”:18,”cat”:”nightlife”,”e”:”🌙”,”n”:”Skye Bar & Restaurant”,”loc”:”BCA Tower Level 56, Sudirman”,”d”:”Setiap Hari · 17:00–01:00″,”p”:”Rp 150.000–200.000″,”link”:”https://www.skyejakarta.com/”,”btn”:”Reservasi”,”lat”:-6.2152,”lng”:106.8113},{“id”:19,”cat”:”nightlife”,”e”:”🌙”,”n”:”Immigrant Dining Room & Bar”,”loc”:”Kemang, Jakarta Selatan”,”d”:”Setiap Hari · 18:00–02:00″,”p”:”Rp 150.000″,”link”:”https://www.instagram.com/immigrantdiningroom/”,”btn”:”Reservasi”,”lat”:-6.2625,”lng”:106.814},{“id”:20,”cat”:”wisata”,”e”:”🏛️”,”n”:”Monumen Nasional (Monas)”,”loc”:”Gambir, Jakarta Pusat”,”d”:”Selasa–Minggu · 08:00–22:00″,”p”:”Rp 20.000″,”link”:”https://monasindonesia.id/”,”btn”:”Kunjungi”,”lat”:-6.1754,”lng”:106.8272},{“id”:21,”cat”:”wisata”,”e”:”🏛️”,”n”:”Kota Tua Jakarta”,”loc”:”Pinangsia, Jakarta Barat”,”d”:”Setiap Hari (outdoor gratis)”,”p”:”Gratis”,”link”:”https://kotatuajakarta.com/”,”btn”:”Lihat Info”,”lat”:-6.1375,”lng”:106.8135},{“id”:22,”cat”:”gratis”,”e”:”✨”,”n”:”Pasar Seni Ancol”,”loc”:”Ancol, Jakarta Utara”,”d”:”Setiap Hari · 06:00–18:00″,”p”:”Gratis (tiket masuk Ancol)”,”link”:”https://www.ancol.com/unit-rekreasi/pasar-seni-ancol–8″,”btn”:”Kunjungi”,”lat”:-6.1272,”lng”:106.8375},{“id”:23,”cat”:”gratis”,”e”:”✨”,”n”:”Taman Menteng”,”loc”:”Menteng, Jakarta Pusat”,”d”:”Setiap Hari · 06:00–20:00″,”p”:”Gratis”,”link”:”https://maps.app.goo.gl/TamanMenteng”,”btn”:”Lihat di Maps”,”lat”:-6.1967,”lng”:106.838},{“id”:24,”cat”:”gratis”,”e”:”✨”,”n”:”Jakarta Night Bazaar 2026″,”loc”:”GBK Senayan, Jakarta Selatan”,”d”:”Sabtu–Minggu · 14:00–23:00″,”p”:”Free Entry”,”link”:”https://scbd.com/menu/page/events”,”btn”:”Lihat Info”,”lat”:-6.2188,”lng”:106.8019}];var JFY_MARKERS=[];var JFY_MAP;var JFY_ACTIVE_CAT=”all”;function jfyPopup(e){var c=JFY_CAT_COLORS[e.cat]||”#005BAA”;var l=JFY_CAT_LABELS[e.cat]||e.cat;return “
“+”
“+e.e+” “+l+”
“+”
“+e.n+”
“+”
📍 “+e.loc+”
“+”
🕐 “+e.d+”
“+”
💰 “+e.p+”
“+”“+e.btn+” →“+”
“;}function jfyMarker(e){var c=JFY_CAT_COLORS[e.cat]||”#005BAA”;return L.divIcon({html:”
“+e.e+”
“,className:””,iconSize:[38,38],iconAnchor:[19,19],popupAnchor:[0,-22]});}function jfyFilter(cat){JFY_ACTIVE_CAT=cat;var shown=0;JFY_MARKERS.forEach(function(m,i){var e=JFY_EVENTS[i];if(cat===”all”||e.cat===cat){m.addTo(JFY_MAP);shown++;}else{JFY_MAP.removeLayer(m);}});document.getElementById(“jfy-mcount”).innerHTML=”📍 “+shown+” event ditampilkan”;var btns=document.querySelectorAll(“#jfy-mfilters button”);btns.forEach(function(b){b.style.background=”rgba(0,0,0,0.06)”;b.style.color=”#1a2340″;});var ab=document.getElementById(“jfymf-“+(cat===”all”?”all”:cat));if(ab){var c=cat===”all”?”var(–blue)”:JFY_CAT_COLORS[cat];ab.style.background=c;ab.style.color=”white”;}}JFY_MAP=L.map(“jfy-map”,{zoomControl:true,scrollWheelZoom:false}).setView([-6.2088,106.8456],12);L.tileLayer(“https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png”,{attribution:”© OpenStreetMap contributors © CARTO”,subdomains:”abcd”,maxZoom:19}).addTo(JFY_MAP);JFY_EVENTS.forEach(function(e){var m=L.marker([e.lat,e.lng],{icon:jfyMarker(e)}).bindPopup(jfyPopup(e),{maxWidth:300,className:”jfy-popup-wrap”});m.addTo(JFY_MAP);JFY_MARKERS.push(m);});JFY_MAP.on(“click”,function(){JFY_MAP.scrollWheelZoom.enable();});JFY_MAP.on(“mouseout”,function(){JFY_MAP.scrollWheelZoom.disable();});
🎟️ EARLY BIRD · 50 Member Pertama

Ancol Annual Pass
Gratis untuk
Jakarta Insider.

Nikmati akses tak terbatas ke seluruh area Ancol — pantai, Sea World, Pasar Seni, dan semua taman wisata — sepanjang tahun. Gratis dengan langganan Jakarta Insider.

Masuk Ancol unlimited selama 1 tahun
Pantai, Sea World, Pasar Seni, Ecopark
Digital card dikirim ke email dalam 24 jam
Tersisa 50 slot
🎟️
Nilai Paket
Rp 299rb
per bulan
Sudah termasuk:
+ Ancol Annual Pass
+ AI Planner unlimited
+ VIP event access
+ Concierge support
Jakarta Pass
Buka akses terbaik Jakarta — akses eksklusif, diskon, dan lebih banyak lagi
🌟
Explorer
Gratis / selamanya
Mulai menjelajahi Jakarta tanpa biaya apapun
  • Akses semua daftar event
  • AI Planner (3x per bulan)
  • Newsletter mingguan pilihan editor
  • Simpan favorit & bookmark
  • Notifikasi event baru di area kamu
👑
Jakarta Insider
Rp 299rb / bulan
Pengalaman VIP Jakarta yang tak tertandingi
  • Semua benefit Explorer+
  • Akses VIP event eksklusif
  • Concierge chat 24/7
  • Reservasi private dining
  • Ancol Annual Pass sudah termasuk
  • Undangan pengalaman invitation-only
Untuk Event Organizer
Jangkau Audiens Jakarta
yang Paling Aktif

Tampilkan event kamu di hadapan 300.000+ pencari pengalaman Jakarta setiap bulan. Gratis untuk listing, tools powerful untuk berkembang.

📊
Dashboard Analitik Real-Time
Pantau views, minat pengunjung, penjualan tiket, dan demografi audiens dalam satu dashboard.
🎯
Tools Promosi Bertarget
Jangkau audiens yang tepat sasaran — berdasarkan usia, lokasi, minat, dan perilaku pengguna.
🎟️
Ticketing Terintegrasi
Jual tiket langsung melalui JakartaForYou. Tanpa redirect, tanpa gesekan — lebih banyak konversi.
Performa Platform
300K+
Pengunjung Bulanan
2,800+
Event per Bulan
82%
Pengguna Kembali
1,200+
Venue Partner
“JakartaForYou membantu kami meningkatkan penjualan tiket hingga 3x lipat dalam satu bulan pertama.”
— Event Director, Java Jazz Festival
1,240+ Tempat Makan Terkurasi

Makan di Mana?
Jakarta Punya Jawabannya.

Dari warung tenda legendaris pinggir jalan hingga restoran rooftop bintang lima — kami kurasi yang terbaik untuk setiap selera, budget, dan suasana hati.

🍳 Sarapan & Brunch
🍜 Makanan Lokal
☕ Kafe & Kedai
🥩 Fine Dining
🌙 Late Night
🌱 Vegetarian
Pilihan Editor Minggu Ini
Restoran dan kafe yang sedang jadi pembicaraan Jakarta
Henshin Jakarta
Fine Dining
Rp 500rb/org
Masakan Fusion
Henshin Jakarta
📍 Westin Jakarta, Sudirman🕐 Setiap Hari · 18:00–23:00
Sate Khas Senayan
Wajib Coba
Rp 150rb/org
Masakan Indonesia
Sate Khas Senayan
📍 Jl. Kebon Sirih, Jakarta Pusat🕐 Setiap Hari · 10:00–22:00
Tanamera Coffee Roastery
Kafe Favorit
Rp 80rb/org
Specialty Coffee
Tanamera Coffee Roastery
📍 Kemang, Jakarta Selatan🕐 Setiap Hari · 07:00–22:00
Plataran Menteng
Otentik
Rp 300rb/org
Heritage Indonesian
Plataran Menteng
📍 Menteng, Jakarta Pusat🕐 Setiap Hari · 11:00–22:30
Makan Sesuai Suasana Hati
Apapun mood-mu, Jakarta selalu punya tempat yang pas
💕
Date Night
42 restoran romantis
👨‍👩‍👧
Family Brunch
68 tempat ramah keluarga
💻
Work-Friendly Café
85 kafe dengan WiFi kencang
🛵
Street Food Safari
200+ warung & gerobak
🌙
Late Night Eats
53 tempat buka sampai pagi
🎉
Special Occasion
29 restoran untuk rayakan momen
Kuliner Lokal Wajib Dicoba
Warung dan tempat makan yang sudah jadi bagian dari jiwa Jakarta
🍚
Nasi Uduk Kebon Kacang
📍 Kebon Kacang, Tanah Abang
Mulai Rp 20.000
Nasi uduk Betawi paling legendaris. Antre sejak 1970-an, rasanya tidak pernah berubah.
🥗
Gado-Gado Boplo
📍 Jl. Menteng Raya
Mulai Rp 35.000
Bumbu kacang dibuat setiap hari, tidak pakai pengawet. Pilihan food critic Jakarta.
🍲
Soto Betawi Haji Mamat
📍 Salemba, Jakarta Pusat
Mulai Rp 40.000
Kuah santan kaya, daging sapi empuk. Sudah 3 generasi melayani warga Jakarta.
🌽
Kerak Telor Monas
📍 Area Monas & Kota Tua
Mulai Rp 25.000
Jajanan ikonik Jakarta. Dimasak langsung di depanmu dengan tungku tradisional.
Daftar ke Jakarta Food Insider

Restoran Baru, Review Jujur,
Setiap Kamis Pagi

Kami kunjungi, kami cicipi, baru kami rekomendasikan.

2,847 Event Aktif di Jakarta

Jakarta Tak Pernah
Kehabisan Cerita.

Dari konser jazz tengah malam hingga pameran seni yang mengubah cara pandangmu — selalu ada sesuatu yang layak kamu hadiri hari ini.

🔥 Hari Ini
📅 Minggu Ini
📆 Bulan Ini
✨ Gratis
👨‍👩‍👧 Untuk Anak
💸 Under 100k
🔴 Sedang Berlangsung
Event yang bisa kamu hadiri hari ini dan besok
Java Jazz
🔴 LIVE Malam Ini
Rp 350rb
Musik & Konser
Java Jazz Festival Night 2
📍 Ancol Beach City🕐 Sabtu, 6 Juni · 19:00–23:30
Street Food
Trending
Free Entry
Festival Kuliner
Jakarta Street Food Fiesta 2026
📍 Lapangan SCBD🕐 Sabtu–Minggu · 10:00–22:00
MACAN
Pameran
Rp 75rb
Seni & Pameran
Museum MACAN: Jakarta 2050
📍 Museum MACAN, Jak-Bar🕐 Hingga 30 Juni · 10:00–20:00
Triathlon
Olahraga
Rp 200rb
Sports Event
Jakarta Triathlon 2026
📍 Ancol Beach🕐 Minggu · 07:00 WIB
Temukan Sesuai Minatmu
Pilih kategori dan temukan event yang paling cocok untukmu
🎵
Musik & Konser
342 event aktif
🍜
Kuliner & Restoran
1,240 tempat
👨‍👩‍👧
Keluarga & Anak
186 aktivitas
🎨
Seni & Budaya
94 pameran
Olahraga & Fitness
218 aktivitas
🌙
Nightlife
167 venue
Event Gratis
89 minggu ini
🏛️
Wisata & Atraksi
312 destinasi
Coming Up: Event Terbesar
Tandai kalendermu — event yang tidak boleh kamu lewatkan
WTF
Juli 2026
Rp 500rb
Musik Festival
We The Fest 2026
📍 GBK Senayan🕐 11–13 Juli 2026
Teater Koma
Teater
Rp 120rb
Pertunjukan
Teater Koma: Suksesi
📍 Taman Ismail Marzuki🕐 Sabtu, 19:30 WIB
Dufan
Keluarga
Rp 275rb
Taman Hiburan
Dunia Fantasi (Dufan)
📍 Ancol, Jakarta Utara🕐 Buka Setiap Hari
DWP
Desember
Rp 650rb
EDM Festival
Djakarta Warehouse Project
📍 JIEXPO Kemayoran🕐 Desember 2026
🎯

Tidak Tahu Mau Ngapain?

Gunakan AI Planner kami — jawab 4 pertanyaan, dapat itinerary Jakarta yang sempurna dalam hitungan detik.

48 Kawasan · Satu Kota

Jakarta Bukan Satu Kota —
Ia Ribuan Dunia.

Setiap kawasan punya karakternya sendiri, ritmenya sendiri, dan ceritanya sendiri. Inilah panduan paling lengkap untuk menjelajahi Jakarta seperti orang dalam.

Kawasan Pilihan Editor
Klik untuk jelajahi setiap sudut Jakarta
Ancol
🌊 Paling Populer
Ancol & Jakarta Utara
Kawasan reklamasi yang kini jadi pusat rekreasi dan hiburan terbesar Jakarta. Dari pantai pagi yang sunyi hingga konser malam yang menggelegar — Ancol punya semuanya.
🌊
Pantai & Wisata
🎪
Taman Hiburan
🎵
Konser & Event
🦈
Sea World
✦ Insider Tip
Datanglah sore hari — sunset di Dermaga Ancol adalah salah satu pemandangan paling memukau yang bisa kamu nikmati gratis di Jakarta.
Jelajahi Ancol →
SCBD
🏙️ Pusat Bisnis
SCBD & Sudirman
Jantung finansial Jakarta yang berdenyut 24 jam. Siang hari penuh eksekutif berjas, malam hari berubah jadi surga kuliner dan hiburan premium paling vibrant di kota ini.
🍽️
Fine Dining
🌙
Nightlife Premium
🛍️
Luxury Shopping
🏢
Rooftop Bars
✦ Insider Tip
Kunjungi SCBD Weekland setiap Sabtu–Minggu. Ratusan booth kuliner dan hiburan terbaik Jakarta gratis di sini.
Jelajahi SCBD →
Kemang
🌿 Bohemian Hub
Kemang
Kawasan paling bohemian di Jakarta. Dipenuhi galeri seni independen, kedai kopi third-wave, restoran internasional, dan komunitas kreatif yang selalu menghadirkan sesuatu yang baru.
Specialty Coffee
🎨
Galeri Seni
🥑
Brunch & Healthy
🌍
International Scene
✦ Insider Tip
Kemang paling hidup di pagi dan malam hari. Kunjungi Dia.lo.gue Artspace untuk seni kontemporer terbaik, lalu lanjut dinner di Immigrant.
Jelajahi Kemang →
Kota Tua
🏛️ Heritage District
Kota Tua & Glodok
Di sinilah Jakarta bermula. Bangunan kolonial Belanda abad ke-17 berdiri kokoh di antara warung Peranakan dan kedai kopi kuno — sebuah perjalanan waktu yang bisa kamu nikmati sambil berjalan kaki.
🏛️
Gedung Bersejarah
🚲
Onthel Tour
🎭
Museum & Galeri
🍜
Kuliner Peranakan
✦ Insider Tip
Datanglah Minggu pagi — jalanan ditutup untuk pejalan kaki, sewa sepeda onthel untuk keliling Fatahillah. Gratis dan sangat Instagramable.
Jelajahi Kota Tua →
Kawasan Lainnya
Setiap sudut Jakarta menyimpan kejutan
PIK
Modern
✨ PIK & Pantai Indah Kapuk
223 pengalaman · Shopping, Nightlife & Kuliner
Menteng
🌸 Menteng
145 pengalaman · Taman, Museum, Kafe Heritage
Cikini
🎭 Cikini & Gondangdia
98 pengalaman · Teater, Seni, Kuliner Autentik
Peta Interaktif Jakarta
Klik marker untuk lihat detail event, harga, dan cara beli tiket
📍 24 event ditampilkan
(function initMapPage(){ if(!window.L||!window.JFY_EVENTS){setTimeout(initMapPage,600);return;} var mp=L.map(‘jfy-mappage’,{zoomControl:true,scrollWheelZoom:true}).setView([-6.2088,106.8456],12); L.tileLayer(‘https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png’,{attribution:’© OpenStreetMap © CARTO’,subdomains:’abcd’,maxZoom:19}).addTo(mp); var mkrs=[]; JFY_EVENTS.forEach(function(e){ var c=JFY_CAT_COLORS[e.cat]||’#005BAA’; var icon=L.divIcon({html:’
‘+e.e+’
‘,className:”,iconSize:[38,38],iconAnchor:[19,19],popupAnchor:[0,-22]}); var l=JFY_CAT_LABELS[e.cat]||e.cat; var pop=’
‘+e.e+’ ‘+l+’
‘+e.n+’
📍 ‘+e.loc+’
🕐 ‘+e.d+’
💰 ‘+e.p+’
‘+e.btn+’ →
‘; var m=L.marker([e.lat,e.lng],{icon:icon}).bindPopup(pop,{maxWidth:300,className:’jfy-popup-wrap’}); m.addTo(mp);mkrs.push({m:m,cat:e.cat}); }); window.jfyFilterMap2=function(cat){ var shown=0; mkrs.forEach(function(o){if(cat===’all’||o.cat===cat){o.m.addTo(mp);shown++;}else{mp.removeLayer(o.m);}}); var el=document.getElementById(‘jfy-mappage-count’);if(el)el.innerHTML=’📍 ‘+shown+’ event ditampilkan’; document.querySelectorAll(‘#jfy-mappage-filters button’).forEach(function(b){b.style.background=’rgba(0,0,0,0.06)’;b.style.color=’#1a2340′;}); var cc=cat===’all’?’var(–blue)’:(JFY_CAT_COLORS[cat]||’var(–blue)’); var ab=document.querySelector(‘#jfy-mappage-filters button[onclick*=”‘+cat+'”]’); if(ab){ab.style.background=cc;ab.style.color=’white’;} }; })();
AI-Powered Jakarta Planner

Hari Sempurna di Jakarta,
Dirancang Khusus Untukmu.

Jawab 4 pertanyaan sederhana. AI kami merancang itinerary lengkap — tempat, rute, estimasi biaya, dan cara pesan tiket — semua dalam hitungan detik.

Langkah 1 dari 4
Siapa yang ikut?
🧍
Solo
Jelajah mandiri
👫
Berdua
Date / couple
👨‍👩‍👧
Keluarga
Ada anak-anak
👥
Geng
3+ orang
Langkah 2 dari 4
Berapa budget kamu?
🪙
Hemat
di bawah Rp 100rb
💰
Moderate
Rp 100rb – 500rb
💎
Premium
Rp 500rb ke atas
Langkah 3 dari 4
Punya waktu berapa lama?
2-3 Jam
Singkat & padat
🌤️
½ Hari
Pagi atau sore
☀️
Seharian
Pagi sampai malam
🗓️
Weekend
2 hari penuh
Langkah 4 dari 4
Apa yang paling kamu suka?
🎵 Musik & Konser
🍜 Kuliner & Food
🎨 Seni & Budaya
🌊 Alam & Outdoor
⚽ Olahraga
🛍️ Shopping
🌙 Nightlife
🏛️ Wisata Sejarah
☕ Café & Coffee
📸 Foto & Instagram
var _pd2={who:”,budget:”,time:”}; function jfyPickPlan(g,el,v){document.querySelectorAll(‘#jfy-‘+g+’ div[onclick]’).forEach(function(e){e.style.border=’2px solid rgba(0,91,170,0.15)’;e.style.background=’white’;});el.style.border=’2px solid var(–blue)’;el.style.background=’rgba(0,91,170,0.06)’;_pd2[g.replace(‘2’,”)]=v;} function jfyTogglePlan2(el){var on=el.style.border.includes(‘var(–blue)’);el.style.border=on?’2px solid rgba(0,91,170,0.2)’:’2px solid var(–blue)’;el.style.background=on?’white’:’rgba(0,91,170,0.08)’;} function jfySaveKey(){var key=document.getElementById(‘jfy-api-key-input’)?.value?.trim();if(!key)return;var btn=document.querySelector(‘#jfy-plan2-tl button’);if(btn){btn.textContent=’Menyimpan…’;btn.disabled=true;}fetch(‘/?rest_route=/jfy/v1/set-key’,{method:’POST’,headers:{‘Content-Type’:’application/json’},body:JSON.stringify({key:key})}).then(r=>r.json()).then(d=>{if(d.success){jfyGenPlan2();}else{alert(‘Gagal: ‘+(d.message||’Error’));}}).catch(e=>alert(e.message));} function jfyGenPlan2(){ var interests=[]; document.querySelectorAll(‘#jfy-int2 div[onclick]’).forEach(function(el){if(el.style.border.includes(‘var(–blue)’))interests.push(el.textContent.trim());}); var out=document.getElementById(‘jfy-plan2-out’); var tl=document.getElementById(‘jfy-plan2-tl’); var sub=document.getElementById(‘jfy-plan2-sub’); var cost=document.getElementById(‘jfy-plan2-cost’); out.style.display=’block’;out.scrollIntoView({behavior:’smooth’,block:’start’}); sub.textContent=’Claude AI sedang merancang itinerary… ✨’;cost.textContent=’…’; if(!document.getElementById(‘jfySpinStyle’)){var ss=document.createElement(‘style’);ss.id=’jfySpinStyle’;ss.textContent=’@keyframes jfySpin{to{transform:rotate(360deg)}}@keyframes jfyFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}’;document.head.appendChild(ss);} tl.innerHTML=’
Claude AI sedang merancang itinerary untukmu…
Memilih ‘+( _pd2.who||’tempat’)+’ terbaik di Jakarta · Budget ‘+(_pd2.budget||’moderate’)+(interests.length?’ · ‘+interests.slice(0,2).join(‘, ‘):”)+’
‘; fetch(‘/?rest_route=/jfy/v1/plan’,{method:’POST’,headers:{‘Content-Type’:’application/json’},body:JSON.stringify({who:_pd2.who||’seseorang’,budget:_pd2.budget||’moderate’,time:_pd2.time||’seharian’,interests:interests})}) .then(function(r){return r.json();}) .then(function(data){ if(data.code===’rate_limit’){ sub.textContent=’Batas harian tercapai’;cost.textContent=’-‘; tl.innerHTML=’
Batas Harian Tercapai
Kamu sudah menggunakan AI Planner 30x hari ini. Kembali lagi besok untuk itinerary baru!

Ingin akses lebih? Upgrade ke Explorer+ untuk pengalaman premium.
‘; return; } if(data.code===’rate_limit’){ var typing2=document.getElementById(‘jfy-typing’);if(typing2)typing2.remove(); btn.disabled=false;btn.textContent=’u2728 Generate’; var rb=document.createElement(‘div’);rb.className=’jfy-chat-bubble’; rb.innerHTML=’
u23F0
Batas Harian Tercapai
Kamu sudah pakai AI Planner 30x hari ini.
Kembali besok atau upgrade ke Explorer+!
‘; history.appendChild(rb);rb.scrollIntoView({behavior:”smooth”,block:”nearest”});return; } if(data.code===’no_key’){ sub.textContent=’Setup API Key diperlukan’;cost.textContent=’-‘; tl.innerHTML=’
🔑
Aktivasi AI Planner
Masukkan Anthropic API key kamu untuk mengaktifkan AI Planner. Key tersimpan aman di server WordPress.
Dapatkan API key gratis di console.anthropic.com
‘; return; } if(!data.success||!data.items||!data.items.length){ sub.textContent=’Terjadi kesalahan’;cost.textContent=’-‘; tl.innerHTML=’
⚠️
‘+(data.message||data.code||’Gagal generate. Coba lagi.’)+’
‘; return; } var items=data.items; var total=items.find(function(i){return i.time&&i.time.toUpperCase().includes(‘TOTAL’);}); sub.textContent=’Untuk ‘+(_pd2.who||’Kamu’)+’ · ‘+(_pd2.time||’Seharian’)+’ · Dibuat oleh Claude AI ✨’; cost.textContent=total&&total.price?total.price:’Lihat detail’; tl.innerHTML=items.map(function(it,i){ var isTotal=it.time&&it.time.toUpperCase().includes(‘TOTAL’); return ‘
‘ +’
‘ +’
‘+it.activity+’
‘ +’
‘+it.time+’
‘ +’
📍 ‘+it.location+’
‘ +(it.price?’
💰 ‘+it.price+’
‘:”) +(it.tip?’
💡 ‘+it.tip+’
‘:”) +’
‘; }).join(”); }) .catch(function(e){ tl.innerHTML=’
‘+e.message+’
‘; }); }
Jakarta, Indonesia

The Operating System of
Jakarta Experiences.

Kami percaya bahwa setiap hari di Jakarta bisa menjadi pengalaman yang luar biasa — jika kamu tahu di mana harus mencari.

Misi Kami

Menghubungkan Jakarta dengan Jiwa Jakarta-nya.

JakartaForYou.com lahir dari satu keyakinan sederhana: kota ini penuh dengan hal-hal menakjubkan yang menunggu untuk ditemukan. Dari konser jazz di Ancol hingga warung nasi uduk legendaris di gang sempit Menteng — Jakarta selalu punya cerita baru.

Kami mengumpulkan semua itu — event, kuliner, kawasan, dan pengalaman — dalam satu platform yang mudah dijelajahi. Ditambah AI yang membantu kamu merencanakan hari yang benar-benar personal.

2,847
Event Aktif
1,200+
Partner Venue
48
Area Jakarta
300K+
Pengunjung/Bulan
Apa yang Kami Lakukan

Lebih dari Sekadar Direktori Event

JakartaForYou adalah platform pengalaman kota yang terus berkembang — didukung kurasi manusia dan kecerdasan AI.

🗺️

Kurasi Terpercaya

Setiap event, restoran, dan destinasi dikurasi oleh tim kami yang terdiri dari Jakarta enthusiast, food critic, dan travel writer berpengalaman.

🤖

AI yang Personal

AI Experience Planner kami memahami konteks unikmu — siapa yang ikut, budget, dan minat — lalu merancang itinerary yang benar-benar relevan.

🤝

Didukung oleh Ancol Group — salah satu ekosistem rekreasi dan hiburan terbesar di Indonesia dengan lebih dari 50 tahun pengalaman melayani Jakarta.

Hubungi Kami

Ada pertanyaan?
Kami senang mendengarnya.

Baik kamu adalah event organizer yang ingin listing event, brand yang ingin berkolaborasi, atau pengguna yang punya pertanyaan — tim kami siap membantu.

✉️
Email
hello@jakartaforyou.com
📍
Lokasi
Jakarta, Indonesia
Jam Respons
Senin–Jumat, 09:00–18:00 WIB
Ikuti Kami

Kirim Pesan

Kami akan membalas dalam 1-2 hari kerja.

Pilih topik… Daftar Event / Venue Kemitraan & Kolaborasi Iklan & Promosi Pertanyaan Teknis Lainnya
🤝

List Event atau Venue Kamu

Jangkau 300,000+ pencari pengalaman Jakarta setiap bulan. Gratis untuk listing pertama.

📧 Hubungi Kami di hello@jakartaforyou.com
🔥 Pilihan Terbaik

Explorer+

Rp 99.000 / bulan
Yang kamu dapatkan
🔒 Pembayaran 100% aman. Kamu bisa batalkan langganan kapan saja dengan menghubungi hello@jakartaforyou.com
Cara Berlangganan
Langkah 1 — Transfer Pembayaran
Transfer ke salah satu rekening berikut:
BCA
0350226877
a.n. Syahmudrian Lubis
GoPay / OVO / DANA
0818121068
a.n. Syahmudrian Lubis
Penting: Transfer dengan jumlah TEPAT sesuai paket yang dipilih. Tambahkan kode unik 3 digit terakhir nomor HP kamu jika perlu.
Langkah 2 — Konfirmasi Pembayaran
Aktivasi dalam 1×24 jam setelah pembayaran terverifikasi • Pertanyaan? hello@jakartaforyou.com
.eo{max-width:1050px;margin:0 auto;padding:32px 16px} .eo-btn{border:none;border-radius:20px;padding:10px 22px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .2s} .eo-blue{background:var(–blue);color:white}.eo-orange{background:var(–orange);color:white}.eo-out{background:white;color:var(–blue);border:1.5px solid rgba(0,91,170,0.2)}.eo-sm{padding:7px 16px;font-size:13px} .eo-view{display:none}.eo-view.on{display:block} .eo-card{background:white;border-radius:20px;padding:28px;border:1px solid rgba(0,91,170,0.08);box-shadow:0 2px 12px rgba(0,91,170,0.06);max-width:520px;margin:32px auto} .eo-fi{width:100%;border:1.5px solid rgba(0,91,170,0.15);border-radius:12px;padding:11px 16px;font-size:14px;outline:none;font-family:inherit;color:var(–text);box-sizing:border-box;margin-bottom:14px} .eo-fi:focus{border-color:var(–blue)} .eo-label{font-size:13px;font-weight:600;color:var(–text);display:block;margin-bottom:5px} .eo-st{display:none;padding:12px;border-radius:12px;font-size:13px;font-weight:600;margin-top:12px;text-align:center} .eo-ev{border:1px solid rgba(0,91,170,0.1);border-radius:14px;padding:14px 18px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:white} .eo-bdg{padding:3px 10px;border-radius:10px;font-size:11px;font-weight:700} .eo-bdg-p{background:#fff3cd;color:#856404}.eo-bdg-a{background:#d1fae5;color:#065f46}
🎭 Event Organizer Portal

Tampilkan Event ke
300K+ Pengunjung Jakarta

Daftar gratis, kelola event, dan boost iklan untuk menjangkau audiens Jakarta yang paling aktif.

300K+
Pengunjung/Bulan
2,800+
Event Aktif
Gratis
Untuk Listing
📊

Dashboard Real-Time

Pantau views dan performa event dalam satu dashboard.

Boost Iklan

Tampil di homepage, newsletter, dan posisi teratas kategori.

🎟️

Listing Gratis

Daftarkan event pertama tanpa biaya. Upgrade kapan saja.

Daftar sebagai Event Organizer

Gratis selamanya.

Musik & KonserKulinerSeni & BudayaOlahragaKeluargaNightlifeWisataUmum

Sudah punya akun? Login

Login ke Portal EO

Selamat datang kembali!

Belum punya akun? Daftar gratis

👋 Selamat datang, !
Kelola event dan boost iklan kamu
0
Total Event
0
Aktif
0
Pending
0
Boost Orders

🎭 Event Saya

⚡ Boost Orders

Tambah Event Baru

Musik & KonserKulinerSeni & BudayaOlahragaKeluargaNightlifeWisataUmum

⚡ Boost Iklan Event

💡 Setelah transfer, kirim bukti ke hello@jakartaforyou.com — aktivasi 24 jam.
— Pilih event —
🚀
Basic Boost
Rp 99rb

Featured 3 hari homepage + Badge

TERPOPULER
🌟
Premium
Rp 299rb

Featured 7 hari + newsletter slot

👑
Pro Package
Rp 499rb

Semua + social media + AI Planner

var _eoTk=localStorage.getItem(‘jfy_eo_token’)||”; var _eoUs=JSON.parse(localStorage.getItem(‘jfy_eo_user’)||’null’); var _eoEvs=[]; var _eoSB=”; var _eoApi=’https://jakartaforyou.com/?rest_route=/jfy/v1/eo/’; function eoV(v){document.querySelectorAll(‘.eo-view’).forEach(e=>e.classList.remove(‘on’));document.getElementById(v).classList.add(‘on’);window.scrollTo({top:0,behavior:’smooth’});} function eoSt(id,m,t){var el=document.getElementById(id);if(!el)return;el.style.display=’block’;el.style.background=t===’ok’?’#d1fae5′:t===’w’?’#fff3cd’:’#fee2e2′;el.style.color=t===’ok’?’#065f46′:t===’w’?’#856404′:’#991b1b’;el.innerHTML=m;} function eoApi(r,m,b){var h={‘Content-Type’:’application/json’};if(_eoTk)h[‘X-JFY-Token’]=_eoTk;return fetch(_eoApi+r,{method:m||’GET’,headers:h,body:b?JSON.stringify(b):undefined}).then(r2=>r2.json());} function eoOut(){localStorage.removeItem(‘jfy_eo_token’);localStorage.removeItem(‘jfy_eo_user’);_eoTk=”;_eoUs=null;eoV(‘eo-home’);} function eoLogin(){var e=document.getElementById(‘l-e’).value.trim(),p=document.getElementById(‘l-p’).value;if(!e||!p){eoSt(‘l-st’,’Isi email dan password.’,’err’);return;}eoSt(‘l-st’,’Logging in…’,’w’);eoApi(‘login’,’POST’,{email:e,password:p}).then(d=>{if(d.success){_eoTk=d.token;_eoUs={name:d.name,company:d.company,email:d.email};localStorage.setItem(‘jfy_eo_token’,_eoTk);localStorage.setItem(‘jfy_eo_user’,JSON.stringify(_eoUs));eoDash();}else eoSt(‘l-st’,’❌ ‘+(d.message||’Login gagal.’),’err’);});} function eoReg(){var n=document.getElementById(‘r-n’).value.trim(),c=document.getElementById(‘r-c’).value.trim(),e=document.getElementById(‘r-e’).value.trim(),ph=document.getElementById(‘r-ph’).value.trim(),cat=document.getElementById(‘r-cat’).value,p=document.getElementById(‘r-pw’).value,p2=document.getElementById(‘r-pw2’).value;if(!n||!e||!p){eoSt(‘r-st’,’Field berbintang wajib diisi.’,’err’);return;}if(p!==p2){eoSt(‘r-st’,’Password tidak sama.’,’err’);return;}if(p.length{if(d.success){_eoTk=d.token;_eoUs={name:d.name,company:d.company,email:e};localStorage.setItem(‘jfy_eo_token’,_eoTk);localStorage.setItem(‘jfy_eo_user’,JSON.stringify(_eoUs));eoDash();}else eoSt(‘r-st’,’❌ ‘+(d.message||’Gagal.’),’err’);});} function eoDash(){eoApi(‘dashboard’).then(d=>{if(!d.success){eoOut();return;}_eoEvs=d.events||[];var org=d.organizer||{};document.getElementById(‘eo-co’).textContent=org.company||org.name||”;document.getElementById(‘de-t’).textContent=_eoEvs.length;document.getElementById(‘de-a’).textContent=_eoEvs.filter(e=>e.status===’active’).length;document.getElementById(‘de-p’).textContent=_eoEvs.filter(e=>e.status===’pending’).length;document.getElementById(‘de-b’).textContent=(d.boosts||[]).length;var el=document.getElementById(‘eo-evs’);el.innerHTML=_eoEvs.length===0?’
Belum ada event. Tambah pertama!
‘:_eoEvs.map(e=>’
‘+e.title+’
📍 ‘+e.location+’ · 📅 ‘+e.date+’
‘+(e.status===’active’?’Aktif’:’Pending’)+’
‘).join(”);var bl=document.getElementById(‘eo-bsts’);bl.innerHTML=(d.boosts||[]).length===0?’
Belum ada boost. Mulai!
‘:(d.boosts||[]).map(b=>’
‘+b.package_name+’ — ‘+b.event_title+’
Rp ‘+parseInt(b.price).toLocaleString(‘id-ID’)+’ · ‘+b.date_ordered.substring(0,10)+’
‘+(b.status===’paid’?’Lunas’:’Pending’)+’
‘).join(”);document.getElementById(‘b-es’).innerHTML=’– Pilih event –‘+_eoEvs.map(e=>”+e.title+”).join(”);eoV(‘eo-dash’);});} function eoAddEv(){var t=document.getElementById(‘e-ti’).value.trim(),de=document.getElementById(‘e-de’).value.trim(),dt=document.getElementById(‘e-dt’).value,tm=document.getElementById(‘e-tm’).value,lo=document.getElementById(‘e-lo’).value.trim(),ca=document.getElementById(‘e-ca’).value,pr=document.getElementById(‘e-pr’).value.trim(),ti=document.getElementById(‘e-ti2’).value.trim(),im=document.getElementById(‘e-im’).value.trim();if(!t||!dt||!lo){eoSt(‘e-st’,’Judul, tanggal, lokasi wajib.’,’err’);return;}eoSt(‘e-st’,’Menyimpan…’,’w’);eoApi(‘event’,’POST’,{title:t,description:de,date:dt,time:tm,location:lo,category:ca,price:pr||’Gratis’,ticket_url:ti,image_url:im}).then(d=>{if(d.success){eoSt(‘e-st’,’✓ Event berhasil! Direview 1-2 hari.’,’ok’);setTimeout(()=>eoDash(),2000);}else eoSt(‘e-st’,’❌ ‘+(d.message||’Gagal.’),’err’);});} function eoLdBoost(){document.getElementById(‘b-es’).innerHTML=’– Pilih event –‘+_eoEvs.map(e=>”+e.title+”).join(”);eoV(‘eo-boost’);} function eoQB(id,title){eoLdBoost();setTimeout(()=>{document.getElementById(‘b-es’).value=id+’|’+title;},100);} function eoSelB(pkg,el){document.querySelectorAll(‘#eo-boost .eo-card’).forEach(c=>{c.style.borderColor=’rgba(0,91,170,0.12)’;c.style.background=’white’;});el.style.borderColor=’var(–blue)’;el.style.background=’#e8f2fc’;_eoSB=pkg;var p={basic:’Rp 99.000′,premium:’Rp 299.000′,pro:’Rp 499.000′},n={basic:’Basic Boost’,premium:’Premium Boost’,pro:’Pro Package’};document.getElementById(‘b-si’).textContent=’✓ ‘+n[pkg]+’ — ‘+p[pkg];document.getElementById(‘b-pay’).style.display=’block’;} function eoOrdB(){var sel=document.getElementById(‘b-es’).value;if(!sel){eoSt(‘b-st’,’Pilih event.’,’err’);return;}if(!_eoSB){eoSt(‘b-st’,’Pilih paket.’,’err’);return;}var parts=sel.split(‘|’);eoSt(‘b-st’,’Memproses…’,’w’);eoApi(‘boost’,’POST’,{package:_eoSB,event_id:parts[0],event_title:parts.slice(1).join(‘|’)}).then(d=>{if(d.success){document.getElementById(‘b-ref’).textContent=’BOOST-‘+(d.order?.id||Date.now());eoSt(‘b-st’,’✓ Order berhasil! Transfer lalu kirim bukti.’,’ok’);}else eoSt(‘b-st’,’❌ ‘+(d.message||’Gagal.’),’err’);});} if(_eoTk){eoDash();}
function jfySubmitContact(){ var name=document.getElementById(‘jfyc-name’)?.value?.trim(); var email=document.getElementById(‘jfyc-email’)?.value?.trim(); var topic=document.getElementById(‘jfyc-topic’)?.value; var msg=document.getElementById(‘jfyc-msg’)?.value?.trim(); var status=document.getElementById(‘jfyc-status’); var btn=document.querySelector(‘#jfy-contact-form button’); if(!name||!email||!msg){ status.style.display=’block’;status.style.background=’#fff3cd’;status.style.color=’#856404′; status.textContent=’Mohon isi semua field yang diperlukan.’;return; } if(btn){btn.disabled=true;btn.textContent=’Mengirim…’;} fetch(‘/?rest_route=/jfy/v1/contact’,{ method:’POST’, headers:{‘Content-Type’:’application/json’}, body:JSON.stringify({name:name,email:email,topic:topic,message:msg}) }).then(function(r){return r.json();}) .then(function(data){ if(btn){btn.disabled=false;btn.textContent=’Kirim Pesan u2192′;} if(!data.success){ status.style.display=’block’;status.style.background=’#fee2e2′;status.style.color=’#991b1b’; status.textContent=’u274C ‘+(data.message||’Gagal mengirim. Coba lagi.’);return; } status.style.display=’block’;status.style.background=’#d1fae5′;status.style.color=’#065f46′; status.innerHTML=’u2713 Pesan terkirim! Kami akan membalas dalam 1-2 hari kerja ke ‘+email+’‘; document.getElementById(‘jfyc-name’).value=”; document.getElementById(‘jfyc-email’).value=”; document.getElementById(‘jfyc-topic’).value=”; document.getElementById(‘jfyc-msg’).value=”; }).catch(function(){ if(btn){btn.disabled=false;btn.textContent=’Kirim Pesan u2192′;} status.style.display=’block’;status.style.background=’#fee2e2′;status.style.color=’#991b1b’; status.textContent=’Koneksi gagal. Coba lagi.’; }); } var JFY_PLANS = { explorer_plus: { name: ‘Explorer+’, price: ‘Rp 99.000’, period: ‘bulan’, badge: ‘🔥 Paling Populer’, features: [‘AI Planner tanpa batas’,’Akses awal tiket eksklusif’,’Diskon 10–30% di 200+ partner venue’,’City Insider newsletter harian’,’Priority customer support’,’Event khusus member setiap bulan’] }, insider: { name: ‘Jakarta Insider’, price: ‘Rp 299.000’, period: ‘bulan’, badge: ‘👑 VIP’, features: [‘Semua benefit Explorer+’,’Akses VIP event eksklusif’,’Concierge chat 24/7′,’Reservasi private dining’,’Invitation-only experiences’] } }; function jfyOpenCheckout(plan) { var p = JFY_PLANS[plan]; if (!p) return; // Set plan info document.getElementById(‘jfy-co-title’).textContent = p.name; document.getElementById(‘jfy-co-price’).innerHTML = p.price + ‘ / ‘ + p.period + ‘‘; document.getElementById(‘jfy-co-badge’).innerHTML = p.badge; document.getElementById(‘jfy-co-amount’).placeholder = p.price; var featEl = document.getElementById(‘jfy-co-features’); featEl.innerHTML = p.features.map(function(f){ return ‘
‘+f+’
‘; }).join(”); window._checkoutPlan = plan; // Navigate to checkout page jfyNav(‘checkout’, null); } function jfyCopyBank(id, btn) { var text = document.getElementById(id)?.textContent?.trim(); if (!text) return; navigator.clipboard.writeText(text).then(function() { var orig = btn.textContent; btn.textContent = ‘✓ Disalin!’; btn.style.background = ‘#d1fae5’; btn.style.color = ‘#065f46’; setTimeout(function() { btn.textContent = orig; btn.style.background = ‘#e8f2fc’; btn.style.color = ‘var(–blue)’; }, 2000); }); } function jfySubmitCheckout() { var name = document.getElementById(‘jfy-co-name’)?.value?.trim(); var email = document.getElementById(‘jfy-co-email’)?.value?.trim(); var wa = document.getElementById(‘jfy-co-wa’)?.value?.trim(); var amount = document.getElementById(‘jfy-co-amount’)?.value?.trim(); var status = document.getElementById(‘jfy-co-status’); var plan = JFY_PLANS[window._checkoutPlan || ‘explorer_plus’]; if (!name || !email || !wa || !amount) { status.style.display = ‘block’; status.style.background = ‘#fff3cd’; status.style.color = ‘#856404’; status.textContent = ‘Mohon isi semua field yang diperlukan.’; return; } var subject = encodeURIComponent(‘[Jakarta Pass] Konfirmasi Pembayaran ‘ + (plan?.name || ”) + ‘ – ‘ + name); var body = encodeURIComponent(‘Halo JakartaForYou,nnSaya ingin mengkonfirmasi pembayaran Jakarta Pass:nnNama: ‘ + name + ‘nEmail: ‘ + email + ‘nWhatsApp: ‘ + wa + ‘nPaket: ‘ + (plan?.name || ”) + ‘nJumlah Transfer: ‘ + amount + ‘nnMohon diproses aktivasinya. Terima kasih!’); window.open(‘mailto:hello@jakartaforyou.com?subject=’ + subject + ‘&body=’ + body); status.style.display = ‘block’; status.style.background = ‘#d1fae5’; status.style.color = ‘#065f46’; status.innerHTML = ‘✓ Email konfirmasi dibuka! Tim kami akan mengaktifkan akun kamu dalam 1×24 jam setelah transfer terverifikasi.’; } function jfyOpenFreeSignup(){ var modal=document.getElementById(‘jfy-free-modal’); if(modal){modal.style.display=’flex’;} } function jfySubmitFree(){ var name=document.getElementById(‘jfy-free-name’)?.value?.trim(); var email=document.getElementById(‘jfy-free-email’)?.value?.trim(); var status=document.getElementById(‘jfy-free-status’); var btn=document.querySelector(‘#jfy-free-modal button’); if(!name||!email){status.style.display=’block’;status.style.background=’#fff3cd’;status.style.color=’#856404′;status.textContent=’Mohon isi nama dan email kamu.’;return;} if(btn){btn.disabled=true;btn.textContent=’Mendaftar…’;} fetch(‘/?rest_route=/jfy/v1/register’,{method:’POST’,headers:{‘Content-Type’:’application/json’},body:JSON.stringify({name:name,email:email,plan:’explorer_free’})}) .then(function(r){return r.json();}) .then(function(data){ if(btn){btn.disabled=false;btn.innerHTML=’✓ Daftar Sekarang — Gratis!’;} if(data.code===’duplicate’){status.style.display=’block’;status.style.background=’#fff3cd’;status.style.color=’#856404′;status.textContent=’Email ini sudah terdaftar.’;return;} if(!data.success){status.style.display=’block’;status.style.background=’#fee2e2′;status.style.color=’#991b1b’;status.textContent=’Gagal mendaftar. Coba lagi.’;return;} status.style.display=’block’;status.style.background=’#d1fae5′;status.style.color=’#065f46′; status.innerHTML=’✓ Selamat datang di JakartaForYou, ‘+name+’! Akun Explorer kamu sudah aktif.’; setTimeout(function(){document.getElementById(‘jfy-free-modal’).style.display=’none’;},3000); }).catch(function(){ if(btn){btn.disabled=false;btn.innerHTML=’✓ Daftar Sekarang — Gratis!’;} status.style.display=’block’;status.style.background=’#fee2e2′;status.style.color=’#991b1b’;status.textContent=’Koneksi gagal. Coba lagi.’; }); },3000); } // Close modal on backdrop click document.addEventListener(‘click’,function(e){ var modal=document.getElementById(‘jfy-free-modal’); if(modal&&e.target===modal)modal.style.display=’none’; }); function jfySubscribe(){ var email=document.getElementById(‘jfy-nl-email’)?.value?.trim(); var status=document.getElementById(‘jfy-nl-status’); var btn=document.getElementById(‘jfy-nl-btn’); if(!email||!email.includes(‘@’)){ status.style.display=’block’;status.style.background=’rgba(0,0,0,0.2)’;status.style.color=’white’; status.textContent=’Masukkan email yang valid.’;return; } if(btn){btn.disabled=true;btn.textContent=’Mendaftar…’;} fetch(‘/?rest_route=/jfy/v1/subscribe’,{method:’POST’,headers:{‘Content-Type’:’application/json’},body:JSON.stringify({email:email})}) .then(function(r){return r.json();}) .then(function(data){ if(btn){btn.disabled=false;btn.textContent=’Langganan Gratis u2192′;} if(data.code===’duplicate’){ status.style.display=’block’;status.style.background=’rgba(255,255,255,0.15)’;status.style.color=’white’; status.textContent=’u2713 Email kamu sudah terdaftar! Cek inbox setiap Kamis pagi.’;return; } if(!data.success){ status.style.display=’block’;status.style.background=’rgba(0,0,0,0.2)’;status.style.color=’white’; status.textContent=’Gagal mendaftar. Coba lagi.’;return; } document.getElementById(‘jfy-nl-email’).value=”; document.getElementById(‘jfy-nl-form’).style.display=’none’; status.style.display=’block’;status.style.background=’rgba(255,255,255,0.2)’;status.style.color=’white’; status.innerHTML=’uD83CuDF89 Berhasil! Kamu akan dapat newsletter Jakarta setiap Kamis pagi. Terima kasih!’; }).catch(function(){ if(btn){btn.disabled=false;btn.textContent=’Langganan Gratis u2192′;} status.style.display=’block’;status.style.background=’rgba(0,0,0,0.2)’;status.style.color=’white’; status.textContent=’Koneksi gagal. Coba lagi.’; }); }

Kategori

Pilihan terbaik untuk kamu

Bingung mau ke mana?
Tanya saya — event, kuliner, atau rencana jalan-jalan 👋