Our philosophy

The freedom to build,
connect, and leave.

We’re trying to realize the original internet’s promise using everything we’ve learned about software, cryptography, interaction design, and AI.

Anyone could build a client, run a server, or connect independent software without a platform’s permission. Our ambition is to make that freedom as easy to use as the best software today.

The foundation

Tools change.
Authority stays.

People and projects should control who can participate and what they can do. Apps, agents, and hosting services should be replaceable participants.

Person / Project

Identity · state · permissions

AppClientAgentHost
The architecture we’re working toward: shared, authorized state with independently replaceable tools.

Five design principles

Built to stay yours.

  1. Authority belongs to stakeholders.

    A person or project should remain the ultimate authority over its identity, permissions, and state. An application is an interface to that authority, not its owner.

  2. Applications are independently replaceable.

    Another developer should be able to build a compatible application without adopting LUFF’s infrastructure or design. Interfaces can be opinionated; the underlying contracts must be interoperable.

  3. Interoperability should feel effortless.

    People shouldn’t have to understand servers, cryptographic keys, or protocols to benefit from them. The secure, interoperable path should be the easiest path—including setup and recovery.

  4. Composition is more important than integration.

    Shared interfaces and authorized capabilities should let independent apps work together. Useful combinations should be possible without bespoke arrangements between vendors.

  5. Leaving is a normal operation.

    Changing apps, models, devices, or hosts should preserve the history and identity that matter. Exit should be designed and tested as an everyday operation.

How we build

Excellent apps.
Shared foundations.

Start with independently useful applications. Let real workflows and independent developers prove the shared contracts, then make them easy to use through SDKs, clear permissions, migrations, and recovery flows.

  1. Begin with the experience.

    Define what must survive a change of tools: a note’s source, a project’s history, or a person’s authority.

  2. Reuse what works.

    Investigate existing standards before introducing a new primitive. Adopt them when they preserve the experience and its invariants.

  3. Extend only what’s missing.

    Find the smallest necessary extension and, where possible, contribute it upstream.

One state. More ways to work.

A native interface for people, an established protocol for software, and structured capabilities for agents should operate on the same authorized state. AI can help make composition practical; it doesn’t get to redefine ownership or bypass permissions.

The test we want every product to pass

If LUFF disappears tomorrow?

Can someone maintain the application, recover their information and credentials, build a compatible client, and move to another service without losing what matters?

If it takes three hours to set up, the user experience is unfinished. Freedom and usability must both work.

We aim to earn our place through excellent software, implementations, optional hosting, and support—while leaving customers in control. These principles guide work in progress; each product has its own current capabilities.

Explore what we’re building