Power Pottery is the work-in-progress name for this project that is outlined within this proposal: to build a platform for communities and their currencies. The name is chosen to signify the regeneration of needed power in communities with their already reachable resources; such as the earth/soil and the bodily collective wisdom as means to orchestrate the natural resources in order to holistically meet their needs & desires.
- PP = Power Pottery
- CC = Community Currency
- CIC = Community Inclusion Currency (developed by Grassroots Economics)
PP is intended to be built for meeting one generic purpose:
Digitally create a platform for peer-to-peer usage in order to enable and maintain various operations dedicated for members of each community who trade with their dedicated community currency (CC). These operations will consist primarily of digital tools for enabling and easing local commerce, but also administering a set of sociocultural activities as well; such as *education, arts & culture, care & treatment in order for local communities to economically, artistically and socioculturally prosper and flourish.
- Platform will host a variety of communities (as one can say DAOs in blockchain terminology) and currencies to coexist in one platform within their autonomous nodes that will be reachable on a subdomain: i.e. mycommunity.powerpottery.com
- Different concept models for CCs such as CICs can be registered, issued, monitored, administered in the platform
- Every each CC for a community created will be supplied with the platform tools to be served solely for the purpose of their community members
- Every verified member can use the services to post their offers as ads since they are presenting to the community for purchase (or perhaps gift)
- The UI may be required to connect to a blockchain API or another web based server backend
- The software used for the platform needs to be open source without problematic license
- Web based, but potential ability for launching native app clients too
- Ability to onboard from anywhere in the world
- Easy to use, not complicated, not only for technically literate people
- Possibilities to have international support with multiple languages in the mid/long run
- Commitment (by the stakeholders) to no mere profit-orientation for the design of the platform and a necessary requirement for all collaborators to commit to that
- It is proposed that Cocoso, a high-level software framework designed and developed by the author of this proposal over a few years, is used. Because it already includes majority of the necessary features. However, it is possible to integrate different technologies into the platform as well, since Cocoso is not required to be used as an entire standalone solution. More info on Cocoso is provided below in the document.
This platform is to be built inspired by principles that have been developed and engineered at the Grassroots Economics, which are to help create, maintain and grow prosperous communities that are local and sustainable, using their own currencies at stake. CICs are powered by the bonding curve formula enabling exchange of them with Fiat based currencies that are initially reserved as collateral.
Various operations stated in the brief in this context have mainly to do with people communicating with one another in the economic and sociocultural realm. Basically people want to publish what they are selling on the internet in order to communicate and promote their offers and make information about their offers accessible so that they can earn their income by enabling purchases by others, using it as their local marketplace. However it is important to note that this is not necessarily a typical "e-commerce" websites that is designed for usage of millions of people and thus contain a lot of sophisticated features such as reviews, shipping etc.
For such a project as CIC and PP that aren’t profit oriented, the economic basis of human-to-human interactions doesn’t end with just showcasing products and services to others for sale. There is globally a massive shift in economic dynamics; and as the creators of these systems we can supply necessary tools and culture creation devices for people to cooperate better, more than compete with one another; by the means of our tools being designed for fostering common good in the service of communities of various purposes.
Living in an age in which almost all digital tools we’re using are somehow created with a purpose of feeding billionaire(s) behind them means that all the features provided in these tools are ultimately designed and built to serve their relevant interest: earned them more profit. However, another way is possible. And yet could be much easier to develop and use, without turning these systems we develop into attention loopholes and alert machines or surveillant spies.
Marketplace feature extends Works in Cocoso.
Arguably a marketplace is the primary feature currently required to launch PP. It is basically a set of entries in the form of offers dedicated to promote goods and services by its seller. Particularly uploading an image or a set of images will often be required, as well as tools to maintain and optimise them (such as resizing and sorting).
Marketplace may also require certain navigation features such as categories and geolocation in order to provide easy access to Offer pages.
Training Programs and Culture Facilitation
For the 21st century digital users, it’s hard to imagine an economy that is not based on information and knowledge sharing. Thanks to builtin feature Processes at Cocoso, it is possible to encourage and enable an economy that leverages learning activities in the communities that use their own currencies. Processes could also be used as a logger for any kind of collaborative, continuous and cocreative work.
By using the features outlined, it is possible to facilitate alternative training programs by anyone in a community, and optionally get paid for their work.
Public Activities like Flee Market or a Bazaar
Extending the feature Public Activities, a user can be enabled to create a public activity in their neighbourhood to host and facilitate a temporary event, like a bazaar. When relevant, this feature could be introduced in order to provide a culture of sharing, cocreation, artistic performances and such; to foster engagement in community localities.
The more these kinds of activities happen the more will collaterals and trust be maintained in each community, which in turn will serve the fundamental purpose: autonomous, prosperous and sustainable communities.
Resource Sharing & Calendar
Each community can have a set of shared resources to be used by its members collaboratively. This could easily be applied to a culture space, or a collective with common resources such as cinema, theatre, office desk, printer, spa, sauna etc.
Resource Sharing and Calendar work with one another very tightly. Indeed Calendar is the visual language enabling Resource Sharing, as well as a GUI to show what’s happening in the community.
For more info, visit here: https://cocoso.infinitesimals.space/#Resources
and here: https://cocoso.infinitesimals.space/#Calendar
An integrated wallet that is probably limited to executing and monitoring transactions of blockchain based CCs in use can be part of this application platform. In the current use case of CICs by the Grassroots Economics with Sarafu network, many users rely on USSD as an interface that doesn't require smart phones but do require at least feature phones (old school mobile phone). Therefore the intention with this integrated wallet is to progressively enhance and potentially replace the requirement of USSD, because many users in the developing world are more and more adopting smart phones. It is not necessarily intended that we create a wallet for all kinds of crypto exchange etc. Rather we imagine of a few getter and setter functions connecting to a blockchain API for people to be able to have an overview of their transactions easily, and command new ones to purchase items in the also-integrated marketplace; with a touch of a button and some authorisation.
Admins of any community can create pages informing public about basically anything. By this way, communities can use PP also as their public web pages.
This feature could well be fit to use specifically for the information of the initial smart contract deployed in the blockchain for the creation of CC. In addition to that, any sort of particular information required to be transparently and publicly accessed by all community members.
For more info: https://cocoso.infinitesimals.space/#Info
Every user can easily create an account and continue their operations from there. This is built on top of Meteor’s accounts system, which has proven to work very powerful. Meteor is the development framework that Cocoso is based on. Check here: https://www.meteor.com (more info below)
Accounts feature can easily be extended to have further information for each user such as an avatar, phone number, account number etc. Passwords are automatically encrypted in the database so system admins won’t be able to track them.
The way accounts work for the multi tenancy feature in Cocoso is each account is global, but can have different privileges in different tenant spaces (communities). This will allow users to have relation to each other even in between communities while keeping their privileges only in their own communities. Probably vast majority of users will only do operations within one community, but by this design the system doesn’t necessarily dictate it.
For more info: https://cocoso.infinitesimals.space/#Members
One Platform, One Server, One Database: Many Communities
To be able to create a platform that would enable such operations for different communities require an architecture that supports multi-tenancy feature (as in software development). The business term associated with this architecture is commonly known as SaaP: Software as a Service.
For web-based systems, generally there are three approaches to address the requirements for multiple tenants in a single system:
- Using Subdomains, like:
- Using Routes, like:
- Using invisible states on top of authentication
There are advantages and disadvantages to all use cases. Generally speaking, subdomain approach is more often preferred due to more semantic and autonomous repercussions although it may have technical challenges in scale. The reasons whether it is regarded more appropriate usually depends on the extent of the relations between users and tenants (communities) in between one another. But it is of course about how the solution is architected as well.
With this proposal, it’s suggested to use subdomain approach. The reasoning behind is that communities will have more autonomy in their internal dynamics by this way.
For PP to be developed with scarce resources and in urgent needs; with this document it is proposed that modules and packages from Cocoso, a free & open-source software for web, is used as they have a lot of underlying values and necessities in common. This is not necessarily a long term commitment for permanent affiliation or such. There’s no single best solution to speculate about to use in the long term when we, hopefully, reach thousands and millions of users.
However, in the short-mid term at where we are now, using Cocoso could be the shortest & best way. The codebase for PP as well as Cocoso will be architected in a way that PP will consume a lot of the open source code provided by Cocoso; but if and when required it is possible to discard any module(s) without having to make major changes. So that PP will not be completely dependent on Cocoso, but feed of it autonomously.
Cocoso is the extended, modularised and modernised version of the web app built for an artist run space in Gothenburg, Sweden called "Skogen". It has been used for over two years as of summer 2020. It is recommended to read more about Cocoso here.
Disclaimer: The author of this document is also the author of Cocoso.
In short, Cocoso is built using Meteor framework which is built on top of Node JS. Therefore it is suggested that PP also uses Meteor for its development. Meteor works with MongoDB by default and it provides first class support for it on top of the DDP protocol featuring reactive programming super easily with Web Sockets. Therefore MongoDB is the chosen database. Besides these which already provide great ease in starting up; Meteor provides a local development environment and a build system that works amazingly well making it a pleasure to develop and collaborate. Meteor also has a really large community that often uses their forum.
Using Meteor doesn’t necessarily mean that PP will always have to stick with it. One can think of Meteor as an umbrella framework for making a lot of things very easy to start with, from prototyping to production. Whenever it’s chosen not to proceed with it anymore; it is possible to move out of it by simply turning the entire application into a stack using Node JS, Mongo DB and (in this case) React JS. The challenges to do such migration will not be much more than the challenges required to do so in the beginning: starting up without Meteor.
A list of main features Meteor provides by default are as below:
- Easy to roll Development and Build System that is flexible and powerful
- Direct support and core API bindings working with MongoDB
- Builtin Authentication with easy to use API
- Builtin Accounts System that utilizes MongoDB with powerful API
- Reactive programming with DDP and Websockets
- Direct support for UI libraries like React
- Cordova Integration for using the same codebase to build native apps
App for Devices (Mobile/Desktop)
Using Meteor, it is also relatively easy to create a native app using the same codebase by built-in, supported usage of Cordova. Native apps created with Cordova run on a web-view within a downloaded and installed app, but it is possible to add customisations via Cordova plugins such as push notifications and other native app features. Meteor provides first class support for exporting app bundles both for the IOS App Store as well as the Android Play Store via Cordova. You can read more about it in Meteor’s official documentation.
Progressive Web App
Another option that has recently become very popular and optimised by Google and Apple is making a Progressive Web App. PWAs work with new web technologies and standards that leverage capabilities of devices, operating systems and browsers to make web applications work similar to native apps.
Some advantages PWAs provide:
- No need to write a new code base or indeed more than a bit of code at all (mainly a service worker to manage generic things like caching etc). One only needs to provide a few layers
- Users get to easily add app icons to their home screens to access with a click of a button just like a native app, rather than typing the http address in the address bar of browser
- Stores the app’s resources and data on devices so networking times are pretty quick
- Since there’s minimal data fetching/sending operations, much less cost for users if they pay per data bundles (i.e. in the developing world)
- Works offline (of course doesn't update...)
- Ability to trigger push notifications (possible in Android but not on IOS yet, as of June 2020)
A very relevant topic created in a Meteor forum addressing PWAs and Cordova apps in Meteor context could shed a light in many technical questions you may have in mind: https://forums.meteor.com/t/seeking-recommendation/53139
There are three different hosting services required for the PP to work with the above mentioned architecture:
1. Server Hosting
For the hosting of the Meteor server, a specially configured NodeJS server is required. In the market, there are many hosting services that support Meteor hosting (which is basically a NodeJS server with some extra features). Indeed one and the best of them is the service by the company behind Meteor; called Galaxy. Galaxy is probably the best option since they not only provide an APM (Application Performance Monitoring) dedicated for Meteor; but also a perfect support and newly launched automatic scaling feature.
Another option that have very often been used for Cocoso in various cases is Heroku. Heroku has so far perfectly worked for small scale use cases.
However, there are other options too.
2. Database Hosting (MongoDB)
For the MongoDB, Mlab (now owned by the company behind MongoDB also) has so far brilliantly worked; even at the level of the free starter (limited to 5MB space).
3. Static Files (images, documents etc)
Cocoso currently works with tools to automatically upload images and documents to AWS S3 buckets directly to cloud from client with a service that authorizes the client called Slingshot. However, it’s always possible to deviate from S3 as well, though now it is suggested to dedicate resources on moving to another provider if there are sufficient resources.
Launch & Progressive Enhancement
If to be continued with this approach, it is probably wise to proceed with progressive enhancements; and not provide all the features at once. Unfortunately the contemporary human condition is yet to get used to the concept of trading with each other using any other currency than the nationally registered ones. So it makes sense to have a strategy for introducing different components of this system one by one.
Perhaps the most agreeable and realistic scenario is to start with the marketplace, and continue thereafter. This could be a potential order of features being introduced:
- Marketplace with User Accounts (launch)
- Calendar & Shared Resources (promoting most efficient usage of commons)
- Public Activities (promoting bazaars and festivities)
- Training Programs with Processes (promoting collaborative research, education, and cocreation)
- Integrated Wallet
PP as a Platform Cooperative?
This section is more of an abstract and generic idea that probably needs to be articulated separately from the content of the rest of this document.
Cooperatives are a quite common form of legal organisation used worldwide for various communities and company like organisations to benefit. Basically one can think of a cooperative as a company that could earn money and gain profits. It would have a legally required organisation number, pay tax and salaries just as a company too. But what distinguishes a cooperative from a company is that each cooperative must have a protocol: a set of principles implying a purpose for its existence and continuity. Protocol must be legally addressed (at least in most cases) and it works like an internal constitution for governance by its members. Another difference that makes cooperative a different entity from company is that instead of shareholders who would pay and buy shares; people can become members of a cooperative by commiting to pay a recurrent fee.
Platform cooperatives (platform-coop in short), are a newly formed entities who carry all the spirit of cooperatives and in addition transform them into platforms that are more digitally formed taking advantage of internet as a technology for cooperations of members. A definition of platform-coops at this link below arguably defines them pretty well:
A platform co-op is a digital platform — a website or mobile app that is designed to provide a service or sell a product — that is collectively owned and governed by the people who depend on and participate in it. That includes those who deliver the underlying service by contributing labor, time, skills, and/or assets. Where corporate “sharing” platforms extract value and distribute it to shareholding owners who seek a return on their investment, platform co-ops distribute ownership and management of the enterprise to its participants — those working for the platform or those using the service.
You can read more about platform-coops here: https://www.shareable.net/a-shareable-explainer-what-is-a-platform-co-op/
The ideas and proposals in this document are not meant to be conclusive or definitive, but an attempt at transparently addressing certain needs, concerns, capacities and a shared vision. There’s a certain capacity that is presently available with a set of tools and human labor in this initial phase; of a much larger process to hopefully transform into. So we can as well make the best out of it as those who are committing time and belief into it.