LedgerFlowAI — Small Business Accounting SaaS
A full-stack accounting platform built for small businesses, with AI-powered transaction categorization, double-entry bookkeeping, invoicing, bill management, bank reconciliation, and role-based access control.
March 24, 2026
Overview
Most small business accounting tools are either too simple to trust or too complex to actually use. LedgerFlowAI sits in the middle — a full double-entry bookkeeping system with AI-assisted categorization, designed to be approachable for business owners and complete enough for accountants.
The platform is live at app.ledgerflowai.com and handles the full accounting cycle: from transaction import through to financial reporting, invoicing, and year-end close.
Core Features
Accounting Engine
- Chart of Accounts — fully customizable, supports assets, liabilities, equity, revenue, and expense account types
- Journal Entries — manual double-entry journal entries with draft and posted states; manual entries can be edited before posting
- General Ledger — full transaction history per account with running balances
- Financial Reports — Profit & Loss, Balance Sheet, and Cash Flow Statement generated in real time
AI-Powered Categorization
Transactions imported from CSV or entered manually are passed to Claude AI for categorization suggestions. The AI maps each transaction to the most appropriate account in the chart of accounts based on description, amount, and context. Users review and accept or override suggestions before they hit the ledger.
Invoicing & Receivables
- Create, send, and track invoices through draft → sent → paid states
- Record payments against invoices with automatic journal entry creation
- Recurring invoice scheduling
- Overdue tracking and customer aging reports
Bills & Payables
- Enter and manage vendor bills through draft → submitted → approved → paid states
- Role-gated approval workflow (accountants approve, owners pay)
- Vendor management with payment history
Bank Reconciliation
- Import bank statements and match transactions to existing journal entries
- Mark individual transactions as reconciled; lock reconciled statements
- Unmatched transaction queue with suggested matches
Subscriptions & Billing
Stripe-powered subscription management with plan selection, upgrade/downgrade flows, and webhook-driven status sync.
Security
- MFA (TOTP) — optional two-factor authentication with authenticator app support and backup recovery codes; secrets stored AES-256-GCM encrypted at rest
- RBAC — five roles (Owner, Admin, Accountant, Member, Viewer) with explicit per-resource permission sets across all 15+ modules
- Session timeout — 20-minute idle timeout with a 2-minute warning modal; 8-hour absolute session limit enforced on the backend
- Audit log — all financial actions (post, void, reconcile, year-end close) are recorded with user, timestamp, and before/after state
- Account deletion — soft-delete with 30-day cooling period, Stripe subscription cancellation, and full data export before deletion
Year-End Close
MFA-gated workflow that closes the current fiscal period and rolls retained earnings into equity. Closed periods are locked by default; re-opening requires MFA re-verification and creates a reversal journal entry for the audit trail.
Stack
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite, Zustand, React Query, Recharts |
| Backend | Node.js, Express |
| Database | PostgreSQL 16, Knex.js (38 migrations) |
| AI | Anthropic Claude API |
| Auth | JWT + refresh tokens, TOTP MFA (speakeasy) |
| Payments | Stripe (subscriptions + webhooks) |
| Nodemailer / SendGrid | |
| Infrastructure | Docker Compose, Nginx, Cloudflare Tunnel |
Architecture
The app is a standard three-tier architecture: a React SPA served by nginx talks to a Node/Express REST API, which reads and writes to PostgreSQL. All three services are orchestrated with Docker Compose and deployed to a self-hosted server exposed through a Cloudflare Tunnel.
The AI categorization layer runs as a service module inside the backend — it receives transaction data, constructs a prompt with the current chart of accounts, calls the Claude API, and returns a ranked list of account suggestions with confidence scores.
Deployment
- Production:
app.ledgerflowai.com(frontend) +api.ledgerflowai.com(API) - Self-hosted on a local Ubuntu server behind a Cloudflare Tunnel (no open inbound ports)
- Zero-downtime deploys via
docker compose up -d --build - Migrations run automatically on container startup