Multi-tenant means your data is yours, full stop
You're trusting us with estimates, hours, and payouts, the numbers your business runs on. Here's how the platform is built to keep them isolated, correct, and yours.
Strict tenant isolation
Every organization is separated at the data layer. One customer can never read, list, or reach another's data. Isolation is enforced in the code that touches the database, not hidden in the interface.
Role-based access control
Admin, Manager, and Developer roles gate what each person can see and do. Permissions are checked server-side on every request, not assumed from the UI.
Encrypted credentials
Passwords are hashed with bcrypt, never stored in plain text. Authentication uses JWTs with a per-request active-user check, so a disabled account can't keep acting on an old token.
Validated & rate-limited
Input is validated everywhere it enters the system. Rate limiting blunts abuse and brute-force attempts, and HTTP responses ship with hardened security headers.
Tenant-scoped file storage
Uploaded files are scoped to the organization that owns them, stored on S3/R2 object storage, the same isolation boundary as the rest of your data.
Audit logging
Security- and money-relevant actions are written to an activity log. When someone asks why a payout was approved six months from now, the answer is a record.
GDPR-minded data handling
We collect what's needed to run the service and nothing extra. Your organization can export its data, and it can delete it. Data ownership isn't a support ticket. It's a control you hold.
Export
Admins can export the organization's data for backup or migration.
Delete
Request deletion of your organization's data. Gone means gone.
Minimal collection
We process data to run the product, to authenticate, isolate, compute, and audit, not to profile you.
Built by engineers, on boring, proven tools
No exotic stack, no science projects. The pieces below are chosen because they're well understood and hold up.
TypeScript, end to end
One language and one type system from the API to the UI, so the same shapes are enforced everywhere.
Node & Express
A straightforward HTTP layer where the auth, validation, and rate-limiting live.
PostgreSQL
A relational database that takes the tenant-isolation and integrity constraints seriously.
React
The interface, including the live timer and the approval flows.
Stripe
Subscriptions, trials, and plan tiers for paying us. Not your developer payouts.
S3 / R2 object storage
Tenant-scoped file storage that sits behind the same isolation boundary.
This describes the product's architecture at a high level. It isn't a substitute for a signed security review. Talk to us for Enterprise security documentation.
Questions procurement will ask? We have answers.
SSO/SAML, advanced data controls, audit exports, and an SLA come with Enterprise.