Party Stack is an application framework that turns heterogenous backends into a typed, reactive, offline-first data layer.
- Backend seams for how to sync subsets of data + apply actions + upload attachments are handled through an
OntologyBackendAdapter. Initial adapters are Foundry, Salesforce, SQLite, Durable Object, and a standard remote adapter (you can put any other adapter on the server side of the remote transport). - Client seams for how to handle local blob storage, coordinated work, network connectivity monitoring, secret storage, data persistence, and browser authentication are handled through a
RuntimeAdapter. Initial adapters are browser, Expo, and node. - You define an ontology you would like to build against (e.g. see one here for our sample issue-tracker app), and generate types (you can also use
Inferinstead of generating types it's just slower). - You combine a backend adapter, a runtime adapter, and an ontology definition to create a
LiveOntology. You can write live queries against it, you can apply actions to it which go into an outbox which is optimistically replayed over the latest authoritative state and paused when the user needs to re-authenticate or network connectivity is missing, you can create/load attachments which get cached locally and occasionally garbage-collected based on size and recency-of-use, and much more!
Install the Vite+ CLI:
curl -fsSL https://vite.plus | bashThen install dependencies and check that everything works:
vp install
vp run ciRun vp install after pulling dependency changes.
vp run -r build # build the repo
vp run @party-stack/issue-tracker#dev # develop an app
vp run @party-stack/ontology#test # test a packageReplace the package name to work on another app or library. For library watch
builds, run vp pack --watch from the package directory.
Use vp fmt to format code, and run vp run ci before opening a pull request.
See each package's README for any additional setup.