Skip to main content

Repository boundaries

Keep the existing Next.js application in a separate UI repository, with Rust runtime contracts defined in the platform repository.

RepositoryContentsCurrent status
aidj-docsThis Docusaurus knowledge base, ADRs, RFCs, and delivery plansPresent
aidj-platformRust engine, adapters, and CLI workspaceScaffolded in the organization
aidj-uiNext.js/React platform UI using the daemon APIScaffolded from the supplied framework

Retain the existing documentation tooling. Moving to mdBook would be a separate tooling decision; it is not needed to establish the platform architecture.

Target software layout​

aidj-platform/
Cargo.toml
rust-toolchain.toml
crates/
dj-domain/
booth-engine/
virtual-booth/
audio-engine/
actors/
b2b-orchestrator/
sessions/
evaluation/
booth-api/
midi/
prodj-link/
rekordbox/
hardware-xdj-az/
hardware-cdj3000/
hardware-cdj3000x/
hardware-djma9/
apps/
boothd/
booth-cli/
booth-desktop/ # optional, later
tools/
midi-monitor/
prodj-sniffer/
packet-replay/
fixture-generator/
fixtures/
audio/
midi/
prodj-link/
rekordbox/
sessions/
tests/
integration/
simulator/
hardware/

The workspace includes compilable, explicitly empty boundaries for later milestones. Only the current milestone crates implement behavior. The first slice needs dj-domain, booth-engine, virtual-booth, booth-api, boothd, and the separate aidj-ui; hardware crate stubs explicitly claim no capabilities.

Dependency direction points toward dj-domain. The engine consumes domain types. Adapters implement engine-facing ports. boothd assembles the runtime. booth-api calls the engine; the UI consumes versioned API types and never links to hardware transports.

Use Rust for the headless runtime, Axum/Tokio for service I/O, and Next.js/React/TypeScript for the UI. Generate TypeScript contracts from a single schema source once the wire format stabilizes. Keep DSP execution outside the asynchronous I/O executor.

The Rust and UI repos own their executable tests and API contract conformance. This repo owns intent, evidence, decisions, and integration guidance.

Repository and package ownership​

All three are independent private repositories under prochain-aidj, not GitHub forks. Workspace packages use prochain- names and disable registry publishing. crates.io ownership and name reservation have not been established. Upstream code, if adapted later, requires pinned provenance and retained licenses/notices.