The Future of Software Distribution

headshot image, Adam Jesionowski

Adam Jesionowski

Nov 14, 2024

Software centralization exists on a spectrum between two poles. At one extreme are the hyperscalers like Google and Amazon. Most of the Internet’s population lives within gigantic server blocks owned by these companies. On the other pole are the P2P advocates, like Urbit and some blockchains. Here the cry is for every person to run a shared version of some program on their own node in the network.

According to urbitguide.com , there are about 5,400 Urbit ships online right now—a typical population for these types of projects and more than enough to sustain a vibrant, interesting community. Yet these projects struggle to attract the masses. I believe there is inherent complexity to software and its management when it is needed to perform useful tasks under real constraints, and that no amount of amount of engineering can be done to enable the common Internet user to become an owner and maintainer of a P2P server.

As such, in order to move beyond overly centralized control we have to look towards software topologies that live in the middle of these two poles, between a 1 to 1 and 1 billion to 1 user to owner ratio. Prior to the centralization effects of Facebook and the like, forums served as the primary repository of the Internet’s knowledge. These websites lived in the range of 10 to 100,000 users to an owner.

Today, we have need for software more complex than a forum. We have many more modalities for interacting with the networked world and increasingly wield better control over those modalities. Presently the benefits of these pieces of software continue to accrue to hyperscaler companies. Despite their advertisements asserting otherwise, when a single company is managing software for billions of users it cannot care for the needs of the actual individual. Their scale forces them to cater to the average of all possible needs while optimizing for advertising revenue.

The future of the Internet lies in the return of servers that manage 10 to 100,000 users. These sizes of clusters enable individual users to form a culture centered around their shared desires while being maintained by small teams. In moving to highly centralized spaces those cultures have lost something about being themselves. Once they realize they can have their own space, the masses will migrate to where they want to be.

Commercial Software

An Iron Law of Computing is that bytes are easy to copy and modify. Any software that attempts to circumvent this, such as Digital Rights Management, is inevitably broken by people offended at the breach of natural law.

Early Internet pioneers had utopian ideas of byte-freedom. Information was to be shared easily, freely, and without an expectation of return. In retrospect these pioneers were completely correct in the first two instances and missed how the third would rear its ugly head. Having the source available is key: we want to elevate the general understanding of what our computers are doing. However, building software involves even higher levels of inherent complexity than running a server. Writing good modern software demands a significant portion of an engineer’s time. While it is possible for that attention to be given purely of their own free time, this usually results in much less overall attention being paid to the software than if they were being paid to write it. For this reason free open software has been partially cannibalized by the needs of hyperscalar companies.

At FUTO we believe there is a simple solution to this dynamic: software should be easily copiable, free to modify, and cost money to purchase. Our own Immich is an example of a F/OSS project that is partially funded through the purchase of licenses. These licenses do not unlock any functionality, they simply state that the owner wanted to fund further development of Immich. Another example is fritzing : their code is open source, but downloading a binary requires a fee.

For our other applications, such as GrayJay , we have adopted our own commercial open source framework called Source First . These licenses enable us to hold firm to the idea that you should pay us for developing an application : modifications to the source code cannot remove the ability to pay us for our work. There has been a reflexive negative reaction to this that I understand: from a non-FUTO developer’s perspective their freedom has been restricted. I will ask you to consider the flip side: from our perspective we gain the freedom to continue to grow and develop this software without the kind of perverse incentives that hyperscalers suffer from. Further, we believe that more solo developers or small teams adopting similar commercial open source frameworks would enable them to work on their applications full time, resulting in a higher quality software ecosystem.

Advertising and selling user data collection are user hostile ways of making money; they’re extractive of attention. Selling copiable, inspectable, and modifiable software is an honest trade. A piece of software is a proof of work: it exists because someone sat down and made it and usually continues to sit down and write. A user can have a developer’s bytes (because this is an Iron Law of Computing), but the developer should rightfully expect something in return for their labor.

FUTOcore

FUTO is launching a new software distribution project called FUTOcore. FUTOcore software is commercial open source software that targets right-sized software topologies. We look ahead to a future where small developer teams help power new communities, ones which grow in health, virtue, and wealth, instead of being mired in the extractive slog of the tech oligarchies.

More information on our plans will come in the next few months. If you’re interested in (or currently are) developing FUTOcore software, please reach out to me at [email protected].