- We’re open sourcing OpenWork: 3 “radically transparent” productivity apps backed by smart contracts. The suite comprises Kanban boards, team chat, and a vacation tracker.
- The smart contracts which underlie the apps are designed to put more control in the hands of the users versus traditional apps which allow for unilateral control by the operator.
- The apps can run on many persistence backends, from local relational databases, to managed cloud services, to blockchains. They can also be modified and extended by end users. This is what we mean by “radically transparent”.
- The OpenWork products are being used by us internally and should be of interest for anyone who cares about their collaboration tools being transparent, portable, and potentially distributed.
Following on from our last post announcing OpenWork, today we’re going to dive into each of the apps and their features.
There are 3 apps in the OpenWork suite today:
These apps have relatively complex workflows around their data which don’t fit naturally into the “currency transaction” model of other smart contract languages. The difference now is Daml, which makes building these apps much more straightforward.
Because Daml is portable these apps can run on any of the supported persistence backends: from centralized Postgres to enterprise blockchains like VMware’s. The smart contracts describe the privacy of the data as well, so even running on blockchains you can be sure of who can see what information.
The apps have all the standard features you’d expect (and if not feel free to open a PR!). Beyond that are some really novel features enabled by the fact that they’re built on smart contracts. We’ll dive into a couple in this post — “signatories” in Board and private conversations in Chat — which are designed to provide separation of concerns between infrastructure providers, application operators, and users.
OpenWork Board supports traditional access controls, such as read, write, or administrator permissions. However, if you take a look at the options you’ll notice there’s another: “signatory”. If the app operator ever wants to upgrade the board to a new model, boards will stay on their current data model until all the signatories have signed off on the update.
OpenWork Chat has private group chats, where only the users can see their messages. In a centralized system, such as our hosted cloud platform, the infrastructure provider may store the data unencrypted, but it will not be visible to the application operator, which is radically different from other cloud providers. When running on blockchains, Daml integrations provide support for encrypting transactions, which means that messages are opaque even to the infrastructure itself.
These properties mean that end users maintain a lot more control over their data than traditional apps. App authors benefit too, as they can be more confident about their data security and migrations. That control didn’t come at a huge amount of complexity to the models or the infrastructure as the Daml runtime and integrations handle most of the heavy lifting. This is the power of building your apps on top of smart contracts.
Giving end users control over their data goes further. One of the great things about smart contracts is that anyone can safely upload new logic to the service and know that it can never overwrite or conflict with existing permissions or processes. So why download and fork a SaaS tool if you want it to do something different? You should just be able to upload a new UI or smart contract code and modify the service in place. With OpenWork running on Daml smart contracts that’s possible today.
As mentioned in the last post, these apps are running at Digital Asset. We think that they have some very interesting properties, and if you agree, it’s worth trying the applications and seeing what you think. Of interest might be open source community projects who care about data portability and user consent for their collaboration tools. We have hosted versions of the apps, and it’s all open source so feel free to fork and PR for any features you’d love to see.
In the next post we’ll look in more detail at the future of the OpenWork suite.
Read the next post: What’s the Future for OpenWork?