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

Live

Products with types and free-form attributes, prices stored in minor units, soft deletes, public read API plus dashboard CRUD.

Configurator

In development

Made-to-measure products: option rules and computed prices for stores that sell custom work.

Orders

In development

Carts, 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.

ScopeWhat it unlocks
commerce:readPublic product listing and detail endpoints
commerce:writeCreate and update products via the API
Get started