Office Manager
Platform, Modules & Open-Core Editions
All 26 modules, the Python and PostgreSQL architecture, the no-build-step web client, and where the AGPL community edition ends and the commercial modules begin.
The full reference
All 26 modules, in the product’s own groups.
Enumerated from the shipping web client’s registered routes, grouped as its own navigation groups them.
📥
Where the paperwork comes from
Collectors
- Invoices — The invoice registry — every invoice extracted from the mailbox or uploaded, with vendor, date, amount, currency and status, under maximum-filter search.
- Vendors — Who you actually pay, with their documents and history collected under each one.
- Documents — The encrypted document vault: contracts, receipts and anything else worth keeping, versioned and searchable.
- Paperless — Integration with an existing Paperless document archive, so a company that already has one does not run two.
- Scan — Capture a paper document, run it through extraction and file it into the registry.
- Connections — The mailbox and service connections — Gmail API or IMAP — and what each is permitted to read.
- Rules — The classification and routing rules that decide what an incoming document is and where it goes.
- Sends — Outbound document delivery: mail a document on the company’s behalf, on a schedule or on a trigger.
💳
Money in, money out, and the record
Finance
- Payments — What is owed, what is paid, and what is overdue — with the reminders that follow from it.
- Reports — Financial and operational reporting over the registry, exportable for an accountant.
- Billing — Billing built from tracked time — the bridge between the timesheet and an invoice you can actually send.
◷
The running of the place
Office
- Reminders — Obligations and deadlines, surfaced before they pass rather than after.
- Calendar — Company and personal calendar, synchronised, with the obligations on it.
- Timesheet — Time recorded against clients and projects, as the basis for billing rather than as an afterthought.
- Time — Time tracking itself — entries, projects and the running record.
- Time off — Leave and absence, tracked against the same calendar as everything else.
- To-do — Tasks, including the ones the system generated from an incoming document.
- Notes — Notes filed against a vendor, a project or a document.
- Contacts — The people and companies behind the paperwork.
◆
Dashboard, projects and the assistant
Across it
- Dashboard — What needs attention today — unpaid, unfiled, overdue, unread.
- Projects — Work organised as projects, wired to time, billing and documents.
- Assistant — An AI assistant over your own registry — ask what you paid a vendor last year, or what is outstanding, in words rather than filters.
- Briefing — A periodic summary of what happened and what is coming.
- Search — One search across invoices, documents, vendors, notes and contacts.
- Logs — The activity log — what the system did, when, and to what.
- Settings — Configuration, users and the edition’s feature switches.
Under it
Platform & architecture.
| Application | Python 3.12 · FastAPI · Uvicorn |
|---|---|
| Data | PostgreSQL 16 in production, SQLite for development — a genuine dual backend, not a migration path |
| Vault | A Fernet-encrypted local blob vault on the instance you run |
| Web client | A vanilla-JavaScript single-page app served by the application — no build step, no bundler, no toolchain to keep alive |
| Scheduler | In-process, for collection, reminders, obligations and scheduled sends |
| Gmail API and IMAP for collection; SMTP for outbound sends | |
| Extraction | Document classification and field extraction, with OCR for scanned and photographed paper |
| Apple clients | Native iPhone and iPad applications, plus an Apple Watch companion |
| Licensing | Open core — AGPL-3.0 for the community edition, proprietary for the commercial modules |
The web client is deliberately plain JavaScript with no build step. A product a business is expected to self-host for years should not require a front-end toolchain to still be alive in order to apply a patch.