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 in the MVP bootstrap phase.
Completed:
- Go REST API skeleton with config loading, SQLite/PostgreSQL database selection, GORM auto-migration, middlewares, and
GET /health. - Core domain models:
Organization,Campaign,Donor, andDonation. - Static SvelteKit landing page with Indonesian/English localization, homepage, terms, and privacy pages.
- Architecture, database, localization, and handover documentation.
Not implemented yet:
- Institution dashboard app.
- Auth, campaign, donation, payment callback, and report APIs.
- Midtrans integration code.
- CI/CD workflows and production deployment automation.
- 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
├── CONTRIBUTING.md
├── LICENSE
└── README.md
The planned dashboard app will live under frontend/dashboard once scaffolded.
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.
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
- 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 initial payment gateway target is Midtrans. The MVP should implement Midtrans Snap/Core API payment creation and Midtrans notification callback handling before adding another provider.
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.
