lofi-node
user-owned syncv0.1.3 · alpha · MIT
a machine of yours: laptop, NAS, corner server
A singular entry
Open the ticket.
No accounts, no OAuth, no server-side user table. A lofisync1. string carries the store's identity and a bearer secret riding the URL path, which is why the app needs zero changes to sync somewhere new. Click a field.
{
,
,
,
,
}256-bit secret, riding the path
Every request the app ever makes (sync WebSockets, catalogue reads) carries it with zero client changes. The node stores only a digest; the string is displayable once.
The normative spec lives with the node and renders here from the pinned source: the app-ticket contract.
Both repos test against the same conformance fixtures, so the string above can't drift quietly.
many apps, one store, no folklore
Apps are tenants. The store is yours.
A user's node can hold several lofi apps' data at once. Each app may provision only the tables under its own namespaces; everything else, a neighbor's tables and its access rules, rides through byte-for-byte. Run the story below; every step of it is a real, conformance-tested flow.
The full model: sliceable apps and shared stores and the hands-on version, provision a store.
Still curious?
- The data plane is Jazz 2 alpha, pinned exactly. A node must run the same alpha as the apps it serves; bumps are coordinated.
- Windows runs LAN-only. A documented native-build gap; the store works, pairing reports itself unavailable instead of degrading silently.
- Tickets are bearer credentials. Plain http is for trusted LANs; beyond one, front the gate with TLS.
- Storage is SQLite or memory, the engine's honest surface today. Replicate the file for off-site durability.
Keep going.
- Self-host a node: compile, init, ticket, enroll.
- Pair two homes: hole-punched, no static IPs.
- Provision a store: the merge, end to end.
- Tickets explained: scopes, revocation, posture.
- CLI · Configuration · HTTP: the reference shelf.
- API reference:
createSyncNodeand friends, generated from source. - /node/llms.txt: the node corpus for agents, separate from the framework's.