Live, active development
OpenBooks
A live multi-tenant budget tracker for small organizations that need clear, accountable shared finances.
- Role
- Solo developer: product, architecture, frontend, and backend
- Timeframe
- 2025 to present

Problem
Fund-raisers, estates, clubs, and co-operatives need a simple way to manage shared money without losing permissions, receipts, reporting, or a reliable history of financial decisions. Spreadsheets are approachable but difficult to govern, while accounting products often add more complexity than small organizations need.
Solution
OpenBooks provides organization workspaces with role-based access, funds and categories, transaction review and approval, receipt storage, multi-currency entries, reports, CSV exports, and optional public summaries. PostgreSQL Row Level Security, views, and controlled RPCs keep tenant boundaries and financial permissions close to the data.
What shipped
- Multi-tenant organizations with Owner, Admin, Treasurer, Auditor, and Member roles
- Funds, income and expense categories, and a draft, review, approval, return, and void transaction workflow
- Receipt uploads, manual multi-currency conversion, activity history, and member-level field redaction
- Trend, fund, and category reporting with CSV exports
- Invite-based onboarding and optional public financial summaries using tokenized links
Technologies
- Next.js
- React
- TypeScript
- PostgreSQL
- Supabase
- Row Level Security
- TanStack Query
- Vitest
Architecture and engineering
- A pnpm monorepo with a Next.js App Router application and Supabase database, authentication, and private receipt storage
- Organization IDs scope the core financial tables, with PostgreSQL RLS helpers and SECURITY DEFINER RPCs enforcing membership and role permissions
- A restricted transaction view removes memos, counterparties, and workflow details for members who should not see them
- Amounts are stored as integer cents; manual foreign-exchange rates avoid floating-point drift and dependence on a live FX provider
- AWS Amplify deploys the application and applies Supabase migrations, while CI runs dependency audit, lint, tests, and production builds
Gallery
Outcomes
- Shipped a live, usable MVP with tenant isolation and database-enforced role permissions.
- Implemented the full transaction lifecycle with receipts, audit events, and sensitive-field redaction.
- Delivered reports, CSV exports, and public summaries for organizations that need to share financial information.
Next steps
- Add CSV import, budgeting, recurring transactions, and receipt OCR.
- Expand automated coverage beyond utility tests to include APIs, RLS policies, and end-to-end financial workflows.
- Tighten transaction action visibility so the interface mirrors database permissions more closely.