## Overview We're excited to introduce budgeting capabilities to Whisper Money! This feature helps you take control of your finances by setting spending limits and tracking your progress over time. ## Screenshots <img width="1316" height="793" alt="image" src="https://github.com/user-attachments/assets/ac394d36-cded-4ea4-9883-120785e260f1" /> <img width="1315" height="907" alt="image" src="https://github.com/user-attachments/assets/7c682474-5aa7-4388-b626-29b56f5ebbef" /> <img width="1315" height="992" alt="image" src="https://github.com/user-attachments/assets/21eace45-23c6-472d-9aa0-0feb6db3fba4" /> ## What's New ### Create Flexible Budgets - Set budgets for specific categories or labels - Choose from monthly, weekly, bi-weekly, or custom periods - Set your own budget start date for better alignment with your pay schedule ### Track Your Spending - Visual spending charts show how much you've spent vs. your budget - See at a glance which budgets are on track and which need attention - View all transactions that count toward each budget ### Smart Budget Management - **Carry Over**: Unused budget amounts automatically roll into the next period - **Reset**: Unused amounts return to your available money pool - Edit or delete budgets anytime as your needs change ### Easy Access - New Budgets section in the main navigation - Quick overview cards showing budget status - Detailed budget pages with spending history and transaction lists ## How It Works 1. Create a budget by selecting a category or label and setting your spending limit 2. Your transactions are automatically matched to relevant budgets 3. Track your progress with visual charts and spending summaries 4. Adjust your budgets as needed to stay on track with your financial goals This feature is now available behind a feature flag and can be enabled for users who want to start budgeting their expenses. |
||
|---|---|---|
| .cursor | ||
| .github | ||
| app | ||
| bootstrap | ||
| config | ||
| database | ||
| docker | ||
| public | ||
| resources | ||
| routes | ||
| src/lib/crypto | ||
| storage | ||
| templates/coolify | ||
| tests | ||
| traefik | ||
| .editorconfig | ||
| .env.example | ||
| .env.production.example | ||
| .gitattributes | ||
| .gitignore | ||
| .mcp.json | ||
| .php-cs-fixer.dist.php | ||
| .prettierignore | ||
| .prettierrc | ||
| .release-it.json | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| Caddyfile | ||
| Dockerfile | ||
| Dockerfile.production | ||
| LICENSE.md | ||
| README.md | ||
| artisan | ||
| boost.json | ||
| bun.lock | ||
| components.json | ||
| compose.yaml | ||
| composer.json | ||
| composer.lock | ||
| docker-compose.production.yml | ||
| eslint.config.js | ||
| package-lock.json | ||
| package.json | ||
| phpunit.xml | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
| vitest.setup.ts | ||
| whispermoney | ||
README.md
Deutsch | Español | français | 日本語 | 한국어 | Português | Русский | 中文
Whisper Money
The most secure way to understand your finances.
Whisper Money is a privacy-first personal finance application that helps you track, categorize, and understand your spending—all while keeping your financial data encrypted and secure.
🎮 Try the Demo: Experience Whisper Money with our demo account - no registration required!
💬 Join our Community: Whether you're a user looking for help or a developer wanting to contribute, we'd love to have you in our Discord server! Share feedback, ask questions, discuss new features, or just hang out with fellow privacy enthusiasts.
Features
- 🔐 End-to-end encryption — Your financial data stays private
- 🏦 Bank account management — Track multiple accounts in one place
- 📊 Transaction categorization — Automatic and manual categorization
- 🤖 Automation rules — Set up rules to auto-categorize transactions
- 📈 Financial insights — Understand your spending patterns
Tech Stack
- Backend: Laravel 12, PHP 8.4
- Frontend: React 19, Inertia.js v2, TypeScript
- Styling: Tailwind CSS v4
- Database: MySQL
- Cache/Queue: Redis
- Testing: Pest v4
Running Locally
Quick Start (Recommended)
The easiest way to get started is using our automated setup script:
bash <(curl -fsSL https://whisper.money/setup.sh)
After installation, just visit https://whisper.money.local in your browser.
Manual Setup
If you prefer to set up manually:
- Clone the repository:
git clone https://github.com/whisper-money/whisper-money.git
cd whisper-money
- Run the setup script:
whispermoney install
Available Commands
Once installed, you can use the wispermoney command for common tasks:
# Start all services
whispermoney start
# Stop all services
whispermoney stop
# Upgrade to latest version
whispermoney upgrade
# Interactive menu
whispermoney
Development Server
For active development with hot reloading:
composer run dev
This will concurrently start:
- PHP development server
- Queue worker
- Log viewer (Pail)
- Vite dev server
The application will be available at https://whisper.money.local or http://localhost:8000 (direct PHP server).
Running with Docker (Production Image)
For testing the production Docker image locally:
- Copy the production environment file:
cp .env.production.example .env
- Start the services:
docker compose -f docker-compose.production.yml up -d
The application will be available at http://localhost:8080.
To use a different port, set APP_PORT:
APP_PORT=3000 docker compose -f docker-compose.production.yml up -d
Deploying to Coolify
Whisper Money can be easily deployed to Coolify using our Docker Compose template.
Quick Deploy
- In Coolify, create a new resource and select Docker Compose
- Choose Empty Compose File as the source
- Paste the contents from our template: 👉 whisper-money.yaml
- Deploy!
The template includes:
- Whisper Money application container
- MySQL 8.0 database with health checks
- Persistent volumes for data and storage
- Auto-generated database credentials
Required Environment Variables
| Variable | Description |
|---|---|
RESEND_API_KEY |
Email service API key (for password resets, notifications) |
Note:
APP_KEYandAPP_URLare auto-configured. The container generates anAPP_KEYon first startup if not provided.
Optional Environment Variables
| Variable | Default | Description |
|---|---|---|
DRIP_EMAILS_ENABLED |
true |
Enable drip emails (welcome, onboarding, feedback) |
HIDE_AUTH_BUTTONS |
false |
Hide login/register buttons on landing page |
SUBSCRIPTIONS_ENABLED |
false |
Enable Stripe subscriptions |
STRIPE_KEY |
- | Stripe publishable key |
STRIPE_SECRET |
- | Stripe secret key |
STRIPE_WEBHOOK_SECRET |
- | Stripe webhook signing secret |
License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.