OpenBooks
Community finance tracker for groups and co-ops
- Role
- Solo dev — product, design system, architecture, frontend & backend
- Timeframe
- 2025 — Ongoing
OpenBooks screenshotOverview
OpenBooks is a community finance tracker that makes shared money transparent, auditable, and understandable. It's built for co-ops, clubs, and neighborhood groups: role-based access, receipt-backed transactions, and simple reporting that members can trust.
Problem
Small organizations need clarity and accountability, but most tools either feel like accounting software (too complex) or are too lightweight to build trust (no audit trail, attachments, or permissions). Shared finances need both usability and defensible controls.
Goals
- Mobile-first ledger UX for non-accountants
- Secure org isolation + role-based permissions (Owner/Admin/Treasurer/Auditor/Member)
- Receipt attachments, approvals, and exportable reporting
- A public-facing product tour + early-access waitlist (no production onboarding yet)
Solution
Built a Next.js + Supabase app with RLS-enforced org boundaries and role-aware UI/route gating. Transactions support statuses (e.g., submit/approve/return/void), attachments are stored securely, and reporting/export endpoints provide simple, shareable outputs. Public pages (landing/auth/tour) are forced to light mode for brand consistency, while the app uses a stored theme preference.
Architecture / Approach
- Next.js App Router (SSR + static marketing/tour routes)
- Supabase Auth + Postgres with RLS policies per org + role
- API routes for org/fund/category/transaction CRUD + state transitions
- Attachment uploads + server-side confirmation flow
- Reports: UI charts + CSV export endpoints (categories/funds/monthly)
- Public read-only summary links (tokenized route) for transparency sharing
- Request proxy (Next 16 `proxy.ts`) to gate `/app` and disable auth routes in production until launch
Outcomes
- MVP shipped with secure defaults: org isolation + role-based access controls
- End-to-end transaction lifecycle (review/approve/return/void) with attachment support
- Production landing + product tour + early access waitlist (auth disabled until launch)
- Reporting foundation: charts + CSV exports + public summary links
Next Steps
- Launch gating: early access invites + staged onboarding
- CSV import/reconciliation workflow (bank + legacy ledger formats)
- More transparency surfaces (publishable summaries + permissioned sharing controls)
- Refine theming: org-scoped + user-scoped preferences inside `/app` (public pages stay light)
- Operational polish: notifications, activity feed improvements, and audit UX