Skip to content

About

Tools for DJs and the people who book them, built on the AT Protocol.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

440 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Local Network

Tools for DJs and the people who book them, built on the AT Protocol. Each tool stands on its own; they share an Atmosphere account, a lexicon tree (computer.localnetwork.*), and file formats.

Tool What it is Built with
Local Network The website at localnetwork.computer: promoters find local DJs, DJs keep a profile, bookings run in private spaces SvelteKit, atproto spaces
locallibrary A command line tool and terminal player that keeps rekordbox USB drives in sync, backed up and edited Rust
localtoolbox A Chrome extension for digging on SoundCloud: track lists, download links, artists' socials, and a queue to batch them Svelte, Manifest V3

Layout

apps/web/             Local Network, the website (its README covers setup and deployment)
apps/locallibrary/    locallibrary's command line tool, player and sidecar, with its docs
apps/localtoolbox/    localtoolbox, the Chrome extension (its README is also its spec, checked by its tests)
lexicons/             Every tool's lexicons (computer.localnetwork.*); others' they use are fetched as published
crates/               Rust libraries: locallibrary's core and the loclib-* crates other DJ tools can use
plugins/              locallibrary's own plugins, each a crate on its plugin SDK
packages/tokens/      Shared colours for DJ data
packages/atstore/     Makes each tool's AT Store listing pictures (pnpm atstore)
vendor/               Vendored Rust crates
tools/oxlint/         The vendored anti-slop Oxlint plugin, for every TypeScript app

The repo root is both the pnpm workspace and the Cargo workspace, so commands run from here.

packages/tokens/colors.json holds the colours that mean the same thing wherever DJ data is drawn: waveform bands, phrase kinds, cue defaults, track colours, good, warning and critical, and the playhead. The website imports it, and crates/loclib-model/src/tokens.rs is generated from it for the player and the HTML report (LOCALLIBRARY_BLESS=1 cargo test -p loclib-model --test tokens regenerates it).

Working on it

The TypeScript apps need the Node.js version in .node-version (24) and pnpm. fnm picks up .node-version for you: run fnm install, then fnm use, or set up its shell hook (eval "$(fnm env --use-on-cd)") to switch on cd. The website's local network needs Docker (or OrbStack) running.

pnpm install                 # every TypeScript app's dependencies and the git hooks
pnpm dev                     # the website on a local network with demo accounts (http://127.0.0.1:5173), and the extension's watch build
pnpm verify                  # each app's format, lint, type check, tests and build, and the lexicons' format
pnpm atstore                 # each tool's AT Store icon, hero and screenshots (packages/atstore)

cargo build                  # locallibrary
cargo test --workspace --locked

The TypeScript apps share one lint config (.oxlintrc.json, which each app's own extends) and one format config (.oxfmtrc.json). CI runs each tool's checks only when its files (or the shared ones) change, and comments on a pull request with each tool's coverage and, for the website and the extension, its size against main. The slow suites (mutation testing, fuzzing, the website in every browser, the CLI's timings, a release build) run weekly, in the *-scheduled.yml workflows; a weekly run that fails opens an issue, which the next one that passes closes.

Contributing

Read .github/CONTRIBUTING.md before opening a pull request.

Adding a tool or plugin

Adding an app or plugin covers the whole stack (development, tests, CI, production and releases) and every place a new app or locallibrary plugin is registered.

License

MIT, see LICENSE.

About

Tools for DJs and the people who book them, built on the AT Protocol.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages