← back

steer
Jan 18, 2026

Steer is a small but opinionated experiment in local‑first collaboration. It pairs a Dioxus LiveView front end with a libp2p-powered backend so you can ideate even when Wi‑Fi is flaky, then sync when peers appear. This post walks through how it works, how to run it, and what to demo.

What Steer Does

Architecture Snapshot

Running It Locally

Prereqs: Rust (stable), Git. No external DB or brokers required.

git clone https://github.com/your-org/steer.git
cd steer
cargo run --package steer -- \
  --http 127.0.0.1:8080 \
  --store memory

Then open http://127.0.0.1:8080/ in your browser. The UI loads ë.css for styling and connects to /ws for live updates.

File-backed store

Persist the log to disk and reuse it across restarts:

cargo run --package steer -- \
  --store file \
  --store-path ./data/steer.log

P2P toggles

Moderation knobs

Demo Script

  1. Create ideas: Propose a few ideas; note the single-line inputs and dotted containers. Show offline shell still working if you flip Chrome to offline (cached by SW).
  2. Voting + comments: Open comments, add replies, collapse threads. Observe live updates across two browser tabs (they share the same WebSocket and state).
  3. Moderation actions: Hide an event by ID, label it, then toggle "strict mode" to hide unapproved content. Grant/Revoke capabilities to a subject and see labels appear.
  4. Checkpoint/export: Click “Checkpoint now” to publish a checkpoint event, then download /export and re-import it to show idempotent ingestion.
  5. P2P peek (optional with two nodes): Run a second instance with --dial to the first; add ideas on one node and watch them appear on the other.

Notable Files

Operational Notes

Closing Thoughts Steer’s focus is ergonomics under bad networks: the UI stays responsive with or without peers, and synchronization is a best-effort background concern. The combination of Dioxus LiveView and libp2p keeps the stack lean while still giving you real-time collaboration and offline resilience.