Security
Integrity first, because these are financial records.
Most of what protects your books here is structural rather than procedural — the kind of guarantee the database enforces whether or not the application code remembers to.
Integrity
Wrong data can't be written in the first place
These are constraints, not conventions. A bug in a feature can't route around them.
Balance is a database constraint
Debits must equal credits. It’s checked by a deferred constraint trigger at the moment the transaction commits, so a half-written journal entry cannot exist even if something crashes mid-write.
Tenants can't bleed into each other
Ledger rows carry composite foreign keys that include the organization, so a line referencing another organization’s account is rejected by the schema rather than caught by a filter someone forgot to add.
Whole cents, never floats
Money is stored and computed as integer cents from end to end. There is no floating-point rounding to accumulate into a variance you can’t explain.
Append-only audit log
Every create, edit and void is recorded with who did it and when, in a log that only ever grows.
Void, never delete
Correcting a transaction voids it and leaves the original in place. History doesn’t silently change under a report you already filed.
Closed periods lock
Close a month or a year and entries on or before that date are refused. Last year’s filed numbers stay the numbers you filed.
Access
Fewer ways in means fewer ways in
No passwords to steal
Sign-in is a one-time code sent to your email. There is no password database to breach, reuse or phish, and codes expire in ten minutes.
Roles that actually restrict
Owner, admin, member and accountant. The accountant role is read-only and enforced on the server, not by hiding buttons.
Server-side authorization
Every server action derives your organization and role from your session and the URL, in one place, on every request. A client can ask for another organization’s data; it will not get it.
Infrastructure
Where your data lives
Named plainly, so you can evaluate it yourself.
Due North runs on Vercel, with Postgres hosted by Neon in the United States. Traffic is encrypted in transit with TLS, and data is encrypted at rest by the database provider. Email delivery is handled by Resend and payments by Stripe — card details go directly to Stripe and never touch our servers or our database.
The full list of third parties that can process your data, and what each one is used for, is on the subprocessors page.
What we don’t claim: Due North is a small, independent product and has not been through a SOC 2 audit or a third-party penetration test. If your business needs either, you should know that before you sign up rather than after. What is written above is a description of how the system is built, and it can be verified by asking pointed questions — which we will answer.
Reporting a problem
Found something? Tell us.
Security reports get a reply within two business days. We won't threaten you for looking, and we'll credit you if you'd like to be credited.
Start with your real books.
Import your QuickBooks or Quicken history, check it against the reports you already trust, and only keep going if it matches.