Bookie Docs

Bookie Docs

Bookie is a local-first cost tracker for prop firm traders - every eval fee, reset, refund, and payout in one ledger, stored in a SQLite database on your own machine.

Get Started

Six steps from zero to tracking: clone, install, migrate, run, import, track. Everything runs on your machine - no account, no cloud, no telemetry.

1. Clone the repo & install dependencies

Bookie uses bunas its runtime and package manager. If you don't have it yet, install it first, then clone the repository and pull in the dependencies:

# install bun (skip if you already have it)
curl -fsSL https://bun.sh/install | bash

# clone and install
git clone https://github.com/maxxfuu/bookie.git
cd bookie
bun install

bun install reads the lockfile (bun.lock) so you get the exact dependency versions the project was built against.

2. Ensure SQLite is available

Bookie stores your data in a local SQLite database via better-sqlite3, which bundles its own SQLite build - so in most cases there is nothing to do. If your platform needs a system SQLite (or you just want the sqlite3 CLI to poke at your data), install it with Homebrew:

# check what you have
sqlite3 --version

# install if missing (macOS)
brew install sqlite

On Linux, use your distribution's package manager instead (e.g. apt install sqlite3). Windows users get the bundled build automatically.

3. Create the local database

Run the migration script once to create the database file and its tables:

bun run db:migrate

This creates the SQLite file locally in the project and applies the schema - accounts, transactions, expenses, and notes. Migrations are idempotent: re-running the command after an update applies only what's new and never touches your existing rows. Back up your data by copying that one file.

4. Run Bookie

Start the dev server, or build and serve a production bundle:

# development - hot reload
bun run dev

# production
bun run build
bun start

Then open localhost:3000 in your browser. That's the whole deployment - Bookie is meant to run on your machine, next to your data.

5. Add an account & import your firm's data

Head to Accounts → Add account. Three ways in:

  • Fill out manually - pick a firm and plan; pricing, rules, and refund terms autofill from the firm's published catalog.
  • Import file - drop a CSV or JSON export with one row per account.
  • Paste orders - copy your order history table (and optionally your payout history) straight from the firm's dashboard. Purchases become accounts, "Reset" rows attach as reset events, and payout rows attach to the account with the matching ID.

6. Track spend, resets, and payouts

The dashboard recomputes on every event you log: gross fees vs payouts over time, cost per funded account, recovery ratio, and the exact moment you break even. Log resets, phase changes, payouts, and refunds from any account's row - each becomes a transaction in the ledger.

Featured Documentation