Skip to content

jmars319/Ledger

Repository files navigation

tenra Ledger

tenra Ledger is a local-first bookkeeping product. The current product direction is desktop-first so the accounting engine, book storage model, and data ownership boundaries can mature before web, sync, or collaboration surfaces are introduced.

The project emphasizes explicit user actions, self-contained books, and correct double-entry accounting over hidden automation.

Operational Purpose

  • Maintain local books with user-owned storage.
  • Support double-entry accounting, posted transactions, reversals, and corrections.
  • Keep each book self-contained for backup, restore, and portability.
  • Provide reports and exports through explicit operator actions.

Design Posture

  • No mandatory cloud account or online auth.
  • One SQLite database per book.
  • Immutable posted transactions by correction rather than silent mutation.
  • Desktop app as the active v1 surface.
  • Web and mobile shells remain inactive placeholders until local accounting behavior is stable.

Architecture

apps/
  desktopapp/   Active Tauri + React bookkeeping app
  webapp/       Placeholder shell
  mobileapp/    Placeholder Expo shell

packages/
  domain/       Bookkeeping models, invariants, reports, and boundaries
  api-contracts/ Frontend/backend DTO contracts
  validation/   Runtime schemas
  config/       App constants and storage helpers
  privacy/      Future export/privacy hooks
  ui/           Shared React primitives
  shared-types/ Shared primitive types

Current State

  • The desktop app is the active product surface.
  • Books are stored as .ledger folders containing SQLite and metadata.
  • Demo book creation supports first-run UI verification.
  • Backup is modeled as a zip of the whole book folder.
  • Web and mobile apps are intentionally inactive.

Deployment Posture

Ledger is a local desktop product. It is not currently a hosted accounting service. Any future sync or collaboration feature should be designed around the existing self-contained book model and explicit user ownership.

Working Locally

pnpm run bootstrap
pnpm run dev:desktop
pnpm run verify:desktop
pnpm run verify:all
pnpm run doctor

Default book roots follow platform app-data conventions and are documented in the developer guide.

Direction

  • Continue hardening accounting invariants and storage boundaries.
  • Improve reports, export workflows, and backup/restore checks.
  • Keep hidden automation out of core bookkeeping actions.
  • Treat sync as a later design problem, not an assumed foundation.

Related Documentation

About

Local-first bookkeeping app with desktop workflow, self-contained books, and double-entry accounting.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors