How it's built

How FinanceSight is put together: its architecture, security and data model, the figures behind it, and how to run your own copy. It describes the code, not any running instance.

Who built it, and how

FinanceSight is built by one person with AI assistance. It is a learning and decision-support tool, and it has not been reviewed by a financial professional.

Architecture

A React single-page app talks to a Node.js and Express REST API, which keeps everything in PostgreSQL through the Sequelize ORM. In production the API also serves the built front end, so there is one application to run.

The same container image runs three services: the web application; a background worker that runs scheduled jobs such as price refreshes and data retention, queued through Redis; and an MCP server that a compatible AI assistant connects to. Your browser talks to the web application only; the assistant, not the browser, is the MCP client. The MCP server is for self-hosted instances and is not routed on the public site.

Optional features are plugins that register their own routes, models and pages, so the core does not depend on them. Runtime configuration lives in the database and is edited from the admin screens; only what the process needs to boot and reach its database comes from the environment.

Metrics

These figures are generated from the API document, the tool registry, the decision records and the repository history rather than typed by hand, and a test fails the build if they go stale. The same figures appear in the llms.txt file at the root of the site.

MeasureFigureAs at
Lines of source code640000November 2026
Releases500November 2026
MCP tools exposed144November 2026
Back-end unit line coverage (%)78September 2026
Front-end unit line coverage (%)93September 2026
API endpoints documented823November 2026
Back-end tests22000November 2026
Front-end tests13000November 2026
Commits7000November 2026
API route modules documented119November 2026
Architecture decision records31November 2026
Continuous-integration jobs per merge request36November 2026

Security and data model

Signing in sets short-lived, httpOnly session cookies that page scripts cannot read, and every request that changes something carries a CSRF token. Two-factor sign-in with an authenticator app and single sign-on are both supported.

Every record belongs to a user or a household, and access is checked on the server for each request. An account can be shared as its owner, as someone who may add transactions, or read-only.

Secrets the app keeps for you, such as an AI provider key, are encrypted at rest and never shown back in full. AI features send a provider only what the feature needs, a privacy mode can reduce that to symbols or anonymised figures, and your own text is fenced off in prompts so a model reads it as data rather than as instructions.

An assistant connected over MCP uses a scoped personal access token you can revoke, and tools that would change your records wait for your approval. A guest uses a capped demonstration account that is removed automatically once it is left idle.

The diagram of the main entities, in plain text. Entities by tier: User (Kids/Core), Household (Standard), Accounts (Standard), Transactions (Standard), Forecasts (Standard), Portfolios (Investor), Holdings (Investor), Strategies (Plugin), Deployments (Plugin), Settings (Standard). Plugin entities: Playbooks, Research. Relations: Household to User, Household to Forecasts, Transactions to Accounts, Forecasts to User, Forecasts to Accounts, Holdings to Portfolios, Strategies to User, Deployments to Portfolios, Deployments to User. The full model lists every entity.

Running your own copy

FinanceSight is built to be run by anyone. The minimum is a container runtime, a PostgreSQL database and a Redis instance. Start the image with the database and Redis connection settings and the secrets it needs to boot; on boot it creates and migrates its own schema, so an upgrade is pulling a newer image.

Instance settings such as integrations, limits and the sign-up policy are managed in the app's admin screens rather than in configuration files. The full install guide lives in the source repository, which is private for now, so self-hosting opens with the public repository; until then, this page is the whole of what is published.

FinanceSight needs JavaScript to run. See /llms.txt for more.