Offline mobile
Mobile shells are WebViews onto a remote deployment. True offline is a different product shape.
soli desktop build
is the offline engine (local SolidB). Phones do not embed that stack by default.
v1: outbox + sync
soli generate offline
soli db:migrate up
| Piece | Role |
|---|---|
POST /sync/push | Accept outbox items (session required) |
GET /sync/pull | Pull recent events for the user |
SyncEvent | Optional audit log |
public/js/soli_outbox.js | localStorage queue + flush on online |
skip_csrf("/sync/*") | Shell flushes may lack Origin |
soliOutbox.enqueue({ method: "POST", path: "/pings", body: { text: "hi" } })
await soliOutbox.flush()
Default push stores events — replace the loop with real model writes for your domain. The server stays the source of truth.
Out of v1
- Full embedded SolidB on iOS/Android
- Automatic CRDT conflict resolution
- Background location while offline — see Platform limits