بذور لغزةSeeds for Gaza
الموسوعةWiki

Platform Technical Overview

قريباًcoming

Platform Technical Overview

Who this document is for

  • Developers who want to contribute to or understand the codebase
  • Technically curious readers who want to know how the platform is built
  • Hub admins who want to understand how their data is stored and used

What the platform is

  • [A bilingual web application — Arabic and English throughout]
  • [Designed for resilience: works on low-bandwidth connections, no heavy JavaScript]
  • [Open source — [link to repository when public]]

How the site works — the basics

  • [Server-rendered HTML: every page is generated on the server, not in the browser]
  • [Why this matters: works on slow connections, no JavaScript required to read content]
  • [Bilingual: every page is available in Arabic and English simultaneously]

Current version (v0.1 — MVP)

  • [What is live: informational pages + proof-of-concept features with sample data]
  • [No database yet: content comes from JSON files]
  • [Hub registration: the one interactive feature — form, JSON download, email notification]

Planned versions

Version What it adds
v0.2 Database (seed catalogue, hubs, stock, gardens stored properly)
v0.3 Admin interface (hub admins can log in and manage their hub)
v0.4 Map (hub and garden locations)
v0.5 Stock management and event history
v1.0 Full feature set, individual seed wiki pages

Tech stack (for developers)

  • [Runtime: Bun]
  • [Framework: Hono]
  • [Language: TypeScript]
  • [Database: SQLite (v0.2+)]
  • [No client-side JavaScript frameworks]

How to run it locally

bun install
bun run dev
  • [Prerequisites: Bun installed]
  • [Environment variables needed: see .env.example]

How to contribute

  • [Contribution guide placeholder]
  • [How decisions are made: ADRs in docs/adr/]
  • [Domain glossary: CONTEXT.md]
  • [Code conventions: CLAUDE.md]

Privacy and security

  • [Minimum data collection — see docs/adr/0002-privacy-by-design.md]
  • [No personal names stored]
  • [Hub locations are approximate, not precise]
  • [Why this matters for participants in Gaza]

Architecture decisions

Key decisions and their reasoning are recorded in docs/adr/. Notable ones:

  • [ADR-0001: Why sowing windows use month arrays instead of ISO week numbers]
  • [ADR-0002: Privacy by design — why we minimise personal data]
  • [ADR-0003: Hub Code format — why random letters, not sequential numbers]
  • [ADR-0004: Working bee times stored as local datetime strings]