About Corveek
Corveek is a multi-tenant mini ERP for organizations that have outgrown spreadsheets but do not want an implementation project. Finance and Human Resources are the core, with CMS and Business Partner alongside them — one sign-in, one permission model, one audit trail.
Why we built it
Small and mid-sized organizations get offered two extremes: tools so simple that Finance and HR never meet, or systems so large that adopting one is a year of consulting. Both leave the same gap — the same customer typed into three places, permissions that mean "everyone sees everything", and no answer to who changed a number.
Corveek is the middle. One party master that Finance and HR both refer to, permissions granular enough that staff see their own records and managers see the team's, and an audit trail that is on by default rather than a paid add-on. It is built for daily data entry: dense screens, full-page forms, keyboard-first, no animation to sit through.
What ships today
Finance
Invoices, credit notes, vendor bills, payments, and reports.
Human Resources
Employees, attendance, leave, payroll, and shifts.
CMS
Documents, media, knowledge base, and workspace administration.
Business Partner
Partners, customers, suppliers, contacts, and agreements.
Master Catalog
Vocabularies, master data, and the item catalogue.
Sales
Quotations, estimates, and sales orders.
Procurement
Purchase orders and the commitment of company spend.
How it is built
Isolation is structural
Every business record carries the organization it belongs to, and the filter lives in the shared data layer rather than in each screen. A query that forgets it cannot be written, so isolation does not depend on anyone remembering.
Deny by default
Nothing is reachable until a permission explicitly allows it, and every request is checked twice — for the action and for the specific records. Hidden buttons are a courtesy; the server is the boundary.
Nothing disappears quietly
Records are soft-deleted and every change is audited with who, when, from where, and the values before and after — on a stream separate from application logs.
Money is exact
Amounts are stored as integers, never floating point, and rendered with the precision and separators of your own currency and locale. What the ledger holds is what you read.
One identity, many organizations
Your account is global and your memberships are per organization, so an accountant serving three clients has one password and one sign-in, with different roles in each.
Built to be extended
Inventory, Procurement, CRM, Sales and the rest can be added without changing how tenancy, permissions or auditing work. Each new module inherits them rather than reimplementing them.
The stack underneath
- TypeScript end to end
- Strict, with shared contracts between API and apps.
- MariaDB and Redis
- Relational data, plus sessions, caching and job queues.
- Node.js 20 and Express
- One REST API, versioned, with a generated OpenAPI spec.
- Svelte 5 and Tailwind
- Compact, fast, keyboard-friendly, light and dark.
All configuration comes from environment variables and nothing is pinned to a hosted environment, so Corveek runs on our infrastructure or on yours.