A decentralized biodiversity observation platform built on the AT Protocol.
Observ.ing lets users record and share biodiversity observations on the federated AT Protocol network. Data follows Darwin Core standards for scientific interoperability.
Your data, your server - Observations are stored on your Personal Data Server (PDS), not a central database.
Prerequisites: Node 26+, Rust (auto-pinned by rust-toolchain.toml),
PostgreSQL (14+) with PostGIS,
process-compose,
ONNX Runtime (brew install onnxruntime on macOS), and optionally Go
for building the tap binary. Details in
docs/development.md.
cp .env.example .env # tweak DATABASE_URL etc. as needed
npm run setup # one-time: prereqs, deps, tap, models
npm run db:up # start Postgres + PostGIS (or adopt a running one)
process-compose up -D # runs migrations, then starts services
open http://127.0.0.1:3000 # use 127.0.0.1, not localhost, or OAuth login won't stickIf anything goes wrong, npm run doctor walks every prerequisite the
stack needs and prints what's missing.
Cold setup downloads ~1.4 GB of models and compiles the full Rust workspace — budget 20–40 minutes the first time.
- Development — local setup, commands, services
- Contributing — PR flow, formatting, CI gates
- Architecture — system design and components
- Deployment — Cloud Run deployment
- CI — why the CI jobs are set up the way they are
- Infrastructure — what runs in production, how it's sized, and why
- Darwin Core — lexicon schemas
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.