Skip to content

URL: https://mkdocs.justinsforge.com/memory/handoffs/firefly-personal-budgeting-2026-05-04/

Firefly III Personal Budgeting Stack

Goal

Cancel Rocket Money ($72/yr, no API), replace with self-hosted Firefly III + SimpleFIN Bridge ($18/yr) wired into Forge so Justin can ask Claude conversational budgeting questions and get automated weekly retros, anomaly alerts, and Notion summaries. Bill negotiation feature explicitly out of scope (Justin doesn't use it).

Why this won

  • $54/yr saved, payback in 4 months
  • Rocket Money has no public API, only CSV export, so it can never be Forge-native
  • forge-biz-apps LXC (CT 104) has spare capacity (2 cores, 2GB RAM idle)
  • Plaid/SimpleFIN bridge built once feeds both ERPNext (business) and Firefly (personal)
  • REST API on every Firefly endpoint, mirrors the ERPNext integration pattern Justin already knows

Target architecture

Banks → SimpleFIN Bridge ($1.50/mo) → Firefly III on CT 104
                          forge_firefly_*.py client (mirrors forge_erpnext_*)
            ┌───────────────────┬───────────┴───────────┬─────────────────┐
            ↓                   ↓                       ↓                 ↓
   Coordinator-bot tools   Notion monthly       Cron anomaly scan   Weekly retro
   (budget_status,         summary auto-page    + Telegram alert    (Sun pattern,
    spending_summary,                                                like fitness)
    recent_transactions,
    categorize_pending)

Cost

Item Cost
Firefly III software $0 (MIT, self-hosted)
LXC hosting $0 (existing CT 104)
Cloudflare tunnel + Access $0 (existing)
firefly.justinsforge.com subdomain $0
SimpleFIN Bridge $1.50/mo = $18/yr
Claude API $0 (subscription quota)
Total $18/yr

Worst case (SimpleFIN flaky for a bank, fall back to Plaid Production direct): ~$36/yr ceiling.

Build phases

# Deliverable Effort Done?
1 Firefly III deployed on CT 104, login at firefly.justinsforge.com behind CF Access 1 evening
2 SimpleFIN account + 1 bank linked, manual sync working 30 min
3 Firefly SimpleFIN connector, all accounts auto-syncing nightly 1 evening
4 forge_firefly_*.py client, mirrors forge_erpnext_* pattern 1 evening
5 Coordinator-bot tools: budget_status, spending_summary, recent_transactions, categorize_pending 2 evenings
6 Weekly retro cron + Notion monthly summary page 1 evening
7 Cancel Rocket Money 2 min

Phase 1+2 = minimum viable cancel-Rocket-Money point. Phases 3-6 = where Forge actually beats Rocket Money.

Open questions for next session

  • Confirm SimpleFIN supports all of Justin's banks (Chase, Amex, Capital One, etc.). If a critical bank is missing, switch to Plaid Production direct (~$36/yr).
  • Decide if Firefly DB shares MariaDB with ERPNext (saves RAM) or runs its own (cleaner blast radius). Probably separate.
  • Notion DB schema for monthly summary: reuse Wellness Daily pattern or new DB?
  • Telegram tool naming convention: budget_* vs money_* vs finance_*? Suggest budget_* for spending-side tools, accounts_* for balance/net-worth-side.

Out of scope

  • Bill negotiation (Justin opted out)
  • Investment tracking (Ghostfolio could come later if wanted, separate project)
  • Joint Kristine accounts (defer until Justin's own setup is proven)
  • Tax integration with ERPNext (different problem, different season)

Pickup command

When ready to start: /feature-plan Firefly III personal budgeting stack to expand Phase 1 into numbered tasks with file paths and verification steps. Then build Phase 1 in a fresh session.

[Claude Code]