ODE is built around two fundamental principles:
Users can build and run tailored data collection experiences.
Data should flow through the system, not be trapped inside it.
Synkronus is a data clearinghouse and synchronization service.
It facilitates data exchange between clients while enabling users to extract, retain, and work with their data locally.
Data clearinghouse and synchronization service.
Responsibilities:
- sync protocol (pull/push)
- authentication & user management
- app bundle distribution
- data export
- API for all clients
Mobile data collection runtime.
- JSONForms-based data capture
- custom app execution (webview)
- offline-first sync with Synkronus
Web-based operational client (React app).
- user and access management
- app bundle upload
- data export
- system administration
Portal is a standard API client — no privileged backend access.
Scriptable power-user and automation client.
- sync operations
- deployment workflows
- CI/CD integration
- admin tasks
Purpose:
Enable users to pull, retain, and curate data locally, reinforcing Synkronus as a clearinghouse.
Core capabilities:
- pull data from Synkronus
- store locally in JSON-first format
- inspect and modify records
- push corrected records back
Initial implementation:
- CLI-driven workflows
- optional Python helper scripts
Example workflow:
synk pull --out ./dataset
# inspect / modify JSON
synk push-json ./corrected-recordsOutcome:
- users gain true data ownership
- enables offline workflows
- establishes trust in ODE architecture
Purpose:
Introduce a more robust local datastore.
Design:
- JSON as canonical record format
- optional structured store (e.g. SQLite + JSON blobs)
- sync metadata tracking (dirty state, etc.)
Capabilities:
- track local modifications
- identify "dirty" records
- prepare push payloads
- support efficient querying
Purpose:
Provide a user-friendly interface for data stewardship.
Suggested tech:
- Tauri (webview-based desktop app)
Features:
- browse local datasets
- search and filter records
- JSON viewer/editor
- validation tools
- push corrections to Synkronus
- sync status visibility
Design principles:
- safe editing (no accidental writes)
- clear separation of local vs remote state
- audit-friendly workflows
Purpose:
Provide a desktop harness / workbench for running custom apps in a Formulus-like environment.
ODE Workshop enables developers to run, test, and debug custom applications locally against a runtime that mirrors Formulus.
Core capabilities:
- load custom app bundles
- run apps in a webview
- inject a
formulusAPIcompatible interface - use mock, local, or synced data
- debug and iterate rapidly
Key idea:
Develop custom apps against a local runtime that mirrors Formulus, then deploy with confidence.
Stretch goals:
- JSONForms editor
- FormPlayer desktop runtime
- live preview and test harness workflows
Shared foundations between Custodian and Workshop:
- local datastore
- sync engine (extracted from CLI)
formulusAPIabstraction- authentication/session handling
Architecture goal:
One backend, one sync contract, multiple specialized clients.
- Synkronus (data clearinghouse)
- Formulus (collection)
- Portal (admin/ops)
- CLI (automation)
- Custodian (local data stewardship)
- Workshop (custom app development)
It is a clearinghouse — data is expected to leave.
Tabular representations are derived, not primary.
Users should always be able to:
- extract
- store
- analyze
- curate
All components interact through the same backend API.
- Custodian = data stewardship
- Workshop = development
- Portal = operations
-
Implement CLI-based:
synk pullsynk push-json
-
Define local JSON storage convention
-
Provide basic scripting examples (Python)
-
Validate real-world workflow:
- pull → inspect → modify → push
ODE is:
An open, extensible, local-first data collection and processing ecosystem
With:
- flexible runtime (Formulus + custom apps)
- clean sync backbone (Synkronus)
- user-owned data workflows (Custodian)
- developer tooling (Workshop)