Badges show the latest push to main. Green means the gate passed—not necessarily that historical debt is zero. React Doctor is advisory: its badge only confirms that the report was generated. Bundle Size uploads the scored iOS/Android maintenance-health.json artifact.
Monorepo for the Sovran Bitcoin wallet and its self-contained packages. Managed with Bun workspaces — no inter-package publishing; everything links directly.
| Package | Path | What it is |
|---|---|---|
| app | app/ |
The Expo / React Native application (the product). |
| wallet | wallet/ |
Payment UX logic for Coco-based Cashu wallets — parsing, classification, routing, annotation, offline suggestions. UI- and navigation-agnostic. (Formerly the colada repo.) |
| nostr | nostr/ |
Typed, UI-agnostic client helpers for the Nagg GraphQL / app-view APIs and the tiered Nostr data layer. (Formerly the nagg-ts repo.) |
| docs | docs/ |
The documentation site (VitePress). |
app depends on wallet and nostr via workspace:*; both ship raw TypeScript
(no build step). @sovranbitcoin/schemas remains an external package (shared with
the web properties) and resolves from GitHub Packages — see .npmrc.
bun install # installs the whole workspace
bun run dev # start the app (delegates to app/)
bun run docs:dev # start the docs sitebun run test and bun run type-check at the root cover the WHOLE workspace —
they fan out with bun run --filter '*', so app (both platform passes), wallet
and nostr all run. That is what CI runs. To scope to one package, filter it
(bun --filter wallet run test) or run it inside the package; focused Jest with
arguments has its own root alias, since arguments would otherwise be forwarded to
every package's runner:
bun run test:app -- <files> --runInBandThe remaining app commands (lint, knip, build:*, …) are still cd app
delegators at the root, or run them inside app/ directly. lint covers app/
only — wallet and nostr are not in its ESLint project. EAS builds run from
app/ (where eas.json lives).
Production automation, credentials, signing continuity, and operator validation
are documented in release/README.md. Publication is disabled
until explicitly configured and enabled.
bun run docs:dev # local dev server
bun run docs:build # static build → docs/.vitepress/dist
bun run docs:preview # preview the buildSee docs/README.md for more.