Forking Around

Financials

Because checking your bank balance shouldn't feel like defusing a bomb.

Financials
The Story Behind the Madness

How Financials Escaped The Idea Graveyard

A personal finance command center with a triple-entity ledger (business, personal, joint) — each color-coded so money never ends up in the wrong pocket. Imports CSVs from multiple French banks despite their wildly different formats, auto-categorizes across 70+ subcategories, and includes "the Vault" — a 48-hour impulse-spending lock on discretionary purchases. Handles VAT provisioning, recurring transaction detection, budget goals with projections, and full analytics. Ships with FR/EN i18n, light/dark themes, and a fully local-first architecture — zero cloud, zero telemetry.

Genesis Spark

Every bank has its own app, its own dashboard, its own version of 'here's your balance.' None of them talk to each other, and none of them answer the only question that matters: where is all the money going? I wanted a private, offline tool that pulls everything into one place — no cloud dependency, no handing credentials to a third party — just clean graphs showing how the money moves and what's actually expendable.

Core Problem & Insight

Getting a clear picture of your finances shouldn't require trusting a third-party app with your bank credentials or maintaining a spreadsheet that dies of neglect after week two. The real problem was fragmentation and privacy — multiple accounts across multiple banks, each in their own silo, with no unified view and no way to spot patterns without doing the math yourself.

Known Chaos

  • Parsing CSV exports from multiple French banks that apparently all agreed to use completely different formats — varying delimiters, date formats, column layouts, debit/credit conventions, and embedded category metadata that each bank decided to invent from scratch.
  • Designing a triple-entity architecture where business, personal, and joint accounts each maintain independent ledgers while still showing a consolidated net-worth view — without the whole thing collapsing into spaghetti the moment you add inter-account transfer detection.
  • Building a 48-hour impulse purchase friction system that intercepts discretionary spending without accidentally blocking rent, CSV imports, or business transactions. Turns out teaching a system the difference between 'treat yourself' and 'pay your bills' is harder than it sounds.

Solutions

  • Built a bank profile system with configurable column mappings, regex-based header detection, French number parsing, and bank-specific category inference. Banque Populaire, Banque Populaire Pro, and Crédit Agricole work out of the box — adding another bank is just another profile.
  • Separated all financial logic into pure calculation functions with entity-scoped filtering, transfer type detection (salary, joint, savings), and entity-based UI theming via CSS custom properties. Switching contexts is instant and visually obvious.
  • Implemented category-aware rules that only intercept VARIABLE_WANTS above a threshold, with source-based exclusions for CSV imports and entity-based exclusions for business accounts. Funds stay locked until explicitly released or cancelled — no workarounds.

Arsenal

Next.js

Next.js

A React framework for building server-side rendered and static web applications.

React

React

A JavaScript library for building user interfaces using a component-based architecture.

TypeScript

TypeScript

A typed superset of JavaScript that compiles to plain JavaScript.

Tailwind

Tailwind

A utility-first CSS framework for rapidly building custom user interfaces.

Recharts

Recharts

A composable charting library built on React components and powered by D3.

React Context API

React Context API

A React feature for sharing state across the component tree without prop drilling.

Screenshots That Don't Lie

Visual proof that this thing actually works

Financials screenshot 1
Click to enlarge
Financials screenshot 2
Click to enlarge
Financials screenshot 3
Click to enlarge
Financials screenshot 4
Click to enlarge
Financials screenshot 5
Click to enlarge
Financials screenshot 6
Click to enlarge
Financials screenshot 7
Click to enlarge
Financials screenshot 8
Click to enlarge
Financials screenshot 9
Click to enlarge
Financials screenshot 10
Click to enlarge
Financials screenshot 11
Click to enlarge
Financials screenshot 12
Click to enlarge
Financials screenshot 13
Click to enlarge
Financials screenshot 14
Click to enlarge
Financials screenshot 15
Click to enlarge

Thanks for Peeking Behind the Curtain!

This one's still brewing in the lab. Head back and explore more chaotic creations!