Stacks / CRM
Firefly III / Akaunting
Spending you host. Firefly III is AGPL-3.0 books; Akaunting is open-source accounting — Expensify without the report seat.
The problem
Expensify sells expense reports as a subscription. Firefly III is AGPL-3.0 personal and small-business finance (accounts, bills, receipts you upload). Akaunting is the PHP ledger already on /stacks/invoice-ninja-books. This is not Expensify's receipt-OCR-and-reimburse product — it is books you own.
Replaces
Expensify
Estimated SaaS saved
$1,200
per year, small team, before lock-in
Start on RailwayAkaunting / Invoice Ninja if the pain is invoices, not expenses
Placeholder: Firefly III + a database and a volume for attachments, or reuse Akaunting on /stacks/invoice-ninja-books. SMTP via Resend.
The stack
- Firefly III
AGPL-3.0 personal and small-business finance
- Akaunting
Open-source accounting (already on the QuickBooks stack)
Cost table
| You stop paying | Typical / year | Self-host instead |
|---|---|---|
| Expensify (small team) | $1,200 | Firefly III or Akaunting |
Agent setup prompt
Replace Expensify with Firefly III (books and receipts) or Akaunting (ledger). - Database + a volume for attachments. Bind HTTP to 0.0.0.0:$PORT. Import a bank CSV. Complete one expense category. - Do not claim SmartScan / receipt OCR parity. Invoices stay on /stacks/invoice-ninja-books. - Write AGENT_PROMPT.md.
Also as markdown: /stacks/firefly-expenses.md
FAQ
- Will this reimburse employees like Expensify?
- It records spending. Approval-and-reimburse workflows are a different product. Start with books; add a form (Formbricks) if someone must submit a report.
- Why not Invoice Ninja?
- /replace/quickbooks is invoices and a ledger. This page is expenses. Akaunting appears on both because a ledger covers both jobs — pick one box.