Skip to main content

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.

no_schemawrites would hang; provision before syncing

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.