What ships with every store.
Borkol is a kernel plus modules. The kernel handles tenancy, identity, and API access. Modules add what your store actually sells.
Multi-tenant from the first migration.
Tenant isolation by default
Every domain table is tenant scoped at the model layer. Cross-tenant reads are impossible to write by accident.
Three separate identities
Platform admins, store staff, and API consumers authenticate through separate guards with separate token lifecycles.
Roles per store
Role-based permissions are scoped to the store, so the same person can be owner of one store and staff in another.
Audit log built in
Sensitive actions are recorded per tenant and reviewable from the admin panel.
Switch modules on per store.
A module registry tracks what each store has enabled. Disabled modules do not route, do not answer, and do not clutter the dashboard.
Commerce
LiveProducts with types and free-form attributes, prices stored in minor units, soft deletes, public read API plus dashboard CRUD.
Configurator
In developmentMade-to-measure products: option rules and computed prices for stores that sell custom work.
Orders
In developmentCarts, checkout, and stock on the same tenant-scoped kernel.
Scoped keys, honest limits.
Each store issues its own API keys and decides what they can do. Requests are rate limited per tenant, and the API is documented with OpenAPI.
| Scope | What it unlocks |
|---|---|
| commerce:read | Public product listing and detail endpoints |
| commerce:write | Create and update products via the API |