A small Bun + Effect web application with a deliberately structured
operational surface. It is the org reference for the preferred TypeScript
toolchain (Bun, tsgo, oxlint/oxfmt) and a Nix flake-parts + Prelude
devshell, without treating ops/ as a junk drawer.
Enter the Nix development shell (direnv will do this after direnv allow):
nix develop
bun installx # interactive command picker
x dev # Effect/Bun demo server
x check # tsgo typecheck
x test # Vitest
x lint # oxlint
x fmt # treefmt (alejandra + oxfmt)Open http://localhost:3000, or verify the API directly:
curl http://localhost:3000/api/statusRun the packaged application without entering a shell:
nix run .Run the equivalent containerized stack:
docker compose -f ops/compose/local.yaml up --buildSet OPS_DEMO_PORT if port 3000 is already in use.
apps/andpackages/are application source and reusable code.flake.nixandflake.lockremain at the root because Nix discovers flakes there.flake/is the intentionally thin public Nix-output layer.nix/demo/holds the Nix package implementation.nix/prelude.nixis the Prelude command catalogue.ops/contains operational configuration: containers, deployment bases, environment bindings, SOPS material, observability, and policies.
See ops/README.md for the boundary of each operational directory.
See AGENTS.md for the toolchain contract. Verify with
bun run check, bun run test, bun run lint, and nix flake check.
Private reference repository.