// the find
range-of-motion/budget
Get a grip on your finances.
Budget is a self-hostable personal finance app built on Laravel, with a Vue front end and MySQL behind it. It's for people who want their transactions, tags and receipts on a server they control, though the maintainers also run a hosted version at usebudget.com.
Shared budgets are implemented, not just planned: there are space invites, a SpaceInvite model, and per-user API keys with their own middleware. The code is conventional Laravel (repositories, actions, per-model policies, factories for most models), so anyone who has worked in a Laravel app can find their way around quickly. Multi-currency is backed by a conversion_rates table that a scheduled job populates. The repo includes a PHPUnit config, a tests workflow, and a Docker Compose file that brings up MySQL alongside the app, which is more than most personal projects bother with.
The last push was December 2024, nearly two years ago, and the README shows its age: the queue section links to Laravel 7 docs and the build badge points at Travis CI, even though the repo has a GitHub Actions workflow. Self-hosting means a cron entry, a long-running queue worker or Supervisor, mail configuration, and running budget:install before anything works. The README's note that some features need the queue watched is easy to miss. Translation coverage is uneven: de and fr lack files that en has, such as models.php and reports.php, so parts of the UI will show English unless a fallback locale is configured.