Supabase and Fmodel Starter Template - NextJS

f { accounting }

An essential component of any information system

Assets - Liabilities = Equity + Income − Expenses

Checkout the Recipes

Integrate accounting into your business context

Income Tracking

Automate revenue recognition and invoice tracking. Prevent revenue leakage and manage client relationships.

Expense Tracking

Track and categorize expenses for better financial control (e.g., office supplies, software subscriptions, or employee expenses).

Investor Funding

Track both, the rounds of funding and the equity issued to investors. Proper tracking ensures transparency!

Payments

Integrate securely with payment providers by using two-phase transfers and inflight balances (eg. Stripe and LeamonSqueeze).

Automate Business Processes

Customer Relationship Management (CRM), Order Management and Payment providers.

accounting event model

Generate Reports

Understand company`s financial position

Balance Sheet

A balance sheet is a financial document designed to communicate exactly how much a company or organization is worth—its “book value.” It achieves this by listing and tallying all of a company`s assets, liabilities, and owners` equity as of a particular reporting date.

Income Statement (Profit and Loss)

An income statement summarizes the cumulative impact of revenue, gain, expense, and loss transactions for a given period. The document is often shared as part of quarterly and annual reports, and shows financial trends, business activities (revenue and expenses), and comparisons over set periods.

Perfect primitives for any type of transactions

Compose your own recipes with our foundation primitives

Debit/Credit

The language of business transactions is Debit/Credit

Provide crucial insights into the financial health of individuals, businesses, and organizations.
Assets - Liabilities = Equity

Transfers

A single transfer debits one account and credits another.

Execute multiple/linked transfers in a single database transaction to compound transfers.
Third Newton's law of motion

Two-Phase

A primitive for atomic transfers across different systems

Start transfer in a Pending/Reserved state and then either Accept or Reject.
Authorize -> Capture (or Void)

Inflight Balances

A primitive for managing inflight liquidity.

Distinguish between inflight reserved amounts and accepted/commited amounts to control inflight liquidity.
Ammount = Reserved + Committed

100% Accurate Audit with Event Sourcing

Every decision or change is recorded as an event, documenting each transfer or account update. This creates a complete audit trail, giving you an accurate history of your financial activities and allowing you to review account states at any time.

image: An integration between Invoice/Order management, Payments and Accounting

Admin Dashboard

Control your design

Register Command Handlers

Specify the event types that comand handler can publish.

Control the design, so `bad` events are not stored by mistake!

Register Event Handlers

Stream events to concurent consumers, and track the progress.

Control how the events are consumed, replayed, and projected.

Technology

This starter is built with Supabase, Typescript (Next.js) and f{model}.

Book an appointment