kebaikanku.id is an open-source crowdfunding and donation platform for zakat institutions, foundations, and humanitarian organizations.
The platform is designed for organizations that need donation ownership, transparent campaign operations, and low platform costs. Self-hosted deployments use a 0% compulsory platform fee model and pay only direct payment gateway costs. Managed cloud deployments may use a small platform fee to cover hosting, maintenance, support, and updates.
This repository is ready for a controlled production pilot after the deployment checklist is completed.
Completed:
- Go REST API with config loading, SQLite/PostgreSQL database selection, local AutoMigrate, tracked production SQL migrations, and health/readiness endpoints.
- Core domain models:
Organization,Campaign,Donor, andDonation. - Static SvelteKit landing page with Indonesian/English localization, homepage, terms, and privacy pages.
- Responsive SvelteKit dashboard with password login, signed session cookies, campaign management, encrypted Midtrans settings, uploads, and donation reconciliation.
- Midtrans Snap checkout, signed webhook processing, direct status reconciliation, and donor-facing payment result pages.
- CI for backend, both frontends, SQL migrations, and the production container image.
- Architecture, database, localization, and handover documentation.
Still required before opening the dashboard to multiple institutions:
- Multi-institution signup, roles, and account management.
- Report APIs.
- Operational monitoring and production secret provisioning.
- Self-hosted open source: organizations host their own backend, database, and Midtrans merchant account with 0% kebaikanku.id platform fee.
- Managed cloud SaaS: hosted option with a low transaction-based platform fee.
- Enterprise/white-label: custom branding, private deployment, and implementation support under a commercial license.
- AI roadmap: WhatsApp-based zakat assistance and AI-generated campaign distribution reports.
kebaikanku.id/
├── backend/ # Go REST API service
├── docs/ # Architecture, API, deployment, security, roadmap docs
├── frontend/
│ ├── landing/ # SvelteKit static landing page
│ └── dashboard/ # SvelteKit alpha operator dashboard
├── CONTRIBUTING.md
├── LICENSE
└── README.md
The operator dashboard lives under frontend/dashboard and authenticates through the backend's signed HttpOnly session cookie.
cd backend
cp .env.example .env
go run cmd/api/main.goThe backend starts on http://localhost:8080. Check it with:
curl http://localhost:8080/healthSee backend/README.md for backend setup, environment variables, database notes, and current API status.
Copy .env.production.example to .env.production, set every required secret, then run:
docker compose --env-file .env.production -f docker-compose.production.yml up -d --build
curl http://127.0.0.1:8080/readyzThe Compose migration job must complete before the API starts. The full backup, restore, and rollback procedure is in the deployment guide.
cd frontend/landing
npm install
npm run devThe landing page starts on http://localhost:8383 by default.
See frontend/landing/README.md for local development, static build, localization, and Cloudflare Pages deployment notes.
- System architecture
- MVP scope
- Database architecture
- API contract
- Deployment guide
- Security notes
- Payment gateway design
- Localization strategy
- Roadmap
- Project handover
- Developer onboarding & runbook
- Landing page static deployment checklist
The current payment gateway is Midtrans. The API creates Snap checkouts, supplies the notification URL per transaction, verifies notification signatures, reconciles transaction status directly, and counts successful donations idempotently.
Xendit can be evaluated later behind a provider interface after the donation and callback lifecycle is stable.
This project is dual-licensed:
- AGPL-3.0 for the open-source community edition. If you modify and host this platform as a network service, you must disclose your modifications under the same license.
- Commercial Enterprise License for white-labeling, proprietary modifications, private deployments, and official implementation support.
See LICENSE and CONTRIBUTING.md for contribution terms.
