Ingram Ventures
Financica

Years of quiet development. Then shelved. Then finished in an AI-powered coding sprint — with extensive pentesting and security hardening. From a single create-react-app commit to a full-featured European accounting platform with AI, Peppol e-invoicing, and PSD2 bank connections. 2,804 commits over 6 years.

2,804
Commits
6
Years
14
Contributors
138K
Lines of TypeScript
907
Commits in March 2026
74
Most in a Day
Visualization

Watch it grow

The entire repository rendered with Gource — every file, every contributor, 6 years in 4.5 minutes.

Journey

The story in commits

Quiet development, shelved, then finished in an AI coding sprint. This is how it happened.

April 30, 2020

The First Commit

CRAReact

Jerome Leclanche writes "Add CRA frontend" — a Create React App skeleton. The very next day, Jessica Mortimer starts building the accounting core: ledger accounts, account categories, and the double-entry transaction model. The DNA of the app is there from day one — this is a real bookkeeping system, not a spreadsheet with a UI.

  • Ledger accounts with categories (Assets, Liabilities, Equity, Revenue, Expenses)
  • Transactions with legs — proper double-entry from the start
  • Tax calculation on transaction line items
  • Dinero.js for safe currency arithmetic
December 2020

The Next.js Pivot

MigrationNext.js

After 6 months of CRA, Jerome starts a Next.js version. In a 48-hour sprint (Dec 6–8), he ports the entire app: account fetching, transactions, file uploads, attachments. Material UI becomes the component library.

April – December 2021

The Team Assembles

Team GrowthFeatures

The team grows from 2 to 8 contributors. Eugene DiBenedetto builds the first Plaid integration. Shinyuy becomes the most prolific contributor of the year with 461 commits — building everything from the balance sheet to the login flow.

  • Balance Sheet and Income Statement reports
  • Plaid, Stripe, and Wise integrations
  • Login, registration, organization management
  • VAT assessment and deduction rules
November 2022

The Great Rewrite

258 CommitsTailwind

258 commits in a single month. Jerome systematically replaces every Material UI component with Tailwind CSS. The Next.js app directory replaces the pages router. Axios is removed in favor of native fetch. Server components are adopted. The entire auth system moves from localStorage to cookies.

  • Material UI → Tailwind CSS + headlessui
  • Pages Router → App Router
  • Axios → native fetch
  • TypeScript strict mode enabled
August 2023 – June 2025

Shelved

Hibernation

The longest gap in the project’s history. Only 4 commits in 23 months — dependency upgrades and an invitation flow. The Django backend still powers everything. The product exists, works, but the project is effectively shelved. Priorities shift, the team disperses, and Financica sits dormant.

July 2025

The Supabase Migration

Backend RewriteSupabase

The biggest architectural decision in the project’s history. The entire Django/Python backend is removed and replaced with Supabase — PostgreSQL with Row Level Security, Supabase Auth, Storage, and Edge Functions. shadcn/ui replaces the custom Tailwind components.

  • Django removed — Supabase becomes the entire backend
  • PostgreSQL RLS policies for row-level authorization
  • shadcn/ui component library
  • Database-generated TypeScript types
January – April 2026

The AI Sprint

1,200+ CommitsAI-PoweredSecurity

The shelved project roars back to life. 907 commits in March 2026 alone — an AI-assisted coding sprint that transforms Financica from a dormant accounting ledger into a complete, production-ready business finance platform. AI coding tools accelerate development by orders of magnitude, but every feature is reviewed, tested, and hardened.

  • Full invoicing system with UBL XML parsing
  • AI transaction categorization and assistant
  • Peppol e-invoicing (outbound, inbound, MLR)
  • Exthand PSD2 bank connections
  • Stripe billing with trial and plans
  • Extensive pentesting and security audit
  • Row-level security, CSRF, rate limiting
April 3, 2026

The Great Cleanup

Simplification

Remove Plaid, Tink, Wise, and TrueLayer integrations — a bold pruning. After building integrations with five different banking providers, the decision is made to consolidate on Exthand and Stripe. Deleting working code because the architecture is stronger without it.

Activity

Commit patterns

The rhythm of development — visible in the data.

Commits per Month

Commits by Hour (UTC)

Peak at 20:00. Heavy activity through midnight–2 AM. Lowest at 07:00. Night owl confirmed.

Streaks & Cadence

Longest consecutive streak24 days
Total days with commits441
Repo age (days)2,165
Active ratio20.4%
Weekend commits48%
Peak week (W12 2026)277

Codebase Growth (thousands of lines)

Team

The people

14 contributors shaped this codebase.

JL
Jerome Leclanche
1900 commits · Creator & Lead Developer
S
Shinyuy
464 commits · Full-Stack (2021–2022)
SB
Steve Brand
203 commits · UI/UX & Frontend
NS
Nicholas Savage
165 commits · Backend & Frontend (2021–2022)
NM
Nate Meyvis
21 commits · Expenses Feature
DD
David Delassus
17 commits · Testing & Backend
JM
Jessica Mortimer
13 commits · Original Accounting Core
ED
Eugene DiBenedetto
8 commits · Plaid Integration Pioneer
DR
Daniele Rosato
8 commits · Deprecation Fixes
FV
François Voron
3 commits · Linting & Quality
AK
Amir Karimi
2 commits · Invitation Flow
Stack

Technology evolution

The stack was rewritten multiple times. Each migration was deliberate.

FrontendCreate React AppNext.js 15 (App Router)
UIMaterial UITailwind CSS v4 + shadcn/ui
BackendDjango (Python)Supabase (PostgreSQL + RLS)
HTTPAxiosNative fetch
AuthDjango REST + localStorageSupabase Auth + cookies
Package Mgryarn → npmBun
LinterESLintBiome
TestingJestVitest
DeployDockerVercel + Supabase

Integration Graveyard

Built, used, and ultimately removed:

Bunq (2020–2022)Plaid (2021–2026)Nordigen (2023–2026)TrueLayer (2025–2026)Tink (Jan–Apr 2026)Wise Direct (2022–2026)

All replaced by Exthand (PSD2 aggregator) + Stripe Connect (payments).

Philosophy

Development philosophy

What the commit history reveals about how this team thinks.

Rewrite When Ready

Three major rewrites — CRA→Next.js, MUI→Tailwind, Django→Supabase. Each surgical and deliberate. November 2022: 258 commits in 30 days.

Small, Atomic Commits

Consistently descriptive and topical. Even during the March 2026 sprint with 907 commits, each change is self-contained and legible.

Build, Evaluate, Prune

Six banking integrations built and removed. i18next replaced. Victory charts became Chart.js. Engineering maturity over sunk-cost fallacy.

Security-First, European-Ready

Extensive pentesting and security audit. Row-level security policies, CSRF protection, rate limiting, input sanitization. VIES VAT, Peppol e-invoicing, PCMN chart of accounts. The hard problems, done right.

AI as Assistant

Transaction categorization suggests but requires approval. The AI assistant reads but doesn’t modify. OCR first, AI fallback. Trust human judgment for financial data.

Solo Sprint Capability

67.8% of commits from one person. Auto-generated types, RLS policies, server components, Biome at commit time. The tooling multiplies individual output.

“The best code is the code you delete.”

— Evident in the April 3, 2026 commit that removed five banking integrations in favor of one aggregator.

Scale

By the numbers

Today's codebase at a glance.

138K
Lines of TypeScript
14K
Lines of SQL
944
Files
2,804
Commits
14
Contributors
6
Years
3
Backend Rewrites
6
Banking Providers Tried
Financica

AI-powered bookkeeping for European businesses.

2,804 commits · 6 years · 138K lines of TypeScript