"use client"; import { useState } from "react"; import Link from "next/link"; export default function DokumentasiPage() { const [activeTab, setActiveTab] = useState<'anatomi' | 'roadmap' | 'mindmap'>('anatomi'); const [activeNode, setActiveNode] = useState(null); const roadmapData = [ { id: 'v1', time: 'Masa Lalu (Genesis)', title: 'Monolithic Era', desc: 'Sistem tunggal SSR yang berat dan rentan tumbang. Penuh ketergantungan pada satu database.' }, { id: 'v2', time: 'Q1 2026', title: 'Microservices Split', desc: 'Pemecahan paksa tulang punggung. IAM, XCU Ultra, dan Chat WebSocket berdiri di server masing-masing.' }, { id: 'v3', time: 'Q2 2026', title: 'Breakout Multiverse', desc: 'Kemampuan membelah dimensi kamar VC tanpa jeda loading, ditambah Quantum Record untuk privasi absolut.' }, { id: 'v4', time: 'Q3 2026', title: 'Omniversal & Temporal', desc: 'Ekspansi jaringan. 1 Aliran Video ke VPS dibelah menggunakan TEE-Muxer FFmpeg ke YouTube, TikTok, dan Twitter secara simultan. In-Memory Scheduler untuk chat.' }, { id: 'v5', time: 'Masa Depan (Quantum Leap)', title: 'AI Hologram Host', desc: 'Integrasi avatar 3D kecerdasan buatan sebagai moderator otomatis dalam kamar yang menganalisa sentimen emosi partisipan.' } ]; const anatomyData = [ { id: 'otak', icon: '🧠', name: 'Otak (Brain)', tech: 'PostgreSQL & Redis', detail: 'Matriks logika absolut. Mengingat miliaran token JWT dan mencatat setiap detak nadi transaksi penagihan tanpa kesalahan.' }, { id: 'jantung', icon: '🫀', name: 'Jantung (Heart)', tech: 'XCU eBPF Engine', detail: 'Mesin pemompa video. Menerima tetesan data dari peramban dan memancarkannya ke ribuan layar dengan latensi di bawah 50ms.' }, { id: 'syaraf', icon: '⚡', name: 'Syaraf (Nerves)', tech: 'Node.js WebSockets', detail: 'Jaringan listrik real-time. Membawa sinyal chat, peringatan gempa UI, dan komando Temporal Scheduler dalam kecepatan cahaya.' }, { id: 'nadi', icon: '🩸', name: 'Nadi (Pulse)', tech: 'Next.js API', detail: 'Sirkulasi darah. Meneruskan data autentikasi dari Otak ke Kulit dengan pengamanan SSL dan Enkripsi End-to-End.' }, { id: 'tulang', icon: '🦴', name: 'Tulang (Bones)', tech: 'Microservices', detail: 'Kerangka baja. Memastikan jika aplikasi Chat lumpuh, aplikasi Video Conference tetap hidup tanpa gangguan.' }, { id: 'kulit', icon: '🖐️', name: 'Kulit (Skin)', tech: 'Tailwind CSS', detail: 'Sensasi sentuhan antarmuka kelas dunia. Responsif, dinamis, dan diwarnai dengan gradien neon masa depan.' }, { id: 'ruh', icon: '🌌', name: 'Ruh (Soul)', tech: 'Zero-Downtime Philosophy', detail: 'Kesadaran platform bahwa server harus ringan. Mengorbankan browser klien untuk bekerja keras (Client-Side Rendering) demi stabilitas abadi.' } ]; return (
{/* HEADER */}

KITAB SUCI JUMPA.ID

Kembali ke Version Engine
{/* TAB NAVIGATION */}
{/* CONTENT AREA */}
{/* TAB 1: ANATOMI */} {activeTab === 'anatomi' && (

Struktur Kehidupan Platform

{anatomyData.map((item) => (
setActiveNode(item.id)} className={`p-4 rounded-xl border cursor-pointer transition-all duration-300 ${activeNode === item.id ? 'bg-gray-800 border-brand scale-105 z-10 relative shadow-2xl' : 'bg-transparent border-gray-800 hover:border-gray-600'}`} >
{item.icon}

{item.name}

{item.tech}

))}
{activeNode ? (
{anatomyData.find(a => a.id === activeNode)?.icon}

{anatomyData.find(a => a.id === activeNode)?.name}

{anatomyData.find(a => a.id === activeNode)?.tech}

{anatomyData.find(a => a.id === activeNode)?.detail}

) : (

Arahkan kursor ke salah satu elemen di sebelah kiri untuk melihat detail jiwa.

)}
)} {/* TAB 2: INTERACTIVE MINDMAP */} {activeTab === 'mindmap' && (
{/* Custom CSS Mindmap Tree */}
{/* Node Pusat */}
JUMPA.ID OMNIVERSE
{/* Garis Vertikal */}
{/* Cabang Horizontal */}
{/* 3 Pilar */}
{/* Pilar 1: IAM */}
IAM (Identity Access)
Master Owner Dashboard
Tenant Management
Ultra Billing Engine
{/* Pilar 2: VC */}
XCU Ultra Engine
Webinar / Podcast Mode
Breakout Multiverse
Quantum Local Record
{/* Pilar 3: CHAT */}
WebSocket Chat
Temporal Scheduler
TEE-Muxer Omniversal
End-to-End Encryption
)} {/* TAB 3: ULTRA ROADMAP */} {activeTab === 'roadmap' && (
{roadmapData.map((node, index) => (
{/* Lingkaran Garis Waktu */}
{node.time}

{node.title}

{node.desc}

))}
)}
); }