Development

Practical workflow.
Minimal ceremony.

The repo is multi-crate but not conceptually huge. The best way to stay productive is to keep changes scoped and verify the exact package you touched.

Project layout

  • lattice-daemon/ for the network node and RPC server.
  • lattice/ for the CLI.
  • lattice-core/ for shared record and identity primitives.
  • fray/ for the forum app and embedded browser UI.

Default verification loop

cargo fmt
cargo check
cargo test -p fray
cargo test -p lattice-core

When changing a specific area, prefer the narrowest package-level test command first, then widen only if the change crosses crate boundaries.

Static site and embedded UI

Fray's browser UI is generated from Rust into a static HTML file. The docs site here is intentionally plain static HTML/CSS/JS so it can ship directly to Vercel without a build step.

Useful habits

  • Keep ownership, auth, and signature checks server-side.
  • Treat local mutation endpoints as privileged.
  • Prefer network-first ordering when local state mirrors published state.
  • Separate cleanup commits from behavior changes.