Skip to content

Licensing Eureaka

Rethinking how Substratum.cloud and File Orbit protects users and encourages healthy competition via licensing.

eading other software licensing AGPLv3 like Immich

AGPLv3 for the app. MIT/Apache for the seams.

I spent a while staring at Immich’s hosting story: they ship the photos app as GNU Affero GPL v3, then sell hosted work so the lights stay on. That is not a loophole. That is the point of AGPL. If you run a modified copy as a service, the people using that service get the source. Share-back, not a private rental cloud built on someone else’s evenings.

That is the shape I want for File Orbit, and for most of the Substratum stack that actually is the product: gateway, installer, explorer, home software. The protocol’s job is permissioned private storage that is both locked down and portable. AT Proto identity. Records you can leave with. Copies in homes you already pay electricity and internet for. If you have a reasonably modern computer, you should be able to run the modern web as a community, not as a handful of corporations that keep eroding at privacy and sovereignty.

TLDR: File Orbit application code is AGPLv3. Public lexicons and a couple of portable crates are MIT OR Apache-2.0 so other people can reuse the seams without swallowing the whole app. Hosted forks that change the app share those changes. I still charge for operated login and safety-net GB.

Why AGPL on the application

Permissive licensing on the whole product is generous in the abstract and naive in production. MIT on the installer, gateway, and explorer would maximize reuse in closed products too. A host could take the app, change it, never share, and sell “File Orbit, but ours.” I want competition. Yet I want them to challenge the community to better and by virtue File Orbit deserves to have sunlight to its modification. The competitive edge should be customer service and support not just code.

AGPLv3 is the license that matches that. It is still open source. You can self-host. You can fork. You can compete. You can charge. You cannot hide the version you actually run. If something is “free”, then it's because a company is mining you, you are the product. I am not offering the hosted service for free. The program should stay open to anyone willing to learn it and improve it. If you improve it, give back the way I am trying to.

I am not pretending a license stops a giant with a warehouse of servers. It is a strong rule against taking the app, closing it, and selling it. Families still choose who they trust with login and extra copies.

What is MIT OR Apache-2.0, and why

Leaving is part of the product. Sign-in is AT Protocol, so a handle can move. Ownership records use public schemas, so another implementation can still read them. If I AGPL’d those pieces, I would be holding the exit hostage.

So these stay dual-licensed MIT OR Apache-2.0:

  • @substratumcloud/lexicons / substratum-lexicons: the public cloud.substratum.* record shapes. Receipts, drives, Places. Easy to reuse in another app without taking File Orbit.
  • atproto-oidc-bridge: portable AT Proto to OIDC. Discourse and anyone else can wire identity without importing our product UI.
  • grafana-gatus-bridge: the same idea for status probes. Ops glue, not the family app.

Those crates already shipped with LICENSE-MIT and LICENSE-APACHE. They are the protocol seams that should be widely shared and not restrict usage for closed source. Fork the schemas. Speak the records. Do not have to take the whole stack.

Everything else in this repo that is the application (File Orbit UI, installer, gateway, billing/email composition, the rest of the workspace crates) is AGPLv3. Repo root LICENSE is the Affero text. Policy writeup: Open source (or docs/open-source.md in the repo).

What I will not do

I will not make the home app proprietary so self-hosters have to buy Cloud. I will not ship a “community edition” that strips home-to-home sync and sells it back. I will not pick a license that bans competing hosts. That would fight reuse. I would rather have rivals, and require that what they learn in production stays visible.

Paid services are operations: File Orbit login, safety-net copies on disks I run. I want it obvious how that money is made and what it guarantees. Sync between homes you trust is in the software, for people who never pay me.

Substratum is supposed to be a distributed, permissioned storage tool with both security and portability. AGPL on the app protects the vision of a community-driven tool everyone can see, audit, and benefit from. MIT/Apache on the lexicons and portable crates is how you leave without asking permission.

Until next time, peace nerds and normies!

~ Triforce

Did you enjoy this article?

Recommend it — Standard Reader surfaces well-loved writing to more readers across the network.

Across the AtmosphereDiscussions