Open-source budget management for German associations.
YBudget helps German (non-profit) associations manage their budgets when Excel gets too complicated.
We believe every association deserves proper budget tools. That's why we cover all hosting and server costs—so you can use yBudget at no charge. No hidden fees, no premium tiers, just free budget management for the nonprofit community.
Young Founders Network e.V. provides yBudget completely free for other associations. We cover all server costs so you don't have to.
The problem? Most budget tools are too expensive or too complex for associations. Excel is flexible but keeping track of all expenses is plenty of work.
Our solution? Simple, affordable, intuitive, and open-source budget and reimbursement tracking.
- Dashboard & Charts: Visualize cashflow with income, expenses, and balance trends
- Transaction Import: Import CSV from Sparkasse, Volksbank, & Moss
- Budget Transfers: Move budgets between projects when plans change
- Project Organization: Assign expenses to projects, see remaining budgets
- Reimbursements: Submit expense and travel reimbursements with receipt uploads
- Volunteer Allowance: "Ehrenamtspauschale" forms with shareable links for external signatures
- AI Assistant: Chat with your budget data (admin/lead only)
- Team Management: Organize members into teams with project access control
- Donor Export: Export transactions by donor to CSV
- Email Invitations: Invite team members via email (powered by Resend)
- Guided Onboarding: Interactive tour for new users
- Audit Logs: Track all actions for transparency and compliance
YBudget uses Next.js App Router with protected and public routes:
app/(public)/→ Login and public pagesapp/(protected)/→ Authenticated dashboard with sidebar navigation
Data flows through Convex for real-time sync. Every query is scoped by organizationId for data isolation.
Database Schema - Full ER diagram with all tables and relationships
Transactions are categorized by status for budget calculations:
- Processed: Imported bank transactions that count towards project balance (Kontostand).
- Expected: Planned transactions that do NOT count towards balance and are shown separately as expected income/expenses.
- Split: Portions of income split across projects which are treated as processed and therefore count towards balance.
- Transfer: Internal budget moves between projects and also count towards balance.
Prerequisites: Node.js 20+, pnpm, Convex account
git clone https://github.com/joelheile/ybudget.git
cd ybudget
pnpm install
npx convex dev # Creates .env.local with CONVEX_DEPLOYMENT and NEXT_PUBLIC_CONVEX_URLnpx @convex-dev/auth- Go to Google Cloud Console
- Create OAuth 2.0 Client ID (Web application)
- Add authorized redirect URI:
https://<your-convex-deployment>.convex.site/api/auth/callback/google - Copy Client ID and Client Secret
Set in Convex Dashboard → Settings → Environment Variables or via CLI:
npx convex env set AUTH_GOOGLE_ID "your-google-client-id"
npx convex env set AUTH_GOOGLE_SECRET "your-google-client-secret"
# Optional
npx convex env set OPENAI_API_KEY "sk_proj_"
npx convex env set RESEND_API_KEY "re_..."
npx convex env set STRIPE_KEY "sk_test_..."
npx convex env set STRIPE_WEBHOOKS_SECRET "whsec_..."pnpm devTest CSV functionality with the example file.
npx convex deploy
npx vercelUpdate SITE_URL to your production URL after deploying.
| Shortcut | Action |
|---|---|
⌘ + B |
Hide sidebar |
⌘ + E |
Plan expense |
⌘ + I |
Plan income |
⌘ + P |
Create project |
⌘ + D |
Add donor |
We're building a tool to support NGOs by making budgeting as easy as possible.
- Fork the repo
- Clone your fork locally
- Create a feature branch (
git checkout -b feat/amazing-feature) - Make and commit your changes
- Push to your fork (
git push origin feat/amazing-feature) - Open a Pull Request
Ideas, feedback, or questions? team@ybudget.de | Open an issue
100% test coverage on lines and functions, ~96% on branches for unit and integration tests.
pnpm vitest run # Unit & integration tests
pnpm vitest run --coverage # Test coverage report
pnpm exec playwright test # E2E testsGitHub Actions runs both test suites on every push and PR.
Originally developed by Joël Heil Escobar as a CODE University Capstone project.
Built with ❤️ in Berlin