Local-first, decentralized app for traditional seeds
Find a file
vjrj d433748ab5 spike(block2): de-risk web of trust — the last big unknown
Adds TrustTransport as the third interface on the shared NostrConnection,
completing the social-layer happy path in the spike:

- WebOfTrust: pure, Flutter-free Duniter membership rule (N certs from members +
  within distance D of bootstrap referents), iterated to a fixpoint. The
  commons_core-worthy piece; TDD'd (threshold, distance cutoff, transitive
  growth, expired/revoked/self exclusion).
- NostrTrustTransport: certifications as a custom addressable kind (30777,
  keyed by issuer+subject) — certify renews, revoke replaces, certs expire.
- Trust filters spam (network-trust §2): seeds certify Alice; Eve stays
  uncertified; Bob discovers both offers and annotates authors — Alice known,
  Eve unknown — all over ONE shared connection.

Findings updated: WoT risk High -> Medium (policy/bootstrap, not feasibility);
overall scope Medium-High -> Medium — all three transport contracts now proven.
30 tests green, analyzer clean, Block 1 untouched.
2026-07-10 02:17:35 +02:00
.run docs(block1): status marker + IntelliJ run config 2026-07-07 22:14:53 +02:00
apps/app_seeds Merge branch 'main' into claude/trusting-shannon-ff64dd 2026-07-09 23:56:45 +02:00
docs spike(block2): de-risk web of trust — the last big unknown 2026-07-10 02:17:35 +02:00
packages/commons_core feat(backup): sealed backups + printable recovery sheet 2026-07-09 22:32:13 +02:00
.gitignore Initial import: mockups, visual identity, stock photos, project plan, README 2026-07-06 23:58:31 +02:00
.gitlab-ci.yml ci: manual Windows desktop build job (allow_failure) 2026-07-09 21:48:14 +02:00
analysis_options.yaml feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
CHANGELOG.md chore(release): beta packaging — signing, changelog, store metadata, scale test 2026-07-09 23:10:01 +02:00
CLAUDE.md docs(agents): codify international-by-design and human-words golden rules 2026-07-09 21:48:14 +02:00
LICENSE feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
PLAN.md Note optional Darwin Core / GBIF / ALA biodiversity-portal bridge as a deferred, opt-in intention (open-decisions C + data-notes 3-bis), with privacy guardrails; not a phase or model change 2026-07-07 11:38:51 +02:00
pubspec.lock feat(backup): sealed backups + printable recovery sheet 2026-07-09 22:32:13 +02:00
pubspec.yaml feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
README.md Note optional Darwin Core / GBIF / ALA biodiversity-portal bridge as a deferred, opt-in intention (open-decisions C + data-notes 3-bis), with privacy guardrails; not a phase or model change 2026-07-07 11:38:51 +02:00
seedks.ttf Fix naming (Seedks->Tanemaki) in PLAN; reconcile data-model with core/domain boundary (Plantare->Pledge, Movement->LedgerEntry notes); fix quantity_label type nit; note social layer as one indivisible block in VISION; add seedks.ttf asset 2026-07-07 11:06:38 +02:00
VISION.md Note optional Darwin Core / GBIF / ALA biodiversity-portal bridge as a deferred, opt-in intention (open-decisions C + data-notes 3-bis), with privacy guardrails; not a phase or model change 2026-07-07 11:38:51 +02:00

Tanemaki 種まき

A local-first, decentralized app for managing and sharing traditional seeds and seedlings.

Tanemaki (種まき, "to sow / scatter seeds" in Japanese; short name Tane, 種 "seed") helps people and collectives keep a friendly inventory of their seed bank, decide what they offer, and share it locally — without a central intermediary that could control, censor, or be fined for it. The goal is both practical and political: to support traditional seed varieties and push back against the seed monopoly.

The name honors the old Japanese mutual-aid traditions around rice — yui (shared community labor) and tanomoshi (reciprocity funds) — that inspired the paper Plantare, the "community currency for seed exchange" (BAH-Semillero, 2009, CC-BY-SA). Tanemaki is the digital Plantare.

Status

Early design. See PLAN.md for the full analysis and roadmap (in Spanish). The valuable prior work lives in docs/mockups/.

Principles

  • Local-first. Works fully offline, no account, no central server. Stays useful even if no one maintains it.
  • Decentralized. Identity is a single key you own (Duniter/Ğ1-style, with a derived subkey for transport); sharing rides on open protocols (Nostr), with optional interoperability with the Ğ1/Duniter web of trust and currency. Never a central marketplace.
  • Free/libre. Copyleft software, open data formats, multilingual from day one.
  • Layered. Inventory -> Offer -> Local sharing -> Web of trust. Each layer is useful on its own.

Conventions

English is the project language for all code. Identifiers, class/field/column names, code comments, commit messages, branch names, and technical documents (data model, schemas) are written in English, without exception. This keeps the project contributable by anyone, anywhere.

  • User-facing strings are never hardcoded — they go through i18n (the app itself is multilingual by design).
  • Planning and discussion documents may be written in Spanish (e.g. PLAN.md, docs/design/data-notes.md); technical specs that feed code are in English (e.g. docs/design/data-model.md).
  • Database schema changes ship as versioned Drift migrations (drift_schemas/), one new version per change, never editing a released version. See docs/design/data-model.md §5.

License

Software: AGPL-3.0 (GPLv3 strengthened with the network clause; compatible with GPLv3 and with Duniter/Ğ1nkgo, which we reuse). Docs & assets under CC-BY-SA where noted.