# ๐Ÿš€ REPLIT AI โ€” MASTER PROMPT: UANGSAKU LANDING PAGE ## Super-Complete Build Specification v2.0 Paste prompt ini secara keseluruhan ke Replit Agent. Tidak perlu modifikasi. --- ## ๐ŸŽฏ MISI UTAMA Bangun **landing page produksi** untuk aplikasi **UangSaku** menggunakan **Next.js 14 App Router + Tailwind CSS + Framer Motion**. Landing page ini harus: - Terasa seperti produk startup kelas dunia (sekelas Duolingo / Grab / GoTo) - Menggunakan animasi profesional berbasis scroll, parallax, dan micro-interaction - Memiliki background animated particles/mesh yang hidup dan elegan - Responsif penuh: mobile-first, lalu tablet, lalu desktop - Siap deploy ke Vercel dengan zero-config - Dioptimalkan untuk konversi (CRO) menggunakan psikologi "Double-Trigger Conversion" --- ## ๐Ÿ—๏ธ STACK & DEPENDENCIES ```bash # Buat project baru npx create-next-app@latest uangsaku-landing --typescript --tailwind --eslint --app --src-dir # Install semua dependencies npm install framer-motion @radix-ui/react-accordion lucide-react clsx tailwind-merge npm install @fontsource/plus-jakarta-sans @fontsource/space-grotesk npm install react-intersection-observer react-countup npm install tsparticles @tsparticles/react @tsparticles/slim npm install react-hot-toast sonner ``` **tailwind.config.ts** โ€” tambahkan: ```ts import type { Config } from 'tailwindcss' const config: Config = { content: ['./src/**/*.{js,ts,jsx,tsx,mdx}'], theme: { extend: { fontFamily: { display: ['"Space Grotesk"', 'sans-serif'], body: ['"Plus Jakarta Sans"', 'sans-serif'], }, colors: { brand: { 50: '#eef2ff', 100: '#e0e7ff', 200: '#c7d2fe', 400: '#818cf8', 500: '#6366f1', 600: '#4f46e5', 700: '#4338ca', 800: '#3730a3', 900: '#1e1b4b', }, emerald: { 400: '#34d399', 500: '#10b981', }, gold: { 400: '#fbbf24', 500: '#f59e0b', } }, animation: { 'float': 'float 6s ease-in-out infinite', 'float-delayed': 'float 6s ease-in-out 2s infinite', 'pulse-slow': 'pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite', 'gradient-x': 'gradient-x 8s ease infinite', 'slide-up': 'slideUp 0.6s ease forwards', 'coin-spin': 'coinSpin 3s ease-in-out infinite', 'piggy-bounce': 'piggyBounce 2s ease-in-out infinite', }, keyframes: { float: { '0%, 100%': { transform: 'translateY(0px)' }, '50%': { transform: 'translateY(-20px)' }, }, slideUp: { from: { opacity: '0', transform: 'translateY(40px)' }, to: { opacity: '1', transform: 'translateY(0)' }, }, 'gradient-x': { '0%, 100%': { backgroundPosition: '0% 50%' }, '50%': { backgroundPosition: '100% 50%' }, }, coinSpin: { '0%, 100%': { transform: 'rotateY(0deg)' }, '50%': { transform: 'rotateY(180deg)' }, }, piggyBounce: { '0%, 100%': { transform: 'translateY(0) rotate(-3deg)' }, '50%': { transform: 'translateY(-12px) rotate(3deg)' }, }, }, }, }, plugins: [], } export default config ``` --- ## ๐Ÿ“ STRUKTUR FILE LENGKAP ``` src/ โ”œโ”€โ”€ app/ โ”‚ โ”œโ”€โ”€ layout.tsx โ† Root layout + metadata SEO โ”‚ โ”œโ”€โ”€ page.tsx โ† Main page (compose semua section) โ”‚ โ””โ”€โ”€ globals.css โ† Global styles + CSS custom props โ”œโ”€โ”€ components/ โ”‚ โ”œโ”€โ”€ ui/ โ”‚ โ”‚ โ”œโ”€โ”€ Button.tsx โ† Reusable CTA button โ”‚ โ”‚ โ”œโ”€โ”€ Badge.tsx โ† Label/badge komponen โ”‚ โ”‚ โ””โ”€โ”€ AnimatedCounter.tsx โ† Number counter animasi โ”‚ โ””โ”€โ”€ landing/ โ”‚ โ”œโ”€โ”€ Navbar.tsx โ† Sticky nav + scroll behavior โ”‚ โ”œโ”€โ”€ HeroSection.tsx โ† Hero + phone mockup + particles โ”‚ โ”œโ”€โ”€ StatsBar.tsx โ† Social proof angka (keluarga, misi, dll) โ”‚ โ”œโ”€โ”€ PainSection.tsx โ† Pain point cards โ”‚ โ”œโ”€โ”€ MisiPintarSection.tsx โ† Mission cards + scroll reveal โ”‚ โ”œโ”€โ”€ TabunganSection.tsx โ† ๐Ÿ†• Tabungan Virtual Module โ”‚ โ”œโ”€โ”€ HowItWorks.tsx โ† 3-step process visual โ”‚ โ”œโ”€โ”€ TestimoniSection.tsx โ† Social proof testimonials โ”‚ โ”œโ”€โ”€ FaqSection.tsx โ† Accordion FAQ โ”‚ โ”œโ”€โ”€ PricingBanner.tsx โ† Urgency CTA banner โ”‚ โ””โ”€โ”€ Footer.tsx โ† Footer โ”œโ”€โ”€ hooks/ โ”‚ โ”œโ”€โ”€ useScrollReveal.ts โ† Intersection observer hook โ”‚ โ””โ”€โ”€ useParticles.ts โ† Particles config hook โ””โ”€โ”€ lib/ โ””โ”€โ”€ utils.ts โ† cn() helper ``` --- ## ๐ŸŽจ DESIGN SYSTEM โ€” TOKEN WAJIB ### Palette ```css /* globals.css */ :root { --brand-primary: #4f46e5; /* Indigo 600 */ --brand-dark: #1e1b4b; /* Indigo 900 */ --brand-light: #eef2ff; /* Indigo 50 */ --accent-green: #10b981; /* Emerald 500 */ --accent-gold: #f59e0b; /* Amber 500 */ --text-primary: #0f172a; --text-muted: #64748b; --surface: #ffffff; --surface-secondary: #f8fafc; } ``` ### Typography Scale ``` Display XL: Space Grotesk, 72px, weight 700, line-height 1.1 Display L: Space Grotesk, 48px, weight 700 Heading: Space Grotesk, 32px, weight 600 Subhead: Plus Jakarta Sans, 20px, weight 500 Body: Plus Jakarta Sans, 16px, weight 400, line-height 1.7 Caption: Plus Jakarta Sans, 13px, weight 400 Micro: Plus Jakarta Sans, 11px, weight 500, letter-spacing 0.06em, UPPERCASE ``` --- ## ๐ŸŒŒ BACKGROUND ANIMATION SYSTEM ### Animated Particle Background (tsParticles) Buat file `src/components/ui/ParticleBackground.tsx`: ```tsx 'use client' import { useCallback } from 'react' import Particles from '@tsparticles/react' import { loadSlim } from '@tsparticles/slim' import type { Engine } from 'tsparticles-engine' export default function ParticleBackground() { const particlesInit = useCallback(async (engine: Engine) => { await loadSlim(engine) }, []) return ( ) } ``` ### Animated Mesh Gradient Background Buat file `src/components/ui/MeshBackground.tsx`: ```tsx export default function MeshBackground() { return (
{/* Orbs animasi */}
{/* Grid dots overlay */}
) } ``` --- ## ๐Ÿ“ฑ SECTION 1: HERO SECTION File: `src/components/landing/HeroSection.tsx` **Visual Layout:** ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ [Particles background animasi] โ”‚ โ”‚ [Mesh orbs animasi] โ”‚ โ”‚ โ”‚ โ”‚ โญ Badge: Literasi Keuangan #1 โ”‚ โ”‚ โ”‚ โ”‚ HEADLINE 72px: โ”‚ โ”‚ "Ubah Kuota [marah-marah] โ”‚ โ”‚ Jadi Kuota [Senyuman] โœจ" โ”‚ โ”‚ (gradient animated text) โ”‚ โ”‚ โ”‚ โ”‚ Sub: UangSaku mengubah PR, baca buku... โ”‚ โ”‚ โ”‚ โ”‚ [๐Ÿš€ Ambil Gratis Sekarang] [โ–ถ Lihat Demo] โ”‚ โ”‚ 100% gratis ยท 1 menit daftar โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ๐Ÿ“ฑ Phone mockup animasi (float) โ”‚ โ”‚ โ”‚ โ”‚ โ€ข Wallet card (Rp 37.500) โ”‚ โ”‚ โ”‚ โ”‚ โ€ข Misi aktif (PR Matematika) โ”‚ โ”‚ โ”‚ โ”‚ โ€ข Progress ring animasi โ”‚ โ”‚ โ”‚ โ”‚ โ€ข Notification badge animasi โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` **Kode requirements:** - Headline menggunakan `text-transparent bg-clip-text` dengan `animate-gradient-x` - Phone mockup menggunakan `animate-float` (naik turun halus) - Framer Motion `initial={{ opacity:0, y:60 }}` โ†’ `animate={{ opacity:1, y:0 }}` dengan staggerChildren - CTA button: gradient indigo + hover scale + shimmer effect - Trust badges di bawah CTA: โœ“ Gratis ยท โœ“ No Kartu Kredit ยท โœ“ 1 Menit Setup --- ## ๐Ÿ“Š SECTION 2: STATS BAR (Social Proof Angka) File: `src/components/landing/StatsBar.tsx` **Layout:** ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ 47.200+ โ”‚ โœ… 1.2 Juta โ”‚ โญ 4.9/5.0 โ”‚ ๐Ÿ† #1 App โ”‚ โ”‚ Keluarga โ”‚ Misi Selesaiโ”‚ Rating App โ”‚ Literasi ID โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` - Gunakan `react-countup` dengan `IntersectionObserver` โ€” angka mulai count UP saat scroll masuk viewport - Background: glassmorphism card (bg-white/80 backdrop-blur) - Border bottom subtle separator --- ## ๐Ÿ˜ค SECTION 3: PAIN POINT SECTION File: `src/components/landing/PainSection.tsx` **Layout:** ``` "Mengapa Pola Lama Tidak Lagi Bekerja?" โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ“ฑ Kecanduan โ”‚ โ”‚ ๐Ÿ˜ก Drama Tiap Malam โ”‚ โ”‚ ๐Ÿคฒ Mental Pamrih โ”‚ โ”‚ Screen-Time โ”‚ โ”‚ Demi PR โ”‚ โ”‚ Menengadah Tangan โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ [pain illustration] โ”‚ โ”‚ [pain illustration] โ”‚ โ”‚ [pain illustration] โ”‚ โ”‚ desc text... โ”‚ โ”‚ desc text... โ”‚ โ”‚ desc text... โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` - **Scroll reveal stagger**: kartu muncul 1 per 1 dari bawah - Background section: `bg-slate-950` (gelap, kontras tinggi) - Warna teks: putih + merah/oranye untuk emphasis pain - Icon: Lucide React icons ukuran 48px --- ## ๐ŸŽฎ SECTION 4: MISI PINTAR (Core Feature) File: `src/components/landing/MisiPintarSection.tsx` **Layout:** ``` "Saat Belajar Terasa Seru Seperti Naik Level!" [Tab Filter: Semua | Akademik | Rumah | Karakter | Digital] โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ“š PR Sekolah โ”‚ โ”‚ ๐Ÿ“– Baca Buku โ”‚ โ”‚ [Auto-Fill] โ”‚ โ”‚ [Auto-Fill] โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Syarat: Selesai โ”‚ โ”‚ Syarat: Buat โ”‚ โ”‚ sebelum jam 8 โ”‚ โ”‚ rangkuman โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”ค Rp 5.000 โ”œ โ”‚ โ”‚ โ”ค Rp 7.500 โ”œ โ”‚ โ”‚ [Pakai Template]โ”‚ โ”‚ [Pakai Template]โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐ŸŒ Bahasa Asing โ”‚ โ”‚ ๐Ÿ’ป Skill Komp. โ”‚ โ”‚ [Auto-Fill] โ”‚ โ”‚ [Auto-Fill] โ”‚ โ”‚ ... โ”‚ โ”‚ ... โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ๐Ÿ”’ Fitur Bukti Kerja Anti-Cheat: Anak WAJIB upload foto/teks bukti ``` **Animasi requirements:** - Cards: Framer Motion `whileHover={{ scale: 1.03, y: -4 }}` dengan spring physics - **Scroll reveal**: `useInView` โ†’ setiap card slide up dengan delay 0.1s stagger - Tab filter: `AnimatePresence` untuk smooth masuk/keluar cards - Badge "Auto-Fill": shimmer animation (pseudo-element bergerak kiri ke kanan) --- ## ๐Ÿท SECTION 5: TABUNGAN VIRTUAL (MODUL BARU ๐Ÿ†•) File: `src/components/landing/TabunganSection.tsx` **Fitur Tabungan Virtual yang harus diimplementasi di landing page:** ### A. Copywriting Tabungan - **Eyebrow:** "Modul Tabungan Virtual" - **Headline:** "Anak Punya Rekening Impian Sendiri โ€” Untuk Pertama Kalinya!" - **Sub:** Bukan sekadar celengan. UangSaku hadir dengan sistem kantong tabungan bertujuan yang mengajarkan anak merencanakan, menunda kesenangan, dan merayakan pencapaian finansial nyata. ### B. Fitur Tabungan yang Ditampilkan (card feature grid): ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐ŸŽฏ Kantong Impian โ”‚ โ”‚ ๐Ÿ“ˆ Bunga Reward Orang Tua โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Anak membuat kantong โ”‚ โ”‚ Orang tua bisa memberi โ”‚ โ”‚ bertujuan: "Sepatu Nike" โ”‚ โ”‚ "bunga" 5-20% sebagai โ”‚ โ”‚ "Game Switch" "Buku" โ”‚ โ”‚ motivasi menabung lebih โ”‚ โ”‚ Lengkap dg progress bar โ”‚ โ”‚ lama. Diajarkan konsep โ”‚ โ”‚ visual menuju target โ”‚ โ”‚ compound interest dini. โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ”’ Kunci Tabungan โ”‚ โ”‚ ๐ŸŽŠ Momen Perayaan โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Orang tua bisa kunci โ”‚ โ”‚ Saat target tercapai, โ”‚ โ”‚ kantong sehingga tidak โ”‚ โ”‚ app menampilkan animasi โ”‚ โ”‚ bisa dicairkan sebelum โ”‚ โ”‚ konfeti & notif ke semua โ”‚ โ”‚ tanggal/target tercapai. โ”‚ โ”‚ anggota keluarga. Momen โ”‚ โ”‚ Mengajarkan komitmen. โ”‚ โ”‚ bangga bersama. โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ’ฐ Auto-Setor dari Misi โ”‚ โ”‚ ๐Ÿ“Š Laporan Progres โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Set % otomatis dari โ”‚ โ”‚ Grafik pertumbuhan saldo โ”‚ โ”‚ setiap reward misi โ”‚ โ”‚ tabungan per minggu. โ”‚ โ”‚ langsung masuk kantong โ”‚ โ”‚ Anak lihat sendiri uang โ”‚ โ”‚ tabungan. Disiplin โ”‚ โ”‚ mereka "tumbuh" dari โ”‚ โ”‚ finansial otomatis. โ”‚ โ”‚ kerja keras. โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### C. Visual Interaktif Tabungan (Mock UI) Tampilkan mockup "Kantong Impian" yang bisa diklik/hover: ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐ŸŽฏ Sepatu Nike Air Max โ”‚ โ”‚ Target: Rp 450.000 โ”‚ โ”‚ โ”‚ โ”‚ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘ 68% โ”‚ โ”‚ Rp 306.000 dari Rp 450.000 โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ”’ Dikunci ยท Cair: 17 Agustus โ”‚ โ”‚ ๐Ÿ“ˆ Bunga Ayah: +5%/bulan โ”‚ โ”‚ โฐ Perkiraan tercapai: 3 minggu โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` Animasi: - Progress bar animated fill saat scroll masuk viewport - Angka counter animasi - Floating coin emoji turun masuk ke kantong (CSS keyframe) - Piggy bank icon `animate-piggy-bounce` ### D. Promo Tabungan - **Badge:** "BARU โ€” Fitur Tabungan Virtual" - **CTA:** "Buat Kantong Impian Pertama Anak Anda" - **Sub-CTA:** Sepenuhnya gratis ยท Tidak ada biaya administrasi ยท Tidak terhubung bank --- ## โš™๏ธ SECTION 6: HOW IT WORKS File: `src/components/landing/HowItWorks.tsx` **3 Langkah Visual (horizontal timeline):** ``` โ‘  Buat Ruang Keluarga โ†’ โ‘ก Buat Misi & Kantong โ†’ โ‘ข Anak Klaim & Belajar (30 detik setup) (template siap pakai) (mandiri & termotivasi) ``` - Nomor besar (01, 02, 03) dengan gradient brand - Line connector antara steps dengan animated dash stroke - Framer Motion stagger reveal --- ## โญ SECTION 7: TESTIMONI / SOCIAL PROOF File: `src/components/landing/TestimoniSection.tsx` **Layout โ€” Masonry grid atau carousel:** ``` "Dipercaya Ribuan Keluarga Indonesia" โ˜…โ˜…โ˜…โ˜…โ˜… 4.9/5 dari 3.200+ ulasan โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โญโญโญโญโญ โ”‚ โ”‚ โญโญโญโญโญ โ”‚ โ”‚ โญโญโญโญโญ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ "Anak saya yg โ”‚ โ”‚ "Awalnya skeptis โ”‚ โ”‚ "PR selesai โ”‚ โ”‚ tadinya males โ”‚ โ”‚ soal virtual โ”‚ โ”‚ sendiri tanpa โ”‚ โ”‚ belajar, skrg โ”‚ โ”‚ money, tp liat โ”‚ โ”‚ diingatkan. โ”‚ โ”‚ malah nagih โ”‚ โ”‚ Alisha nabung โ”‚ โ”‚ Bahkan minta โ”‚ โ”‚ misi baru tiap โ”‚ โ”‚ Rp 300rb utk โ”‚ โ”‚ tambah misi! โ”‚ โ”‚ hari!" โ”‚ โ”‚ beli buku sndri โ”‚ โ”‚ Luar biasa." โ”‚ โ”‚ โ”‚ โ”‚ tanpa minta2." โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ‘ค Bunda Rina โ”‚ โ”‚ ๐Ÿ‘ค Ayah Dimas โ”‚ โ”‚ ๐Ÿ‘ค Mama Sari โ”‚ โ”‚ Jakarta โ”‚ โ”‚ Surabaya โ”‚ โ”‚ Bandung โ”‚ โ”‚ Ibu dari Rafi โ”‚ โ”‚ Ayah dari Alishaโ”‚ โ”‚ Ibu dari Naufal โ”‚ โ”‚ (9 tahun) โ”‚ โ”‚ (11 tahun) โ”‚ โ”‚ (8 tahun) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โญโญโญโญโญ โ”‚ โ”‚ โญโญโญโญโญ โ”‚ โ”‚ โญโญโญโญโญ โ”‚ โ”‚ "Fitur tabungan โ”‚ โ”‚ "Drama malam โ”‚ โ”‚ "Sekarang anak โ”‚ โ”‚ impiannya keren โ”‚ โ”‚ sudah hilang. โ”‚ โ”‚ malah ngajak โ”‚ โ”‚ banget. Anak โ”‚ โ”‚ Ganti jadi โ”‚ โ”‚ adiknya buat โ”‚ โ”‚ ngerti sendiri โ”‚ โ”‚ kompetisi siapa โ”‚ โ”‚ misi bareng. โ”‚ โ”‚ arti menabung โ”‚ โ”‚ duluan klaim โ”‚ โ”‚ Bonding keluargaโ”‚ โ”‚ untuk impiannya"โ”‚ โ”‚ misi!" โ”‚ โ”‚ meningkat." โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ‘ค Bunda Fitri โ”‚ โ”‚ ๐Ÿ‘ค Papah Rizky โ”‚ โ”‚ ๐Ÿ‘ค Bunda Dewi โ”‚ โ”‚ Yogyakarta โ”‚ โ”‚ Medan โ”‚ โ”‚ Semarang โ”‚ โ”‚ Ibu dari Zahra โ”‚ โ”‚ Ayah dari Faiz โ”‚ โ”‚ Ibu dari Azkia โ”‚ โ”‚ (10 tahun) โ”‚ โ”‚ (7 & 9 tahun) โ”‚ โ”‚ (8 & 12 tahun) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` **Implementasi:** - Masonry grid: `columns-1 sm:columns-2 lg:columns-3 gap-4` - Setiap card: `break-inside-avoid` + glassmorphism styling - Avatar: initials circle dengan gradient brand unik per user - Auto-play marquee/carousel untuk mobile (loop infinite) - "Verified Purchase" badge hijau kecil di setiap card --- ## โ“ SECTION 8: FAQ ACCORDION File: `src/components/landing/FaqSection.tsx` Gunakan `@radix-ui/react-accordion` dengan animasi smooth. **Pertanyaan:** 1. Apakah ini tidak membuat anak bermental matre/pamrih? 2. Bagaimana jika saldo virtual dihabiskan untuk hal tidak berguna? 3. Apakah saldo virtual bisa dicairkan ke uang sungguhan? 4. Berapa usia anak yang cocok menggunakan UangSaku? 5. Apakah data keluarga aman dan privat? 6. Berapa lama fase gratis ini berlaku? 7. Apa bedanya fitur Tabungan Virtual dengan celengan biasa? 8. Apakah bisa digunakan untuk lebih dari satu anak? **Jawaban untuk poin 7 (tabungan):** "Celengan biasa tidak punya tujuan, tidak ada bunga reward, tidak ada kunci komitmen, dan tidak ada momen perayaan. Kantong Impian UangSaku mengajarkan goal-based saving โ€” anak menetapkan target spesifik, melihat progresnya setiap hari, mendapatkan bunga dari orang tua, dan merayakan pencapaian bersama keluarga. Ini adalah simulasi rekening tabungan nyata dalam lingkungan yang aman dan terkontrol." --- ## ๐Ÿ”ฅ SECTION 9: PRICING / CTA BANNER File: `src/components/landing/PricingBanner.tsx` **Layout:** ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐ŸŽŠ GRATIS SELAMANYA UNTUK 1 JUTA KELUARGA PERTAMA โ”‚ โ”‚ โ”‚ โ”‚ Paket Premium (nilai Rp 29.000/bln) โ€” GRATIS selama promosi โ”‚ โ”‚ โ”‚ โ”‚ โœ… Ruang Keluarga tak terbatas โ”‚ โ”‚ โœ… Misi Pintar + Template lengkap โ”‚ โ”‚ โœ… ๐Ÿ†• Kantong Tabungan Virtual (baru!) โ”‚ โ”‚ โœ… Sistem Pajak Jajan โ”‚ โ”‚ โœ… Pahlawan Rumah โ”‚ โ”‚ โœ… Fitur Bukti Kerja Anti-Cheat โ”‚ โ”‚ โœ… Laporan Perkembangan Anak โ”‚ โ”‚ โ”‚ โ”‚ [๐Ÿ”ฅ Buat Ruang Keluarga Sekarang โ€” GRATIS] โ”‚ โ”‚ โ”‚ โ”‚ โฐ Slot tersisa: [counter animasi] dari 1.000.000 โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` **Animasi:** - Background: animated gradient merah-oranye-kuning (urgency) - Counter slot tersisa: `react-countup` atau localStorage-based random decrement - CTA button: pulse animation + "shimmer sweep" effect - Confetti burst saat hover button (menggunakan `canvas-confetti`) --- ## ๐Ÿ”ฝ FOOTER File: `src/components/landing/Footer.tsx` ``` UangSaku Logo "Mendidik generasi melek keuangan sejak dini." [Fitur] [Perusahaan] [Legal] Misi Pintar Tentang Kami Privasi Tabungan Blog Syarat & Ketentuan Pahlawan Rumah Karir Cookie Sistem Pajak Kontak ๐Ÿ“ฑ App Store | ๐Ÿ“ฑ Google Play (coming soon badge) ยฉ 2025 UangSaku. Dibuat dengan โค๏ธ untuk keluarga Indonesia. ``` --- ## ๐ŸŽญ ANIMASI SISTEM โ€” IMPLEMENTASI DETAIL ### Scroll Reveal Hook ```ts // src/hooks/useScrollReveal.ts import { useInView } from 'react-intersection-observer' export function useScrollReveal(threshold = 0.15) { const { ref, inView } = useInView({ threshold, triggerOnce: true, }) return { ref, inView } } ``` ### Framer Motion Variants (reusable) ```ts // src/lib/animations.ts export const fadeUpVariants = { hidden: { opacity: 0, y: 40 }, visible: (i: number = 0) => ({ opacity: 1, y: 0, transition: { delay: i * 0.1, duration: 0.6, ease: [0.22, 1, 0.36, 1] } }) } export const staggerContainer = { hidden: {}, visible: { transition: { staggerChildren: 0.08 } } } export const scaleInVariants = { hidden: { opacity: 0, scale: 0.85 }, visible: { opacity: 1, scale: 1, transition: { duration: 0.5, ease: [0.22, 1, 0.36, 1] } } } export const slideLeftVariants = { hidden: { opacity: 0, x: -60 }, visible: { opacity: 1, x: 0, transition: { duration: 0.7, ease: [0.22, 1, 0.36, 1] } } } ``` ### Penggunaan di setiap Section: ```tsx import { motion } from 'framer-motion' import { useScrollReveal } from '@/hooks/useScrollReveal' import { fadeUpVariants, staggerContainer } from '@/lib/animations' export default function MisiPintarSection() { const { ref, inView } = useScrollReveal() return ( {tasks.map((task, i) => ( {/* card content */} ))} ) } ``` ### Progress Bar Animasi (Tabungan) ```tsx // Animated progress bar saat masuk viewport ``` --- ## ๐Ÿ“ฑ MOBILE-FIRST REQUIREMENTS ``` Mobile (< 640px): 1 kolom, font scale 80%, padding 16px, touch-friendly 48px tap targets Tablet (640-1024): 2 kolom grid, font scale 90% Desktop (> 1024px): 3-4 kolom grid, full type scale ``` **Mobile-specific:** - Navbar: hamburger menu dengan slide-in drawer (Framer Motion) - Hero: phone mockup di bawah copywriting (stack vertikal) - Testimonial: horizontal scroll carousel (snap scroll) - CTA button: full-width di mobile - Stats bar: 2x2 grid di mobile --- ## ๐Ÿš€ DEPLOYMENT CONFIG ### vercel.json ```json { "buildCommand": "npm run build", "outputDirectory": ".next", "framework": "nextjs", "regions": ["sin1"], "headers": [ { "source": "/(.*)", "headers": [ { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "X-Frame-Options", "value": "DENY" } ] } ] } ``` ### next.config.ts ```ts const nextConfig = { output: 'standalone', images: { domains: [], formats: ['image/avif', 'image/webp'], }, experimental: { optimizeCss: true, }, } export default nextConfig ``` ### SEO โ€” app/layout.tsx ```ts export const metadata: Metadata = { title: 'UangSaku โ€” Aplikasi Literasi Keuangan Keluarga #1 di Indonesia', description: 'Ubah PR sekolah, baca buku, dan tugas rumah jadi misi seru berhadiah saldo saku virtual. Anak belajar mandiri, orang tua tenang. Gratis selamanya.', keywords: ['aplikasi uang anak', 'literasi keuangan anak', 'tabungan virtual anak', 'uang saku digital'], openGraph: { title: 'UangSaku โ€” Kuota Senyuman untuk Keluarga Indonesia', description: 'Misi seru berhadiah uang saku virtual. 100% gratis.', type: 'website', locale: 'id_ID', }, twitter: { card: 'summary_large_image', title: 'UangSaku', description: 'Literasi keuangan keluarga #1 Indonesia', } } ``` --- ## โœ… CHECKLIST PRODUKSI Setelah build selesai, pastikan semua item ini terpenuhi: **Performance:** - [ ] Lighthouse Performance score > 90 - [ ] LCP < 2.5s - [ ] CLS < 0.1 - [ ] Images menggunakan `next/image` dengan `priority` pada hero - [ ] Fonts menggunakan `next/font` (tidak CDN) - [ ] Particles disabled di `prefers-reduced-motion` **Accessibility:** - [ ] Semua gambar/icon punya `alt` atau `aria-hidden="true"` - [ ] Keyboard navigable (tab order logis) - [ ] Warna kontras WCAG AA minimal - [ ] Focus ring visible di semua interactive elements **Conversion:** - [ ] CTA pertama visible tanpa scroll di semua ukuran layar - [ ] Tidak ada pop-up yang muncul dalam 3 detik pertama - [ ] Form daftar maksimal 2 field (nama + email/WA) - [ ] Trust signal (gratis, no CC, 1 menit) selalu dekat CTA **Code Quality:** - [ ] Tidak ada `any` TypeScript type - [ ] Semua komponen punya displayName - [ ] `'use client'` hanya pada komponen yang butuh browser API - [ ] Error boundaries di setiap section utama --- ## ๐ŸŽจ AESTHETIC SIGNATURE (ELEMEN PEMBEDA) Satu elemen visual unik yang membuat UangSaku berbeda dari semua fintech app lainnya: **"Floating Coin Trail"** โ€” Saat user scroll ke bawah halaman, ada animasi koin-koin kecil (๐Ÿ’ฐ) yang mengambang naik dari sisi kiri/kanan halaman, bergerak dengan physics ringan mengikuti scroll position. Diimplementasikan dengan CSS keyframes + scroll event listener ringan. Memberikan kesan bahwa "uang mengalir" saat Anda menjelajahi produk. ```tsx // CoinTrail.tsx โ€” implementasikan sebagai fixed overlay useEffect(() => { const coins = [] // spawn koin baru setiap Xpx scroll const handleScroll = () => { if (Math.random() > 0.97) spawnCoin() } window.addEventListener('scroll', handleScroll, { passive: true }) return () => window.removeEventListener('scroll', handleScroll) }, []) ``` --- *Prompt ini mencakup semua yang dibutuhkan. Paste ke Replit Agent dan mulai build. Total estimasi waktu Replit Agent: 15-25 menit untuk full implementation.* **Dibuat untuk: UangSaku v2.0 Landing Page** **Stack: Next.js 14 + Tailwind + Framer Motion** **Target: 1 Juta Keluarga Indonesia**