Getting started
Install a package, and how they fit together.
Install
Every package is on npm. The backend packages share one peer: effect, at
version 4.
bun add @voila.dev/effect-ddd @voila.dev/env effectImport a module by its path when the package has several
(@voila.dev/docs/navigation), or from the package itself when it exports
one entry point.
How they fit
- A contract and its adapters. A provider package (email, payments,
company data) implements a
Context.Serviceyou can replace, calls out through@voila.dev/httpand ships an in-memory fake for your tests. - No product vocabulary. The packages serve any B2B backend: your domain’s words live in your code, never in theirs.
- Tested boundaries.
@voila.dev/effect-dddturns the dependencies between your bounded contexts into a test, and@voila.dev/biome-pluginsadds the lint rules.
Work on the platform
git clone https://github.com/voila-voila-dev/platform
cd platform
bun install
bun run ci && bun run check-types && bun run test && bun run buildThe packages resolve each other through their sources (the
@voila.dev/source export condition), so nothing needs building while you
work. A change to a published package comes with a changeset
(bun run changeset).