§ masterplan.md
Clean Accounting SaaS
A corporate SaaS landing page for freelancers with pricing tables, feature comparisons and a demo scheduler.
01
App overview and objectives
Bookkeeping software for small businesses that do not have a bookkeeper: invoices, expenses, bank reconciliation, tax estimates and reports, with defaults sensible enough to use without training.
02
The problem worth solving
Existing accounting tools are built for accountants and terrify sole traders. A product that speaks in business language rather than double-entry vocabulary opens a large, underserved market.
03
Target audience
- Primary — Sole traders and small businesses doing their own books.
- Secondary — Accountants who want clean data from their clients.
04
Roles and permissions
- Visitor — read-only public pages, can sign up.
- Member — owns their own records, cannot see other users' data.
05
Core features
- Invoice creation, sending and payment tracking with reminders
- Expense capture including receipt photo and extraction
- Bank feed import and guided reconciliation
- Tax estimate for the current period
- Core reports: profit and loss, balance, aged receivables
- Accountant access with a read-only or edit role
Deliberately later
- Payroll
- Multi-currency
- Inventory
- Automated filing where supported
06
Technical stack
React app, Postgres with a strict double-entry ledger underneath a simplified interface, server functions for all posting logic.
Why: You can hide double-entry from the user, but the ledger must be correct and immutable underneath or the numbers will not survive an audit.
Alternatives: Simple income-and-expense tracking (much easier, breaks at the first accountant review) or building on an accounting API (fast, limits the product to a skin).
07
Conceptual data model
Organisation — name, tax jurisdiction, fiscal year, currency
Account — organisation, code, type, name (chart of accounts)
JournalEntry — organisation, date, description, lines (account, debit, credit)
Invoice — customer, items, tax, due date, status, payments
Expense — vendor, amount, tax, category, receipt file
BankTransaction — feed, date, amount, description, matched entry
08
Integrations
- Bank feeds or statement import
- Payment provider for invoice payment
- Receipt text extraction
- Email delivery
09
UI design principles
- Predictable structure, strong trust signals, consistent 8px spacing rhythm.
- Restrained brand colour on actions only; neutral surfaces everywhere else.
- Fast, accessible, and boring in the best way — nothing gets in the user's path.
10
Security considerations
- Immutable journal: corrections are reversing entries, never edits or deletes.
- Full audit log of who changed what and when, exportable.
- Role-based access per organisation with row-level security; accountant access is explicitly granted and revocable.
11
Development phases
Phase 1 — Prove the core
- — Invoice creation, sending and payment tracking with reminders
- — Expense capture including receipt photo and extraction
- — Bank feed import and guided reconciliation
- — Static content and design system in place
- — Basic analytics
Phase 2 — Make it real
- — Tax estimate for the current period
- — Core reports: profit and loss, balance, aged receivables
- — Accountant access with a read-only or edit role
- — Accounts, sign-in and password reset
- — Empty, loading and error states everywhere
Phase 3 — Polish and launch
- — Performance, accessibility and SEO pass
- — Legal pages, contact route and 404 handling
- — Wire up: Bank feeds or statement import
- — Wire up: Payment provider for invoice payment
Phase 4 — Grow
- — Payroll
- — Multi-currency
- — Inventory
- — Automated filing where supported
12
Challenges and solutions
Risk — Tax rules differ by country and change yearly
Solution — Isolate jurisdiction rules in versioned configuration and launch in one country only.
Risk — Users make accounting mistakes
Solution — Guardrails, plain-language warnings, and a health check that flags unbalanced or unreconciled periods.
Risk — Data migration from incumbents
Solution — A tested import for the two most common competitors' exports.
13
Future expansion
- Lending based on verified cash flow
- Accountant partner directory
- Industry-specific templates
14
Page list (13 pages)
- 01 APP (signed in) Dashboard — Cash position, overdue invoices, tax estimate.
- 02 PUBLIC Invoices — Create, send and track.
- 03 PUBLIC Expenses — Capture and categorise.
- 04 PUBLIC Reports — Profit and loss, balance, receivables.
- 05 APP (signed in) Settings — Organisation, chart of accounts, access.
- 06 AUTH Sign up — Create an account with email or a social provider.
- 07 AUTH Log in — Return to the account, with error and lockout states.
- 08 AUTH Reset password — Request a reset link and set a new password.
- 09 APP (signed in) Account settings — Profile, email, password, language and delete account.
- 10 PUBLIC Contact — Contact form plus real address, phone and email.
- 11 LEGAL & SYSTEM Privacy policy — What data is collected, why, and how to remove it.
- 12 LEGAL & SYSTEM Terms of service — Rules of use, liability and account termination.
- 13 LEGAL & SYSTEM 404 not found — Friendly dead end with search and links back.
15
Page map
PUBLIC AUTH APP (signed in) LEGAL & SYSTEM ─────────── ───────────────── ─────────────────── ─────────────────── ├─ Invoices ├─ Sign up ├─ Dashboard ├─ Privacy policy ├─ Expenses ├─ Log in ├─ Settings ├─ Terms of service ├─ Reports └─ Reset password └─ Account settings └─ 404 not found └─ Contact key flows: Dashboard ──▶ Invoices Dashboard ──▶ Expenses Invoices ──▶ Reports Settings ──▶ Dashboard
