Modules
Feature documentation for each module in the platform.
Suppliers Live
Routes: /suppliers, /suppliers/:id
Manage the company's supply chain. Each supplier record tracks contact info, category, relationship owner, goods supplied, and status.
Statuses
| Status | Meaning |
| Active | Current, trusted supplier |
| Pending | Under review / onboarding |
| Inactive | No longer used |
| Rejected | Failed vetting |
Documents
Five categories: Certifications, Contracts & Agreements, Quotes, Invoices, Other. Drag-and-drop upload directly to S3 via presigned URL.
Clients Live
Routes: /clients, /clients/:id
Manage client relationships with a sales pipeline model. Notes are inline-editable (click to edit, ⌘↵ to save).
Pipeline
Lead
→
Prospect
→
Proposal
→
Active
→
Inactive
Documents
Three categories: Contracts & Agreements, Quotes, Invoices.
People (HR) Live
Routes: /people, /people/:id
Employee records. Separate from platform users — an employee does not need a platform login. Optionally linked to a Cognito user via userId.
Key fields
firstName, lastName, fullName, jobTitle, department, employmentType, status, startDate, workEmail, personalEmail, phone, salary (annual GBP), managerId (links to another employee), userId (optional Cognito link), notes
Statuses
| Status | Meaning |
| Active | Currently employed |
| On leave | Temporarily absent |
| Terminated | No longer employed |
Documents
Four categories: Contracts, Right to Work, Qualifications, Other Docs.
Contacts Live
Route: /contacts, /contacts/:id
A cross-entity contact book. Each contact record represents a named person or company and can be linked to any number of suppliers and/or clients. Contacts are created automatically when a supplier or client is added (using the entity name as the contact name and the "Contact details" field as free-text contact info), and can also be created manually from the Contacts page.
Key fields
name (required), contactDetails (free-text — email, phone, address, etc.), linkedSuppliers[] (supplier IDs), linkedClients[] (client IDs), isPrimary (boolean — marks the primary contact for a supplier or client), notes, sourceType (manual | supplier | client), sourceId
Primary contacts
Each supplier and client detail page shows a "Primary contact" section (the contact with isPrimary: true linked to that entity) and an "Additional contacts" section for all others. The primary contact can be changed from the supplier or client detail page — the change is applied optimistically in the UI and two PATCH calls are fired in sequence to promote the new primary and demote the old one.
Linking
Linked suppliers and clients are shown in the contact detail modal and are clickable — they navigate directly to the supplier or client detail page. Additional supplier and client links can be added inline from the contact modal using the link picker.
Settings Live
Route: /settings (tenant admins only)
| Role | Permissions |
| Admin | Full access — manage team and all data |
| Contributor | Create and edit records |
| Read only | View only |
Admin back-office Live
Route: /admin (platform-admin group only)
Separate area with distinct dark sidebar. Inaccessible to tenant users. Manage all tenants — create, list, and permanently delete tenants with all their data.