Alternatif Trello open-source yang ringan, dirancang untuk pembuat dan indie hacker.
Fokus pada kesederhanaan, kecepatan, dan skalabilitas. Dibangun dengan stack modern: Tailwind CSS, shadcn/ui, Supabase, integrasi Stripe. Mendukung proyek tanpa batas, kolaborasi tim, mode gelap/terang, dan pengalaman pengguna yang mulus. Sempurna untuk developer solo dan tim kecil yang ingin kontrol penuh tanpa kompleksitas yang tidak perlu.
🌟 Jika Anda merasa proyek ini bermanfaat, pertimbangkan untuk memberinya bintang! Ini membantu orang lain menemukannya juga.
Panduan Deployment
Ikhtisar
Aplikasi ini sekarang menggunakan route API Next.js lokal, bukan Supabase Edge Functions untuk integrasi Stripe. Ini membuat proses deployment lebih sederhana dan memungkinkan Anda menggunakan file .env standar untuk konfigurasi.Pengaturan Variabel Lingkungan
1. Buat file .env.local
Salin.env.example ke .env.local dan isi dengan nilai asli Anda:cp .env.example .env.local
2. Variabel Lingkungan yang Diperlukan
#### Konfigurasi Supabase
NEXT_PUBLIC_SUPABASE_URL- URL proyek Supabase AndaNEXT_PUBLIC_SUPABASE_ANON_KEY- Kunci anonim Supabase AndaSUPABASE_SERVICE_ROLE_KEY- Kunci peran layanan Supabase Anda (hanya sisi server)
STRIPE_SECRET_KEY- Kunci rahasia Stripe Anda (hanya sisi server)NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY- Kunci publishable Stripe AndaSTRIPE_WEBHOOK_SECRET- Rahasia webhook Stripe Anda
NEXT_PUBLIC_SITE_URL- URL situs Anda (untuk produksi)NEXTAUTH_URL- URL situs Anda (sama seperti di atas)NEXTAUTH_SECRET- Rahasia acak untuk NextAuth
Pengembangan Lokal
- Instal dependensi:
npm install
- Atur variabel lingkungan Anda di
.env.local - Jalankan server pengembangan:
npm run dev
- Uji webhook Stripe secara lokal menggunakan Stripe CLI:
stripe listen --forward-to localhost:3000/api/stripe/webhook
Deployment Produksi
Deployment Vercel
- Deploy ke Vercel:
npx vercel
- Variabel Lingkungan:
- Pengaturan Webhook Stripe:
- Arahkan webhook ke:
https://your-domain.vercel.app/api/stripe/webhook
Endpoint API
Aplikasi sekarang menggunakan rute API lokal berikut:
POST /api/stripe/checkout- Membuat sesi checkout StripePOST /api/stripe/webhook- Menangani event webhook Stripe
Manfaat Rute API Lokal
- Deploy Lebih Sederhana - Tidak perlu deploy fungsi edge terpisah
- Variabel Lingkungan - Dukungan file .env standar
- Debugging Lebih Baik - Lebih mudah untuk debug secara lokal
- Integrasi Framework - Integrasi lebih baik dengan Next.js
- Tidak Terkunci Vendor - Dapat deploy ke platform mana pun yang mendukung Next.js
Pemecahan Masalah
- Masalah Webhook:
- Pastikan
STRIPE_WEBHOOK_SECRETsesuai dengan endpoint webhook Stripe Anda - Periksa log webhook di dashboard Stripe
- Verifikasi URL webhook sudah benar
- Variabel Lingkungan:
- Pastikan semua variabel yang dibutuhkan sudah diatur
- Periksa kesalahan penulisan pada nama variabel
- Verifikasi kunci peran layanan Supabase memiliki izin yang sesuai
- Masalah CORS:
- Rute API sudah menyertakan header CORS yang tepat
- Pastikan domain Anda sudah di-whitelist jika diperlukan
Catatan Keamanan
- Jangan pernah mengekspos
STRIPE_SECRET_KEYatauSUPABASE_SERVICE_ROLE_KEYke klien - Gunakan awalan
NEXT_PUBLIC_hanya untuk variabel sisi klien - Rutin rotasi rahasia webhook Anda
- Pantau pengiriman webhook di dashboard Stripe