Ara's sustainability model: make user-centric software, and refactor to MVC

I released the Whitepaper of Ara, which outlines a possible path toward OSS sustainability.

Although the whitepaper approaches this through a blockchain lens, Ara is not a blockchain project in the typical sense. Instead, blockchain is redefined as a protocol agreement that holds the semantics of open-source software.

The goal is the software ownership for the users, enabling customization and mashup of the software as the Lego bricks. In return, they fund and give a feedback to the OSS. This feedback generated by Ara helps to gradually refactor the OSS by MVC pattern: decouple data, view and the logic. So that web applications gradually turn into a remote service, providing the first web UI, but letting designers to change it, while all data hostage kept in the user’s side.

Could you give your opinion, about this sustainability model, after reading the whitepaper?

AraTalk

  • This SustainOSS is the place to discuss the aspect of the Ara. Criticism and collaboration are welcome.
  • For the blockchain aspect visit the Bitcointalk forum post (requires sign up to write)
  • For the vision, regarding vision and ideas visit the Feeling of Computing thread (requires sign in to read/write)
  • For anything else, website itself.

The Whitepaper

I already posted Ara two times as CascadeFund and as Ara post. This would be the final post regarding Ara here.

The whitepaper was moved to the server host:

ELI5? My Firefox LLM refuses to sum up the PDF. :person_shrugging:

EDIT: Maybe give an example - how would a “sustained” gcc look like with Ara. Right now it is just a repo with code, with some folks merging.

It’s a desktop environment that allows software to be treated as data, while desktop shell provides a tools to compose them, share them with others. To do this, there are blockchain used as recommendation engine, which means its decentralized. And also all software relationships are kept on a blockchain as well.

Let’s say, a user uses an application compiled with gcc . The semantics on blockchain will keep the dependencies, list of modules, and compilers it used. When that application receives a payment, it flows in a cascading way by the semantics.

The semantics provides gcc core developers a feedback on what is built, let’s say it’s using Make on Linux or Docker on Windows. Since GCC core libraries are coming with Linux or with Docker, gcc developers could remove the standard libraries making the code minimal as well. Plus, seeing that people largely use the game engines or system programming, developers could see a feedback what to build on it, as memory safety thing, instead parallel computation.

Okay. So we talk about GUI for package manager. And the GUI can show SBOMs. So it is not “software as data” (because everything is data), but “software as a list of components” (software bill of materials). SBOMs are what industry is trying to use to understand what ingredients their products consist of.

Now it is not clear how the blockchain is used to decentralize things. Especially as a recommendation engine. Blockchain is at most a database. Chain of blocks can not “recommend” anything by definition. It contain signed blocks of data that are hard to forge. So you propose to store what in these blocks?

When that application receives a payment, it flows in a cascading way by the semantics.

There were numerous projects that implemented that, BackYourStack and friends, but the problem that companies don’t want to pay. Main goal and purpose of a commercial company by law is making money. Mission is secondary, so blockchain or not blockchain, there is no incoming flow.

Since GCC core libraries are coming with Linux or with Docker, gcc developers could remove the standard libraries making the code minimal as well.

Actually, GCC core libraries come from GCC. Docker is written in Go. Linux ships compiled binaries for both Docker and GCC, and allows users to run them. So there is nothing to remove here. Maybe GCC is a bad example, after all.

Maybe you want to say that thanks to SBOMs merged into one decentralized database, people could see what is popular? Like GitHub stars on repos, but distributed. But that can be cheated quickly.

Blockchain is at most a database

It’s a misconception that often cited by blockchain people themselves. Database is one of the components, along with p2p network, public/private keypairs and cryptocurrency.

Blockchain is more like a deterministic state machine that with exact input at exact time you will always receive the exact output. Blockchain as p2p network ensures that deterministic machine doesn’t depend on anyone: which means even its authors can’t change it. Cryptocurrency plays a core role, to sustain the network alive and secure it. While database part to check the current state is valid without relying on one server.


People are feared of AI as it will take over the world :). For me, it’s the blockchain as “code is law” doing it. The techno-utopians who work on it are largely having a mistrust of people and trying to dictate web channel with the smartcontracts. It’s heading toward a dystopian world.

I still worked in it quite a lot, and I know few people whom I respect there. This criticism is to help the ecosystem with the very talents to make the blockchain vision real world without making it dystopian. In the whitepaper blockchain architecture itself is changed to prevent rich to rule it all.


Open-source is a good candidate to work with a blockchain, they share some common traits. But how to make them work together? I’ve seen attentions on it both on blockchain side, and on open-source side, for example by OpenCollective group. But for now these two ecosystems don’t get along well. Open-source has own problem namely devs are unnamed, not monetized.

There is also malleable softwares: a computer is a tool that people can reshape with minimal friction. The most prominent researcher right now is Bret Victor who designed iPads interface and Apple Watches. There are people who dream of Dynamicland, HyperCards etc. In short to make computers as dynamic medium instead of digital paper. But Malleable softwares has own problems too. Its largely creative people with narcissistic traits and wants to push by own name or doesn’t have distribution channels to make it popular on Internet.

There are people in malleable softwares, who talk about combining with the opens-source but it’s not working yet. I couldn’t find anyone talking about to marrying it with blockchain.


Combining a blockchain, open-source development and malleable systems together solve each others problems.

Now it is not clear how the blockchain is used to decentralize things. Especially as a recommendation engine.

Blockchain here plays three roles.

  • It’s a recommendation engine for users to discover applications by their intent since it’s on blockchain you can be sure it’s not business driven or paid up to promote something else.
  • It’s to store semantics of apps that’s then become foundation of recommendation engine. Since they are on network, people can check and verify it.
  • Third is cryptocurrency as it cascades the payment by the semantics.

Ara as an application is like Roblox. Instead of virtual game it’s the computer screen, instead of game assets it’s your actual data + softwares. People compose, built and share it with each other and recommendation engine acts for that.

Software semantics consists of three parts as outlined in whitepaper:

  • First is list of components that software has.
  • Second is SBOM
  • Third is user tests to show how components work together from a user perspective.

That list of components means users are able to change them, compose to a user-made software and discover it.

They don’t pay to open source as charity. They pay for the bundle of user-centric softwares that are composable and interoperable. How to make open source user centric? The maintainers split software layers into data, interface and logic by MVC pattern. Users are getting assurance of open source software

  • that they can change interface,
  • data is local.
  • and logic, interface are discoverable.
  • software work together to pipe what user wants.
  • and potentially earn from building user-made software. Although, incentive for it not designed on whitepaper, I left it to node operators. It’s like ChatGPT that allows users to create apps then to incorporate the most successful ones as its own tool. Blockchain here to prevent it.

The initial version of this project would be a donation platform: Users pay to open source with three options:

  • to lock the API,
  • to request features,
  • and also for Ara: which asks softwares to be refactoring to data locally, and to be compatible/composable with other apps in the network. Although as part of it, I will initially built a feature that can analyze the the used API by users, and suggest it to the users that could save their time. Some part of the funds could be locked in case of abandonment or breaking changes that will fund those who depend on it.

Then, collected data to use as the recommendation engine’s initial trained data.

Blockchain’s immutability is used right now to make a trustless application. But here I use it for opposite. To track the reputation. Once a person pushes adversary apps and gets caught up, his reputation is gone. Its permanent on blockchain and they can’t change it.

Ultimately, when all user’s data is local, and environment is shapable by the users, it works well with the local-first AI. I plan to keep the user behaviors recording to analyze the screen. Right now Rewind.ai or LLMs are doing it through screenshots. But with Ara they get access to the semantics which is faster, cheaper and more extendable. Its then custom LLMs creating own semantics per user to discover on recommendation engine. Then, another user’s LLM gets to the same intent and fetches the same semantics instead the one provided by desktop shell by default.

This user made semantics by their AI over time accumulates that I called as the collective wisdom, to make creative workspace on the computer.

For GCC, how Ara could play out, consider if someone made a better linter using Zig or Rust. Recommendation engine pushes it along with GCC, and it gives a feedback to GCC along with small fees to refactor the monolith into modules. And some parts slowly remove.


For the open-source sustainability, I have three metrics to consider do Ara achieved its goal for this community or not.

  1. If software maintainers organize their own meetup.com events where 10-100 star five people gather together to discuss how to make their apps compatible with each others: design the protocol or shared message data.
  2. If an old monolith is began refactoring into modular app that is then slowly replaced by new trends.
  3. If some unknown developer’s message, programming language or framework is then pushed and widespread again and giving a chance to anyone to make it viral.

If all three achieved then I completed my mission for oss sustainability. Money part here is to make software user-centric and it puts some constraints on the maintainers.

If the five maintainers for project management come up with the shared protocol or shared data models and it gets widespread across the ecosystem, if its people instead large organizations organizing consirtiums to push the protocols then I’ll be happier and I won’t regret my life while dying.

In short, it leads to maintainers to work on protocols and standards while giving interface to the designers and users. :slight_smile: