# Packages

Everything from `codec` to `modules` runs anywhere, and so does a `sandbox` compute room. `dom`,
`ui`, `icons` and `client` are the page, and the two page halves of `sandbox` sit over them;
`server` and `jobs` are the Node side; `auth` has a half on each. A package imports only from
its own tier or below, never across that line.

| Package | What it is |
|---|---|
| [`@aweftjs/codec`](/docs/packages/codec) | the encoding: values, deltas, commits, ids, positions |
| [`@aweftjs/core`](/docs/packages/core) | observables, the deltas they produce, commits, scopes, identity |
| [`@aweftjs/schema`](/docs/packages/schema) | the shape a document must keep, checked before a commit lands |
| [`@aweftjs/sync`](/docs/packages/sync) | commits between two documents over any channel, both ends equal |
| [`@aweftjs/store`](/docs/packages/store) | persistence over a driver; a memory driver and a Postgres driver ship |
| [`@aweftjs/modules`](/docs/packages/modules) | modules from directories, bundles or documents, loaded in dependency order |
| [`@aweftjs/sandbox`](/docs/packages/sandbox) | isolated rooms for module code that came from a document; `@aweftjs/sandbox/page` and `@aweftjs/sandbox/room` for a room with a page in it, an act in a frame |
| [`@aweftjs/dom`](/docs/packages/dom) | direct DOM binding, hydration and static render; `@aweftjs/dom/router` for URLs |
| [`@aweftjs/ui`](/docs/packages/ui) | components, theming, a stage for routed pages, head tags |
| [`@aweftjs/icons`](/docs/packages/icons) | icon sets as modules, one icon per import |
| [`@aweftjs/client`](/docs/packages/client) | one connection to a server for the life of a page |
| [`@aweftjs/server`](/docs/packages/server) | connections and requests behind a gate, over a listener you supply |
| [`@aweftjs/auth`](/docs/packages/auth) | the first battery: the gate, sessions, sign-in and sign-up, per-user state |
| [`@aweftjs/health`](/docs/packages/health) | the health battery: `GET /api/health`, 200 when the process and its store answer, with the application's own info beside |
| [`@aweftjs/static`](/docs/packages/static) | the static battery: a directory of files served for what no route matched |
| [`@aweftjs/logs`](/docs/packages/logs) | the logs battery: what a page and the server did, per visit, in the store, with readers any process imports |
| [`@aweftjs/uploads`](/docs/packages/uploads) | the uploads battery: a file from a page or a module, kept in a directory or a bucket and served at `/files/<id>`, with the application's rules in configuration |
| [`@aweftjs/notify`](/docs/packages/notify) | the notify battery: one send to a person over inbox, email and push, the inbox shared live on the page |
| [`@aweftjs/jobs`](/docs/packages/jobs) | a scheduler over an array of jobs the application holds |
| [`@aweftjs/ssg`](/docs/packages/ssg) | a routed site written out as files, taken over in place when the browser arrives |
| [`@aweftjs/build`](/docs/packages/build) | the vite plugin and the Node loader: JSX and markup to `h`, static hoisting, asserts out of a release |
| [`@aweftjs/testing`](/docs/packages/testing) | the harnesses the stack tests itself with, for a driver or a listener of your own |
| [`@aweftjs/debug`](/docs/packages/debug) | a document or a commit read back as text |
