Introducing Darwin: An Evolutionary App Framework

How Evolutionary Apps enable a better governance model for decentralized web applications



Published: 7/10/2023

Introducing Darwin: A framework for evolving decentralized web apps

What are Evolutionary Apps and how do they enable a better governance model for decentralized web applications?

What are Evolutionary Apps?

An Evolutionary App is a decentralized web application that evolves using a process of incentivized forking and a market-based governance mechanism that fuels the selection process.

Why not just have a DAO?

Although DAOs (Decentralized Autonomous Organisations) have recently been a prominent mechanism for updating dApps in web3, they’re not without their problems. In practice, DAOs (particularly large ones) come to resemble large corporations in the following ways:

  • They are often plutocratic which is the result of pareto-distribution of tokens as well as lack of incentives for participation.
  • User rights are not guaranteed in this system.
  • They are slow to innovate due to the nature of governance proposals.

What about forking?

Whilst forks enables permissionless innovation in a way that DAOs cannot, there remains limited reward incentives for individuals or groups to come along and improve the system in any meaningful way.

Ok, so how do Evolutionary Apps solve these problems?

Incentivized Forking

At the heart of the evolutionary framework is the concept of incentivized forking, which aims to fix the issues presented above.

How does this work?

Instead of spending a ton of energy and resources building a competing product and marketing it, developers would fork the existing app. This fork contains not just the application code, but also the data and tokens in the system, plus the added improvement and some newly minted tokens for your contribution.

If over time a contribution is deemed worthy by users it would become the default/selected version . The core incentive here is that in the case of an app (imagine a rapidly growing decentralized Twitter) that may already have growing network effects, devs are able to leverage the system to build an improvement and they will receive a reward if the following are agreed upon by users of the app:

  • The community deems their contribution to be a genuine improvement of the app.
  • The tokens they minted for their contribution are seen to be reasonable.

This effectively allows devs to acquire the existing user base.

Selection Process

Just as natural selection is a core mechanism of evolution, the selection process is a core mechanism of the Evolutionary App framework. This process for selection revolves around a few core components.

The first is the selection mechanism. This is the method by which the selected version is chosen. For example, the selection mechanism could be decided by the version with the most usage or it could implement STAMP Protocol to compare stamps across versions within a given period. The selection mechanism including the selection period/cadence is entirely up to each implementation of the evolutionary app framework.

The second component is the App Wrapper. The App Wrapper at its core is a permaweb app, containing a function that retrieves the result of the selection mechanism and redirects users to that version. In the case that STAMP Protocol is used as the selection mechanism, the function would find the version with the most stamps and redirect any users that land on the domain to that version.

What are the benefits of this system?

Immutable User Rights

Evolutionary Apps leverage the permanence that Arweave provides, so that no user in the system is forced to upgrade at any time. Each app version, and the App Wrapper itself are permaweb apps, meaning no individual or group can update it after the point of deployment.

Truly permissionless innovation

The reward incentive for improving an app, along with the permissionless nature of the protocol, allows for all builders to offer an improvement and gain a reward that is ultimately decided by the market.

User empowerment

A unique and very powerful aspect of the evolutionary framework is that by having users collectively drive the selection process, each user in the system is sovereign. They are able to utilize their voice in the system along with others to choose the way an app progresses over time, without ever being forced to use a particular version.

Collaborative competition

Instead of competition that is fuelled by domination of market share and the prospect of value extraction, individuals and groups in this system are competing to provide the most useful version of the application in the eyes of its users. This maintains long-term incentive alignment between devs and users.

Organic growth

Another core benefit of this system is that apps can grow organically without dependence on the initial creators. For example, if a dev has a weekend project and wanted to share it without the burden of long-term maintenance, they could deploy it as an evolutionary app. Then, if people find it useful and want to add new features they’re able to do so permissionlessly and earn a reward. The great thing about this is that the initial creator, even with dilution, will still see some financial upside from the value that comes from useful future versions.

This all sounds great, but up to this point it's all theory. What does it look like in practice?

Introducing Darwin ⚡

Darwin Hero Image

Darwin is an Evolutionary App Framework which facilitates the process of creating, forking and discovering evolutionary apps. It also contains the technical implementation of the App Wrapper component that redirects users to the currently selected version. It utilizes STAMP Protocol as the selection mechanism, particularly comparing only vouched stamps across versions to also include a layer of sybil resistance. Darwin consists of the following core components:

Dedicated CLI Tool

To facilitate the process of deploying a project as an evolutionary app, or forking a variant of an evolutionary app, developers can utilize the dedicated CLI darwin-apps.

App explorer

A hub for exploring and interacting with evolutionary apps. Users can visit the Darwin Explorer to discover evolutionary apps and search for particular versions if they wish to get more information about them.

Learn more

If you would like to learn more about the idea that inspired the Evolutionary App Framework, you can read about the Framework for Evolving Arweave. A huge shoutout to everyone that was involved in its research and development!

Get in touch

Darwin is currently in Alpha phase, so any feedback from developers and users alike on how we can improve the experience is more than welcome!

If you have any questions, feedback, or want to share/discuss ideas, you can reach us here.

Thanks so much for reading!