MOSIS local-first

/roadmap

Three horizons, and which rung is real today.

Device truth first, then linking two devices with no router at all, then a protocol somebody else implements. What is designed is marked designed — accepted as a decision is not the same as run.


One horizon is measurable. The other two are design.

  1. Horizon 1

    Device truth

    15 of 55 cells carry dev, all of them on one iPhone and one Mac. The rest need hardware nobody on this project owns.

    15 / 55 verified
  2. Horizon 2

    No shared network

    QUIC as the primary transport, plus the direct-link ladder below, so two devices can link with no router at all. Both decisions are accepted as design, and the ladder's second rung is already exercised on hardware. Soft-AP and manual hotspot are intent until their spikes pass.

    2 of 4 rungs proven
  3. Horizon 3

    A protocol other people implement

    Adoption makes a standard, not a declaration. One rung of eight is done, one is partly done, and the rung that actually confers standard-hood needs someone else to show up.

    1 of 8 rungs

The link ladder: two rungs down, two to go.

When there is no shared network, MOSIS walks down to whatever still works. The rail below is lit exactly as far as the evidence goes — and it now reaches the rung that needs no router.

  1. 01

    Shared LAN

    proven

    The status quo. mDNS discovery, direct dial, pinned mutual TLS — every session today runs here.

  2. 02

    Same-vendor P2P

    proven

    Apple↔Apple over AWDL has been exercised on real hardware. The Wi-Fi Aware half — iPhone↔iPad — is written and compile-verified; no byte has flowed over it.

  3. 03

    Soft-AP

    designed

    One device hosts an access point and the other joins. Linux and Windows can host outright; Android randomises the credentials.

  4. 04

    Manual hotspot

    designed

    The ladder must never dead-end: instruct the human to switch on Personal Hotspot, then detect the new link. UX and detection, not new radio code.

ADR 0017, the ladder in full →


Eight rungs to a standard. One is done.

A protocol becomes a standard when other people implement it, so most of this list is not code. It is publishing, registering and giving away control.

  1. Be real A standard nobody can run is not one. Device truth first. horizon 1
  2. Make the protocol a first-class artifact The wire format is documented and frozen at v1, with a change process. It is not yet an RFC-style versioned spec. partly
  3. Register the service names with IANA Free, real, and almost no hobby protocol bothers. Not filed. not started
  4. Weaponise conformance Golden vectors and runners are published and gate CI; IMPLEMENTORS.md is the write-a-client one-pager. done
  5. Seed a fourth implementation Someone else’s client, in a language the three do not cover. not started
  6. Coexist, don’t fight Document the honest relationship to KDE Connect, LocalSend and scrcpy. not started
  7. Governance, lightweight Commit rights offered once two external implementations exist. That is the rung that confers standard-hood. not started
  8. The formal option, later An IETF Informational Internet-Draft, once rung 7 exists. not started

Plan 04, with what would falsify it →


Five things this deliberately doesn't do.

A non-goal is a decision, not an omission. Each of these was chosen, and each one buys something else.

  1. Internet-range access Local-first is the design, not a limitation to fix later. A self-hosted relay stays optional future work, never a dependency. not building
  2. Accounts There is nothing to sign up for and nowhere to sign in. Pairing is two devices agreeing, with no third party. not building
  3. Telemetry No analytics, no crash upload, no phone-home — including from this website. not building
  4. A tablet as a second desktop, today Mirroring works; a genuine extra display needs a virtual display driver that is written and never compiled. not building
  5. Injecting input into iOS No entitlement exists for it. This is a platform wall, documented in the matrix, not a TODO. wall
wall
the platform forbids it (documented, not a TODO)

Every capability, with its evidence →