ODS is an open spec plus multiple renderers for simple, data-driven apps. A builder writes a JSON spec describing pages, forms, lists, charts, and actions; a framework renders it as a fully functional application with persistence, auth, and a polished UI.
The philosophy: complexity is the framework’s job, simplicity is the builder’s experience.
This repository — ods-pages — is the first family in the ODS
ecosystem. Future families (ods-chat, ods-workflow, ods-game)
will live in sibling repositories under the same org.
Everything lives in a single monorepo so the spec and its renderers stay in lockstep.
| Folder | Purpose | Audience |
|---|---|---|
| Specification/ | The ODS spec — schema, examples, templates, themes, docs | spec authors, all renderers |
| Frameworks/flutter-local/ | Flutter renderer with local SQLite storage | desktop + mobile users |
| Frameworks/react-web/ | React web renderer backed by PocketBase | web users, admin builders |
| Frameworks/conformance/ | Cross-framework parity driver + scenarios | renderer implementers |
| BuildHelpers/ | AI-assistant prompts that help authors write specs | spec authors (via Claude/GPT) |
| docs/ | Architecture decisions, troubleshooting, ADRs | anyone digging in |
For the mental model — how these fit together, how data flows — see ARCHITECTURE.md.
cd Frameworks/react-web
npm install
npm run dev # Vite dev server on http://localhost:5173
You’ll need PocketBase running on 127.0.0.1:8090 for data/auth. For
E2E tests PocketBase is auto-managed; for manual dev download v0.25.9
from https://pocketbase.io/ and run pocketbase serve.
cd Frameworks/flutter-local
flutter pub get
flutter run -d windows # or macos, linux, ios, android
The framework stores data locally (SQLite under a user-chosen folder; see docs/TROUBLESHOOTING.md for the storage-folder bootstrap mechanism).
# React: unit + component
cd Frameworks/react-web && npm test
# React: E2E (auto-starts PocketBase)
cd Frameworks/react-web && npx playwright test --project=chromium
# Flutter: everything except @slow perf tests
cd Frameworks/flutter-local && flutter test --exclude-tags=slow
For current test counts, batches, and known skips see REGRESSION_LOG.md.
| If you want to… | Read |
|---|---|
| Understand how ODS is structured | ARCHITECTURE.md |
| Write an ODS spec for your own app | Specification/README.MD |
| Contribute a renderer or framework change | CONTRIBUTING.md + per-framework ARCHITECTURE.md |
| Look up an ODS term | GLOSSARY.md |
| Add or run tests | docs/testing.md |
| Diagnose a strange error | docs/TROUBLESHOOTING.md |
| See cross-family conventions | CONVENTIONS.md |
| See what’s planned next | TODO.md |
| Review design decisions | docs/adr/ |
| See the test history + bugs found | REGRESSION_LOG.md |
./publish.sh --status for a dry run.Pre-1.0. The spec and framework APIs are still evolving. Breaking changes are captured in REGRESSION_LOG.md; a CHANGELOG will arrive once releases start being cut.
MIT.