Introduction

Truetopia is an open source project developing a generic self-governance web application. The application allows its users collaborate on finding solutions to their shared problems. Using the application shared problems are identified, understood and (in theory) solved. This is accomplished using a direct-democratic system of online publishing, rating and voting.

The application is designed so that it can be modified easily (hackable), as it is foreseen that users of an installation of Truetopia want the application to change (they identify shared problems regarding the application). A default installation of Truetopia should allow its users to easily collaborate on the modifying their application. In fact this is the project goal of Truetopia: to create a web application so that modifications to it can be directed entirely by its users through using the application.

Wikipedia.org is an application that allows its users to collaboratively create an encyclopedia. MediaWiki is an open source web application originally written for Wikipedia. A wiki is a page or collection of web pages designed to enable anyone who accesses it to contribute or modify content. In the case of Wikipedia, the MediaWiki wiki software is used to create an encyclopedia. There are many other sites that use MediaWiki, and MediaWiki is just one of the many brands of wiki out there.

Where MediaWiki focuses on collaborative publishing; Truetopia focuses on collaborative governance, or collaborative decision taking, or even more generic: collaborative problem solving. The uses of Truetopia can be numerous, like MediaWiki, and, like MediaWiki, cannot not be foreseen on forehand.


How does it work?

Truetopia combines many systems used by other online collaboration web sites (for example the wiki page) with some new systems to reach the project goal of facilitating a self-governing community. In the next section we explain how the 'collaborative problem-solving process' of Truetopia works. It is important to understand that nothing in this process is set in stone — users are expected to identify problem with their installation of Truetopia, and solve them by modifying their installation to better suit their needs. In fact this is the project goal of Truetopia: is to create a web application so that modifications to it can be directed effectively by its users through using the application.

The following text may not be easy to understand for those without experience with complex web applications (like Facebook, eBay and Wikipedia) or the jargon used to describe them. So if you do not get it, don't worry, we will make tutorials available at a later point explaining this matter in a practical fashion.

Truetopia knows two kinds of users: members and guests. Members have to login after which the can fully interact with the web application, guest are only allowed to read certain parts of the website. When using Truetopia the members collaboratively create an agenda, a list of agenda items. Members constantly value those agenda items using 'up' and 'down' votes, therefore at any time the best valued agenda items can be found on top of the agenda.

Agenda items are the product of projects, every member can start a project. By starting a project that member basically invites everyone to collaborate on a defining and solving a problem. Every project consists of 3 steps, the 3 steps are guided by 3 main questions:

  1. Define the problem clearly and describe a future in which the problem is solved.
  2. Which changes does the solution consist of?
  3. How will these changes come to being?

Members can publish their answers to the questions as documents (wiki pages). Documents can be evaluated by all members using votes and mods (more about mods later). Each of the 3 main questions is accompanied by a check-list that can both with help answering questions completely and evaluating the answers.

A new project starts in step 1. This means a that the project is working on a document answering the first question. Every member can publish any number documents trying to answer this question, these documents are then discussed, rated and voted-for. When enough members vote for a certain document (when the document has enough platform) in step 1, that document will serve as a basis for documents in step 2. Now all members can collaborate on making a document that answers the main question of step 2. When a document in step 2 gets enough votes (enough platform) is serves, together with the step 1 document it is based on, as a basis for documents in step 3.

When a document in step 3 gets enough votes (platform) it is — together with the step 1 and 2 documents that it is based on — published as an agenda point on the agenda. So agenda points simply contain a set 3 documents answering each of the 3 main questions (following the checklists) 'good enough', according to the voters.

"Why 3 steps?", you may question... Please understand that the number of steps in not very significant and can easily be changed, just as the main questions of the steps can be changed. About everything regarding Truetopia can be changed as it is a piece of software designed to be easily modifiable. We think that using the 3 step model, users can identify and solve problems they have with their installation of Truetopia, so they effectively govern their own installation — transparent and democratic self-governance. Using their self-governance power they can, for instance, make an additional 4th step or change the main questions of the steps. In other words: an installation of Truetopia should allow its members to collaborate on adjusting their Truetopia installation to their needs. These adjustments can then feedback into the original Truetopia installation (using the git source code management software).

Members 'own' all their expressions on Truetopia (even when posted anonymously). In it's current design Truetopia does not know 'moderators': users with more rights than ordinary users whom is trusted to delete abusive expressions. We prefer a system where everyone is moderator. Members can evaluate the expressions of others through so-called 'mods'. Mods are like small questionnaires running along an expression of a member. For example when many members mod an expression as 'off-topic' mods it gets hidden automatically. In the same way interesting or insightful expressions are given more exposure. Every member profile contains the statistics regarding the mods he got for his work.

The current model (the system of projects-steps-documents-agendapoints, voting algorithms, and modding) borrows from the following sources:

When designing Truetopia we try to set 'sane defaults', for each installation these defaults can easily be changed. If we, for instance, find a better 'generic model for collaborative problem solving' than the 3-step model mentioned above, we make that model default for Truetopia.

Any organizational body that is accepting input from an installation of Truetopia should simply make some sort of commitment towards their Truetopia's top agenda points. Those top agenda points should contain 'good enough' (as in 'complete' and 'clear') instructions on what to do and how to do it, this because each of the three documents that make up the agenda point had enough platform to be accepted. The reason for an agenda point being not implementable should be guiding the effort to creating a similar agenda point without the flaws.


Screenshots!

Coming soon... (sorry)


Truetopia's initial aim

The initial aim of the Truetopia project is to create software that facilitates a nation-wide self-governing online community in The Netherlands. Possible this community will try to seek influence in the government of The Netherlands by means of a political party. Yet if the community wants to be represented in the parliament and how exactly to accomplish this is completely up to members of the community, and to be decided on by using Truetopia.

Currently the user interface of Truetopia is in Dutch language (the native language of most people in the Neherlands), because that is the country where the Truetopia project aims to launch their first installation, operating on a nation-wide level. It is fairly easy to translate the interface into any other language as all the programming code and code-documentation is in English. In case someone shows interest in an interface in their language, or want to make Truetopia fit for a purpose outside of this initial aim, they can contact us and we see what we can do (make sure you've read the contributing & donating section).

We expect Truetopia to be highly useful beyond the just proposed purpose. We think it is just a logical step to use the new possibilities of the internet (two-way mass communication) that allow mass-collaboration to achieve self-governance through a direct-democratic process. Possibilities for nation-wide communities in other countries than The Netherlands are already being explored, but also outside the national-political arena there seem to be many possibilities.


Contributing & Donating

The Truetopia project is working on a not-for-profit basis. We are developing our product, a self-governance web application, using the principle 'open innovation': everyone can contribute to the innovation process and everyone is free to enjoy the fruits of it. Truetopia is released under the General Public License version 3, which allows everyone to use, modify and redistribute (modified version of) our product. As there is no income from selling the product, the project lives entirely off contributions. We distinguish 3 types of contributions: development, infrastructure and monetary contributions (donations).

Development contributions drive the project, they contain the programming effort that build the Truetopia software product. Without development no new versions of Truetopia can ever be released. So far Truetopia has been written mainly by Cies Breijs. Obviously we are looking forward to contributions, more specifically we are looking for: developers with skill in Ruby (a programming language), web-designers (who know a little programming and are willing to do the haml and sass dance) and web content writers — please contact us if you want to help.

Infrastructure contributions consist of hardware and services donated to the project. Currently there is no installation Truetopia running as Truetopia is still in development. So Truetopia only needs infrastructure for its development and its project websites. The project website is kindly hosted by commuun.nl, besides that we thankfully use of Google Code, GitHub and LightHouse.

Monetary contributions (donations) Truetopia's development will move faster with the help of donations. At the moment of writing Cies Breijs is the only developer of the project, he is currently traveling in Asia (as of October '08 he is in India) so his living is relatively cheap — he promises to work 8 hours on the Truetopia project (publishing a detailed hour declaration to the donator) — for 30 euro only! Is is a limited offer as his life in The Netherlands is a lot more expensive. To make a contribution please contact Cies. Donations can come with specific requests as long as they do not contradict with the nature of Truetopia.

We are running in the Google's Project 10100 competition. More about Truetopia involvement in this project will follow on this website. We are always looking for funding options, if you are familiar with fund raising and willing to help out, or you have good funding tips, please contact us!


Development

Please don't read this section if you are not interested in the technical details.

Truetopia is completely developed in the Ruby programming language. It uses the merb web application framework (not Ruby on Rails, but similar) because it is very flexible, extremely hackable, comes at minimal overhead and it allows for super-fast web application development. Truetopia uses DataMapper for database abstraction and ORM. Both merb and DataMapper are Ruby libraries. On the web front-end jQuery is used for all the HTML glitter and AJAX glamor. Server-side haml and sass are used to make sense of HTML and CSS respectively.

The merb/DataMapper setup mentioned above gives a lot of freedom in deployment. It runs standalone, directly behind Apache using Phusion Passenger and with JRuby Truetopia can be deployed on Java server environments. DataMapper supports several databases MySQL, Postgres, and (lovely for development purpose) sqlite3. Merb and DataMapper are running fine on windows, yet we do not recommend it for deployment.

The source code of Truetopia can be found on GitHub, everyone is invited to have a look. If you want to contribute please create a fork your own branch on GitHub and send and email to the mailing list describing what you did — a few good contributions will give direct access source code.

Installing Truetopia for development is not as hard as it seems. Please read the installation instructions in our wiki, they contain notes useful for development purpose.


Download & Install

At this moment Truetopia is in alpha stage, that means 'in development' and 'not usable for production yet'. So if you are not a developer or interested in testing Truetopia, then you probably better wait for Truetopia to arrive in the beta stage.

That said you are more than welcome to download Truetopia and give it a shot... The 'bleeding edge' development version of Truetopia can be found on GitHub, additionally snapshots can be found on our google project page. Before installing please read the installation instructions in our wiki, and read the sections on development and contributing & donating if you are interested helping out.


About the initiator

Cies Paul Breijs (1982) initiated this project in 2007 while on a long journey around eurasia. He left his hometown, Rotterdam (in The Netherlands), after graduating for his bachelor degree in business computer science at the Erasmus University Rotterdam. His interest for the internet and the new possibilities that emerge from it drove him to develop a software solution to help solving his main pain in life: the lack of utopia. Cies believes that solving this problem will need the collaboration of everyone involved, it is by the internet's new possibilities that we can create this mass-collaboration. Creating web application to allow this mass-collaboration on self-governance was in his opinion the best he could do to solve his problem.

In 1997 he got inspired by the open source movement and is a user ever since. He released an "educative programming environment" named KTurtle in 2003 that got awarded and included in the edutainment module of the KDE project.

Read more about Cies Breijs on his linked-in profile.


Contact

The Truetopia project can be contacted through the mailing list at google groups.

Reporting bugs you do at our LightHouse online issue tracker.

Alternatively you can contact Cies, the initiator of this project, directly using:
      skype: cies010
      email: initiator @ truetopiaproject . org (remove the spaces)


Links

We keep a wiki page with links to interesting projects, books, articles, papers and organizations.