尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Open source platform for managing local solidarity funds
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Run a fund your community counts on.
Open source · Multi-tenant · Hosted or self-hosted
La Caisse gives solidarity funds, clubs, and community spaces the tools to manage members, track every contribution, and pay out without friction — under your own brand, on your own terms.
La Caisse is a multi-fund web app for managing local solidarity funds — local solidarity food funds and similar initiatives — covering their members, cards, tokens, and partner merchants.
The project originated as the platform built for La CLASS (Caisse locale de l'alimentation solidaire ASBL) by Citizen Pay, and was open-sourced so that other funds can deploy, customize, and improve it.
La Caisse connects three groups around a single fund:
For members
For fund teams
For merchants
Every fund runs independently — on the official instance or a self-hosted one — and is configurable on its own:
Funds are isolated from one another, with GDPR-conscious data handling throughout.
@prisma/adapter-pg driver adapter (Supavisor pooler, transaction mode)base-nova style on Base UI primitives, Tailwind CSS v4, Lucide iconsreact-hook-form + zod (schemas shared between client validation and server-action input parsing)The interface is available in English, Français, Nederlands, and Español (default: French). Adding a locale is a JSON file plus one entry in services/i18n/locale.ts.
git clone https://github.com/lacaisse/webapp.git
cd webapp
npm install
cp .env.example .env
Fill in the environment variables in .env (see Configuration), then generate the Prisma client and apply migrations:
npx prisma generate
npx prisma migrate deploy
npm run dev
The app runs at http://localhost:3000. Funds resolve by host — visit http://<subdomain>.localhost:3000 (modern browsers resolve *.localhost to 127.0.0.1 automatically).
npm run build
npm start
The same checks that gate every pull request can be run locally:
npm run lint # ESLint
npm run typecheck # tsc --noEmit
npm run test # Vitest
npm run guard # convention & permission guards
npm run audit:ci # dependency vulnerability gate
Environment variables (see .env.example for the full, documented list):
# App — apex domain (no protocol, no subdomain) and its public mirror
APP_DOMAIN="localhost"
NEXT_PUBLIC_APP_DOMAIN="localhost"
# Better Auth — signing secret (generate with: openssl rand -hex 32)
BETTER_AUTH_SECRET=""
# Database (Prisma against Supabase Postgres)
# Pooled connection (Supavisor, transaction mode, port 6543) — runtime
DATABASE_URL=""
# Direct connection (port 5432) — Prisma CLI for migrations, studio
DIRECT_URL=""
# Email (Resend)
RESEND_API_KEY=""
EMAIL_FROM="La Caisse <[email protected]>"
# At-rest encryption for secrets stored in the DB (32 bytes / 64 hex)
APP_CRED_KEY=""
La Caisse is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE for the full text.
If the AGPL-3.0 does not suit your use case, commercial licenses are available. Contact [email protected] to discuss.
Contributions are welcome — pull requests, bug reports, feature proposals. They are reviewed by Citizen Pay based on roadmap alignment, technical quality, and priority relative to ongoing work.
For any substantial new feature, please open an issue first to discuss the proposal before submitting code.
The roadmap is funding-driven. An organization (fund, foundation, public body) that wants a specific feature prioritized can do so by sponsoring its development.
Citizen Pay BV is the project's primary maintainer: