Skip to Content
DevelopersOverview

Developer documentation

seedypod lives in one repository, seedypod/core : a Rust workspace for the hardware daemon in hal/, and TypeScript for the server (server/, src/) and the web UI (web/). It mirrors sleepypod ’s conventions (branching, CI, releases, ADRs, a Vercel demo and this Nextra site) so tooling and habits carry over.

Start here

pnpm install && pnpm dev # core :3000 (simulator), web :5173 pnpm test · pnpm tsc · pnpm lint # TypeScript checks pnpm hal:test # Rust cargo run --manifest-path hal/Cargo.toml -p hald -- --sim --stdout --ticks 3

dev is the integration branch and main is release-only. Commits are conventional, and every PR to main must be titled feat:, fix:, perf: or revert: because it cuts a release. Read the repository’s AGENTS.md and the ADRs before changing safety or contract code.

Clients

Everything a client needs is core’s API: tRPC (with the generated REST facade) and the live event stream at /api/ws. The web UI ships with core. The iPhone app lives in its own repository, seedypod/ios  (SwiftUI, AGPL-3.0); it ports sleepypod’s iOS transport and finds units over Bonjour (_seedypod._tcp), as recorded in ADR-0017.

Reference

About these pages

The pages under Hardware (except the contract overview) and Project are imported from docs/ in seedypod/core by scripts/import-docs.mjs, pinned to a commit shown at the bottom of each page. That folder is the source of truth: fix things there, then re-import.

Last updated on