Local-first, decentralized app for traditional seeds
Find a file
vjrj 61f54cc0db
All checks were successful
ci / analyze (push) Successful in 1m9s
ci / test-commons-core (push) Successful in 41s
ci / test-app-seeds (push) Successful in 5m52s
ci(forgejo): turn off format gate, fix locale-fragile settings test
Format: repo predates Dart 3.11's tall formatter (~128 files would need a
dedicated reformat commit); disable --set-exit-if-changed for now, keep
flutter analyze as the real gate.

Test: 'drawer Settings opens the settings screen' asserted find.text('Español'),
which only holds when the resolved locale is Spanish. Under AppLocale.en (as
set in the test) the tile reads 'English', so it failed under CI's non-Spanish
host locale. Assert by the language selector's Key + icon instead (locale-robust).
2026-07-16 12:21:27 +02:00
.forgejo/workflows ci(forgejo): turn off format gate, fix locale-fragile settings test 2026-07-16 12:21:27 +02:00
.run docs(block1): status marker + IntelliJ run config 2026-07-07 22:14:53 +02:00
apps/app_seeds ci(forgejo): turn off format gate, fix locale-fragile settings test 2026-07-16 12:21:27 +02:00
docs docs(release): note Forgejo Actions runner is missing on aaron + keystore alias 2026-07-16 03:15:18 +02:00
packages/commons_core feat(plantare): PlantareTransport foundation in commons_core 2026-07-14 11:21:46 +02:00
site i18n(site): convert Hugo i18n TOML->go-i18n JSON for Weblate 2026-07-15 19:42:54 +02:00
.gitignore Initial import: mockups, visual identity, stock photos, project plan, README 2026-07-06 23:58:31 +02:00
analysis_options.yaml feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
CHANGELOG.md docs: rename Tanemaki → Tane in design docs and notes 2026-07-12 13:09:12 +02:00
CLAUDE.md docs(claude): record the widget-test hang gotcha + OS timeout wrapper 2026-07-15 01:28:20 +02:00
LICENSE feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
PLAN.md docs: finish Tanemaki → Tane rename (user-facing docs + origin doc) 2026-07-12 13:13:56 +02:00
pubspec.lock feat(profile): Material default avatar + square photo crop 2026-07-12 23:39:56 +02:00
pubspec.yaml refactor(branding): rename app Tanemaki → Tane 2026-07-12 13:04:16 +02:00
README.md docs: finish Tanemaki → Tane rename (user-facing docs + origin doc) 2026-07-12 13:13:56 +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
TRANSLATIONS.md docs(i18n): correct site Weblate format to go-i18n-json-v2 2026-07-15 19:46:16 +02:00
VISION.md docs: finish Tanemaki → Tane rename (user-facing docs + origin doc) 2026-07-12 13:13:56 +02:00

Tane 種

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

Tane (種, "seed" in Japanese) 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. Its name comes from tanemaki (種まき), "to sow / scatter seeds". 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). Tane 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.