DompetBijak

Catat uang, atur budget, dan tahu kondisi finansialmu seketika.

DompetBijak adalah SaaS pencatatan keuangan pribadi untuk membantu pengguna Indonesia mencatat pengeluaran, mengelola budget bulanan, dan memantau kondisi keuangan dengan cepat. Produk ini ditujukan untuk pengguna yang ingin solusi sederhana, modern, dan mobile-first, dengan onboarding yang membantu mereka mulai memakai aplikasi dalam hitungan menit.

Business Goals

  • Mencapai 2,000 pengguna terdaftar dalam 3 bulan pertama setelah peluncuran beta publik.
  • Mencapai conversion rate registrasi ke aktivasi onboarding sebesar minimal 65% dalam 30 hari.
  • Mencapai monthly active user rate sebesar 40% dari total akun terdaftar dalam 90 hari.
  • Mencapai paid conversion awal sebesar 5% dari pengguna aktif dalam 6 bulan jika model freemium diterapkan.
  • Menjaga churn bulanan di bawah 8% pada cohort pengguna berlangganan dalam 6 bulan pertama.

User Goals

  • Pengguna dapat login cepat menggunakan akun Google tanpa membuat password.
  • Pengguna dapat mulai mencatat pengeluaran kurang dari 3 menit setelah registrasi.
  • Pengguna dapat menetapkan budget bulanan dan melihat sisa budget secara visual.
  • Pengguna dapat memilih kategori dan dompet secara mudah dengan rekomendasi sistem.
  • Pengguna dapat menyesuaikan tampilan, bahasa, dan akun sesuai preferensi pribadi.

Non-Goals

  • Tidak mencakup akuntansi bisnis, invoice, atau laporan pajak formal.
  • Tidak membangun fitur investasi, tabungan berjangka, atau analisis portofolio.
  • Tidak menyediakan sinkronisasi bank otomatis pada fase awal.
  • Tidak menggantikan aplikasi perbankan atau dompet digital sebagai sumber saldo utama.

Karyawan Muda Dimas, 28 - Dimas menerima gaji bulanan, punya beberapa dompet digital, dan sering kehilangan jejak pengeluaran kecil harian. Dia butuh cara cepat untuk mencatat pengeluaran dan tahu apakah budget masih aman sebelum akhir bulan.

Karyawan Muda Dimas, 28

  • As a karyawan muda, I want to login dengan Google, so that saya tidak perlu mengingat password baru.
  • As a karyawan muda, I want to set budget bulanan per kategori, so that saya tahu batas pengeluaran sebelum overbudget.
  • As a karyawan muda, I want to input pengeluaran dalam beberapa detik, so that saya bisa konsisten mencatat setiap transaksi.

Freelancer Sari, 34 - Sari punya pendapatan tidak selalu tetap dan perlu memisahkan pengeluaran kerja serta pribadi. Dia sering memonitor periode tertentu seperti perjalanan atau proyek tertentu.

Freelancer Sari, 34

  • As a freelancer, I want to melihat rekap berdasarkan rentang tanggal seperti kalender trip, so that saya bisa memantau periode proyek atau perjalanan secara akurat.
  • As a freelancer, I want to mengelompokkan transaksi ke dompet dan kategori berbeda, so that arus uang saya lebih rapi.
  • As a freelancer, I want to melihat status budget bulanan yang mudah dipahami, so that saya tahu kapan harus menahan pengeluaran.

Pengguna Pemula Rina, 22 - Rina belum terbiasa membuat sistem pencatatan keuangan dan mudah menyerah jika aplikasi terlalu rumit. Dia butuh onboarding yang sangat terarah dan visual.

Pengguna Pemula Rina, 22

  • As a pengguna pemula, I want to dipandu lewat tutorial awal, so that saya paham cara pakai aplikasi tanpa bingung.
  • As a pengguna pemula, I want to memilih kategori dari saran sistem, so that saya tidak perlu menyusun semuanya dari nol.
  • As a pengguna pemula, I want to mengganti bahasa dan mode gelap/terang, so that aplikasi terasa nyaman dipakai setiap hari.

Authentication and Account · High priority

  • Pengguna harus dapat masuk dengan akun Google dan mengelola akun mereka secara aman.
  • Gunakan login Google berbasis OAuth melalui Supabase Auth.
  • Buat sesi login persisten dengan auto refresh token.
  • Sediakan aksi delete akun dari menu user setting dengan konfirmasi dua langkah.
  • Saat akun dihapus, hapus atau anonimisasi data pengguna sesuai kebijakan retention.

Onboarding and Setup · High priority

  • Onboarding harus membantu pengguna mengatur fondasi pencatatan keuangan secara cepat dan terarah.
  • Tampilkan guide tour pertama kali setelah registrasi.
  • Minta pengguna mengisi budget bulanan, dompet awal, dan preferensi kategori.
  • Berikan suggestion kategori dan metode pembayaran/dompet dari sistem berdasarkan template umum Indonesia.
  • Tampilkan status budget bulanan dengan label mudah dipahami seperti aman, hati-hati, dan kritis berdasarkan persentase sisa budget.

Expense Entry · High priority

  • Pengguna harus bisa mencatat pengeluaran secara manual atau lewat OCR dari tombol floating action.
  • Floating button menampilkan dua aksi: scan OCR dan input manual.
  • Form input wajib mendukung nominal, kategori, dompet, tanggal, catatan, dan lampiran opsional.
  • Validasi nominal positif, tanggal tidak boleh kosong, dan kategori/dompet harus valid.
  • Jika OCR gagal membaca struk, pengguna harus bisa edit hasil sebelum menyimpan.

Dashboard and Reporting · High priority

  • Dashboard dan rekap harus memberi ringkasan finansial harian, bulanan, dan berdasarkan rentang tanggal.
  • Dashboard menampilkan total pengeluaran, sisa budget, transaksi terbaru, dan ringkasan kategori teratas.
  • Menu rekap mendukung filter bulan dan rentang tanggal custom memakai date range picker model kalender trip.
  • Setiap tampilan rekap harus menghitung ulang total berdasarkan timezone pengguna.
  • Sediakan empty state yang menjelaskan belum ada data dan mengarahkan ke tombol tambah transaksi.

Settings and Personalization · Medium priority

  • Pengguna perlu mengatur pengalaman aplikasi sesuai preferensi pribadi.
  • Sediakan toggle dark/light mode yang tersimpan per user.
  • Sediakan pengaturan bahasa minimal Bahasa Indonesia dan English.
  • Sediakan pengaturan status budget bulanan dengan mapping persentase ke label dan warna.
  • Sediakan edit profil dasar dan hapus akun.

First-Time User Experience

  • Pengguna membuka aplikasi dan login dengan Google dalam kurang dari 30 detik.
  • Setelah login, tampil guide tour singkat yang menjelaskan dashboard, tambah transaksi, dan rekap.
  • Pengguna mengisi budget bulanan, memilih dompet default, dan memilih kategori yang disarankan sistem.
  • Pengguna memilih preferensi bahasa dan tema, lalu diarahkan ke dashboard awal.
  • Target time-to-value: pengguna menyelesaikan setup dan melihat dashboard aktif dalam 2 menit atau kurang.

1. Login dan Buat Akun

  • Pengguna masuk menggunakan Google dan sistem membuat profil awal otomatis.
  • Jika akun baru, jalankan onboarding; jika akun lama, langsung ke dashboard.
  • Tampilkan error yang jelas jika OAuth gagal atau akses ditolak.
  • Simpan preferensi dasar pengguna secara aman di database.

2. Onboarding Budget

  • Pengguna menetapkan budget bulanan dan konteks awal keuangan.
  • Minta nominal budget bulanan dan validasi angka masuk akal.
  • Tampilkan kategori rekomendasi seperti makan, transportasi, tagihan, hiburan, dan darurat.
  • Biarkan pengguna menambah dompet dan metode pembayaran yang sering dipakai.

3. Kelola Pengeluaran

  • Pengguna menambah transaksi melalui form manual atau OCR.
  • Floating button membuka dua opsi: scan OCR dan input manual.
  • OCR hasil scan harus bisa diedit sebelum disimpan agar mengurangi salah baca.
  • Jika user belum memilih kategori atau dompet, tampilkan pilihan yang sudah disarankan sistem.

4. Pantau Dashboard dan Rekap

  • Pengguna melihat posisi keuangan dalam satu layar dan menyaring periode tertentu.
  • Dashboard menampilkan sisa budget, status budget, dan grafik sederhana.
  • Rekap mendukung filter bulanan dan custom date range dengan pola interaksi kalender.
  • Jika tidak ada transaksi pada periode tertentu, tampilkan state kosong yang informatif.

5. Personalisasi dan Pengaturan

  • Pengguna menyesuaikan tampilan dan mengelola akun.
  • Mode terang/gelap dan bahasa tersimpan per user.
  • Delete akun memerlukan konfirmasi akhir dan memberi tahu konsekuensi penghapusan data.
  • Perubahan setting harus terasa instan tanpa reload penuh.

Advanced Features and Edge Handling

  • Smart category suggestion berdasarkan histori transaksi pengguna dan template lokal Indonesia.
  • Budget health labels yang berubah dinamis berdasarkan persentase sisa budget.
  • OCR receipt parsing dengan review screen untuk koreksi hasil ekstraksi.
  • Custom date ranges untuk rekap, termasuk periode lintas bulan.
  • Support multi-wallet sehingga pengguna bisa memisahkan e-wallet, tunai, dan rekening bank.

UI Principles

  • Gunakan desain modern, clean, dan mobile-first dengan sidebar yang tetap ringkas di desktop.
  • Floating action button harus jelas terlihat namun tidak menutupi konten penting.
  • Gunakan warna status budget yang konsisten dan aksesibel, dengan kontras cukup untuk dark mode.
  • Pastikan komponen form memiliki label eksplisit, helper text, dan state error yang mudah dipahami.
  • Optimalkan performa untuk interaksi cepat; target render awal dashboard di bawah 2 detik pada koneksi normal.

Rina selalu merasa uangnya cepat habis, tapi dia tidak pernah sempat mencatat pengeluaran satu per satu. Saat mencoba DompetBijak, dia login dengan Google, mengikuti guide tour singkat, lalu mengisi budget bulanan dan memilih kategori yang disarankan sistem dalam beberapa langkah sederhana.

Beberapa hari kemudian, Rina mulai mencatat belanja harian lewat tombol floating. Kalau dia sedang buru-buru, dia pakai OCR dari struk; kalau tidak, dia isi manual. Dashboard langsung menunjukkan sisa budget dan status yang mudah dibaca, jadi dia tahu kapan harus menahan pengeluaran.

Dalam beberapa minggu, Rina tidak hanya lebih sadar pada kebiasaan belanjanya, tetapi juga lebih disiplin. Untuk bisnis, itu berarti produk yang cepat memberi nilai, mendorong retensi, dan punya peluang konversi lebih tinggi karena pengguna melihat manfaat nyata sejak hari pertama.

User-Centric Metrics

  • 65% pengguna baru menyelesaikan onboarding dalam 2 menit.
  • 70% pengguna aktif mencatat minimal 3 transaksi per minggu setelah minggu pertama.
  • 50% pengguna kembali membuka aplikasi setidaknya 4 kali per bulan.
  • 80% pengguna mengatakan kategori dan dompet yang disarankan relevan setelah onboarding.
  • Kurang dari 5% transaksi gagal disimpan karena error validasi atau OCR yang tidak bisa dipulihkan.

Business Metrics

  • Mencapai 35% retention bulan pertama pada cohort beta.
  • Mencapai 5% free-to-paid conversion dalam 6 bulan jika monetisasi berlangganan diaktifkan.
  • Mencapai 2x pertumbuhan pengguna aktif bulanan dalam 2 kuartal melalui referral dan organic sign-up.
  • Mencapai activation rate 65% dari registrasi ke transaksi pertama.
  • Menjaga support ticket terkait onboarding di bawah 10% dari total pertanyaan pengguna.

Technical Metrics

  • Uptime layanan minimal 99.9% per bulan.
  • P95 latency untuk dashboard utama di bawah 1.5 detik.
  • 0 insiden kehilangan data transaksi pengguna akibat kegagalan sinkronisasi yang terdeteksi.
  • 100% traffic autentikasi dan data sensitif dienkripsi in transit dan at rest.

Tracking Plan

  • Track sign_up_completed untuk mengukur registrasi sukses.
  • Track onboarding_completed untuk mengetahui penyelesaian setup awal.
  • Track budget_set untuk memantau adopsi budget bulanan.
  • Track expense_added_manual untuk input transaksi manual.
  • Track expense_added_ocr untuk penggunaan OCR dan tingkat sukses ekstraksi.
  • Track report_filter_applied untuk penggunaan rekap bulanan dan custom range.
  • Track account_deleted untuk memantau retensi dan alasan keluar jika ditambahkan survey.

Technical Needs

  • Frontend menggunakan Next.js App Router dengan Tailwind CSS.
  • Backend dan database menggunakan Supabase Postgres, Supabase Auth, dan Row Level Security.
  • State management ringan untuk form dan dashboard, misalnya Zustand atau React Context yang terstruktur.
  • Date handling menggunakan library yang stabil seperti date-fns atau dayjs.
  • OCR pipeline membutuhkan service eksternal untuk ekstraksi teks dari gambar struk.
  • File upload untuk bukti transaksi harus disimpan di Supabase Storage.
  • Analytics event pipeline disiapkan sejak awal agar perilaku onboarding dan retensi dapat diukur.

Integration Points

  • Google OAuth melalui Supabase Auth.
  • Supabase Database untuk transaksi, budget, kategori, dompet, dan preferensi user.
  • Supabase Storage untuk gambar struk dan lampiran transaksi.
  • OCR service seperti Google Vision API, AWS Textract, atau Mindee.
  • Analytics seperti PostHog atau Amplitude untuk event tracking.

Data Storage & Privacy

  • Simpan data pengguna terpisah per user_id dengan Row Level Security aktif di semua tabel utama.
  • Enkripsi data sensitif saat transit dan gunakan storage policy yang membatasi akses file struk.
  • Sediakan kebijakan penghapusan akun yang menghapus data personal dan menjelaskan retensi backup bila ada.
  • Patuhi prinsip minimisasi data: hanya simpan data yang dibutuhkan untuk pencatatan keuangan.
  • Siapkan dasar kepatuhan GDPR/CCPA dengan export data dan delete-account flow yang jelas jika produk melayani pasar global.

Scalability & Performance

  • Optimalkan query dashboard dengan indeks pada user_id, transaction_date, category_id, dan wallet_id.
  • Gunakan pagination atau infinite scroll untuk daftar transaksi agar tidak memuat data terlalu banyak sekaligus.
  • Cache ringkasan dashboard per user dan periode jika diperlukan untuk mengurangi query berulang.
  • Pastikan upload OCR diproses asynchronous agar UI tetap responsif.

Potential Challenges

  • OCR salah membaca nominal atau tanggal; mitigasi dengan hasil ekstraksi yang bisa diedit sebelum simpan.
  • Pengguna bingung saat setup awal terlalu panjang; mitigasi dengan onboarding singkat, progress indicator, dan default rekomendasi.
  • Query rekap menjadi lambat saat transaksi menumpuk; mitigasi dengan indexing dan agregasi terjadwal.
  • Risiko data privacy pada struk yang berisi informasi sensitif; mitigasi dengan access control ketat dan opsi hapus lampiran.
  • Budget status bisa terasa menghakimi atau membingungkan; mitigasi dengan copy yang netral, jelas, dan warna yang konsisten.

Team & resourcing - Small team - 2 engineers, 1 designer, part-time PM, and 1 QA support during launch.

Phase 1: MVP Foundation · Weeks 1-4

  • Supabase project setup with Auth, database schema, and RLS.
  • Google login, user profile creation, and first-time onboarding.
  • Core sidebar navigation and base layout using Next.js and Tailwind.
  • Manual expense input, wallet management, category CRUD, and dashboard summary.

Phase 2: Budgeting and Reporting · Weeks 5-7

  • Monthly budget setup and budget health status labels.
  • Rekap page with month selector and custom date range picker.
  • Charts and summaries by category, wallet, and date period.
  • Language and theme settings saved per user.

Phase 3: OCR and Productivity · Weeks 8-10

  • Floating action button with manual input and OCR entry points.
  • Receipt upload flow with OCR extraction and review screen.
  • Improved suggestions for categories and wallets based on templates.
  • Performance tuning for dashboard and transaction list.

Phase 4: Hardening and Launch · Weeks 11-12

  • Delete account flow, privacy copy, and audit logging.
  • Analytics instrumentation for onboarding, retention, and OCR usage.
  • Accessibility pass, empty states, error handling, and mobile QA.
  • Production launch checklist, monitoring, and incident alerts.

Paste this into Cursor, Bolt, Lovable, or v0 to start building.

Build a SaaS web app called DompetBijak for personal finance tracking in Indonesia using Next.js App Router, TypeScript, Tailwind CSS, and Supabase.

Core product requirements:
1. Google login via Supabase Auth.
2. First-time onboarding after signup with a guided tour, monthly budget setup, suggested categories, wallet/payment method setup, theme choice, and language choice.
3. Sidebar navigation with these pages: Dashboard, Rekap, Dompet, Kategori, Budgeting Bulanan, User Setting, and Input Pengeluaran.
4. Dashboard showing monthly budget status, remaining budget, recent transactions, category summary, and wallet summary.
5. Rekap page with month selection and custom date-range picker similar to travel booking calendars, supporting ranges across calendar dates.
6. Wallet management CRUD for cash, bank, and e-wallet accounts.
7. Category management CRUD with system suggestions and sensible defaults for Indonesian users.
8. Monthly budgeting page where users define budget limits and a clear status label based on remaining percentage such as aman, hati-hati, kritis.
9. User settings for dark/light mode, language selection, and delete-account flow with confirmation.
10. Expense input page with a form for manual entry and a floating action button that expands into two actions: OCR scan and manual input.
11. OCR flow should accept receipt images, extract amount/date/category hints, then show a review screen before saving.

Data model in Supabase Postgres:
users profile table linked to auth.users
wallets table with user_id, name, type, balance optional, active flag
categories table with user_id, name, icon, color, is_system_default
monthly_budgets table with user_id, month, total_budget, status_thresholds
expenses table with user_id, wallet_id, category_id, amount, expense_date, notes, source_manual_or_ocr, receipt_url, extracted_text
user_settings table with user_id, theme, language, default_wallet_id, onboarding_completed
analytics_events table optional if needed, otherwise integrate PostHog

Implementation details:
Use Supabase Row Level Security everywhere so users can only access their own data. Build responsive UI with a clean mobile-first design and a persistent sidebar on desktop. Use server components where appropriate, client components for forms and interactive settings, and strong form validation with Zod and React Hook Form. Add empty states, loading states, error handling, and optimistic UX for CRUD actions. Include seed default categories and wallets during onboarding. Make the app production-ready with clean architecture, reusable components, and accessible color contrast for dark mode.

Deliverables:
Authenticate users with Google.
Create all main screens and navigation.
Implement onboarding wizard and guided tour.
Implement budget setup and budget status logic.
Implement manual expense entry, wallet/category CRUD, rekap filters, theme/language settings, and delete-account flow.
Stub OCR integration with a provider interface so it can be wired to Google Vision API, AWS Textract, or Mindee later.
Add analytics events for signup, onboarding completion, budget setup, transaction creation, OCR usage, filter changes, and account deletion.

Business Idea

buatkan aplikasi untuk pencatatan keuangan, dimana ini akan menjadi sebuah saas, orang dapat memanfaatkan ini - login pakai akun google - pake next.js dan tailwind.css - supabase - ketika awal register, pengguna mendapatkan tutor/guide tour, set budget bulanan, jenis kategori (berikan suggestion/pilihan dari sistem), metode pembayaran/dompet, setting status budget bulanan dalam range (misal 0-100rb = sisa banyak/masih kaya, 1jt=sudah miskin) - user, bisa setting dark/light mode, bahasa, dan delete akun - ada menu sidebar: 1. dashboard 2. rekap (bisa set bulanan, tanggal sesuai kalender spt traveloka ketika memilih range trip) 3. dompet 4. kategori 5. budgeting bulanan 6. user setting 7. input pengeluaran - menu input buat seperti form, lalu buatkan tombol + melayang, ketika ketuk +, munculkan 2 btn diatasnya, scan ocr sama input manual

Make My PRD

Design by The Resonance | Powered by GPC – The AI Transformation Company