Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Yaffa Laravel Package

kantorge/yaffa

YAFFA is a self-hosted personal finance manager built with Laravel. Track accounts, transactions, budgets, and investments; import bank statements; categorize spending; and generate reports through a clean, responsive web interface with multi-currency support.

View on GitHub
Deep Wiki
Context7

Yaffa is a self-hosted personal finance manager built with Laravel and PHP. It provides a clear web interface for organizing accounts, transactions, budgets, and reports, helping you understand your finances while keeping ownership of your data on your own server.

  • Track accounts, income, expenses, and transfers
  • Create budgets and monitor spending
  • Manage recurring transactions and schedules
  • Review reports and financial summaries
  • Deploy and extend a Laravel-based application
Frequently asked questions about Yaffa
Is kantorge/yaffa a Laravel package I can install with Composer into an existing app?
No. YAFFA is a complete self-hosted Laravel application, not a drop-in library. Composer adoption means deploying the app and integrating with its /api/v1 endpoints and web UI. Treat it as an application dependency with its own release cadence, not a package you compose into an existing codebase.
What are the requirements to install and run YAFFA?
YAFFA follows standard Laravel conventions: PHP 8.x with ext-bcmath, MySQL or PostgreSQL, Redis, a queue worker, and the scheduler via cron. Configuration is handled through .env, with the usual artisan migrate and storage linking steps. A Docker setup is provided, though v4 moves Caddy to an https Compose profile, so hand-maintained reverse-proxy configs may need updating.
Which Laravel and PHP versions does kantorge/yaffa support?
Version 4 of YAFFA requires Laravel 13 and PHP 8.x with the bcmath extension enabled. That combination changes your base image, PHP build, and Composer constraints together, so it is not a routine composer update. Check the release notes for the exact supported matrix before planning an upgrade from v3.
Does YAFFA have a REST API for machine-to-machine integrations?
Yes. YAFFA exposes a versioned /api/v1 surface covering accounts, transactions, scheduled items, investments, and reports. v4 introduces scoped API tokens plus TOTP two-factor authentication, which is the first credible machine-to-machine access story. There are no webhooks or event egress, so any external system must poll the API or read the database directly.
Why do money and quantity fields return as decimal strings in the YAFFA v4 API?
v4 switches to exact decimal arithmetic backed by ext-bcmath, so money and quantity fields are serialized as decimal strings rather than floats. Typed clients with strict JSON schema or model binding will either throw or silently coerce, which is the risk. Audit every consumer that parses those fields as numbers before cutover, and note that report endpoints are explicitly unaffected.
What breaks when upgrading to YAFFA v4?
Expect decimal-string money fields across /api/v1, removal of the type=budget|budget_only|both|any parameter from the scheduled-items endpoint, and new ext-bcmath and Laravel 13 requirements. Laravel 13 also changes default CACHE_PREFIX, REDIS_PREFIX, and SESSION_COOKIE, which can log every user out or cause key collisions on shared Redis unless you pin them. The reCAPTCHA integration is removed without a stated replacement, so review public registration exposure.
Is the YAFFA v4 database migration reversible?
No. Budget-only transactions are converted into Budget rows and deleted from the transactions table, and migrate:rollback cannot restore them. Pivot-table deduplication and key or index changes also happen inside the migration, which can cause long locks on large datasets. Take a verified backup, rehearse the migration against production-scale data, and define an RTO before you cut over.
Does YAFFA support multi-tenancy, SSO, or SAML?
No. YAFFA is single-tenant per instance, with no multi-tenancy, SSO, or SAML support. Access control is limited to TOTP two-factor authentication, recovery codes, and scoped API tokens. If your finance-adjacent use case mandates enterprise identity federation, that gap likely disqualifies YAFFA as-is.
How should I test a YAFFA upgrade before touching production?
Stand up a staging copy with realistic transaction and pivot volumes, run the migrations, and time how long they take. Replay every API consumer against the new payloads to catch decimal-string coercions and the dropped type= filter on scheduled items. Compare totals before and after to quantify rounding differences, and confirm the queue worker, scheduler, and cache prefixes behave as expected.
What are the alternatives to YAFFA for a Laravel personal finance app?
Firefly III is the closest self-hosted comparison, and building finance tracking directly into your own Laravel app is the other common route. YAFFA makes sense when you want a maintained, Laravel-native app with long-term planning, budgets, and multi-currency support out of the box. It is a poor fit if you need an embeddable package, multi-tenancy, SSO, or webhook-driven event integration.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console