Free Open-Source participatory democracy, citizen participation and open government for cities and organizations.
Explore the docs »
Join our Matrix.org chat rooms.
Features · Roadmap · Report Bug · Propose New Features · Read Blog
Decidim is a participatory democracy framework, written in Ruby on Rails, originally developed for the Barcelona City government online and offline participation website. Installing these libraries will provide you a generator and gems to help you develop web applications like the ones found on example applications or like our demo application.
All members of the Decidim community agree with Decidim Social Contract or Code of Democratic Guarantees.
TLDR: install gem, generate a Ruby on Rails app, enjoy.
gem install decidim
decidim decidim_application
We have set up a guide on how to install, set up and upgrade Decidim. See the Getting started guide.
Anyone can participate in Metadecidim, our own distance of Decidim for improving Decidim. The community is formed by people with different profiles and backgrounds.
How can you contribute? There are many ways to do it, some more specific to the software -improving documentation or translations, reporting bugs or proposing improvements-, but you can also participate in discussions about the governance of the community (find out how we organize ourselves).
Having a lively community is crucial to this project, so we encourage you to find out what is the best way for you to contribute to the commons! 🌱
Read more about contributions in our contribution guidelines.
If you need to have some features that we do not have yet, we recommend that you make a module. This is a Ruby on Rails engine with some APIs specific to Decidim (for registering with the menus, integration with spaces like Participatory Processes or Assemblies, with /admin or /api, etc).
As a base you can use these modules, although check first that the version is compatible with your current Decidim version. Also, you should know that until v1.0.0 we are under development, and these internal APIs can change.
We recommend that you extensively test your module.
One specific thing regarding these kind of applications is how you manage the permissions that the participants will have in the platform (aka the authorization or verification logic). This tries to solve the problem of how to verify that the user is who they say they are and that they have the right to participate in this city or organization. Read more about Authorizations in our documentation.
You can easily add any authentication provider to Decidim that is provided by OmniAuth. Also you have a list of modules related to authorization already developed by the commmunity.
If you plan to put your application in production, you will need to publish it using the same license: GPL Affero 3.
We recommend doing that on GitHub (or any other code hosting platform) before publishing.
You can read more on "Being Open Source From Day One is Especially Important for Government Projects".
If you have any trouble you can contact us on our Matrix.org chat room for developers.
Since Decidim is a ruby gem, you can check out the dependent repositories to see how many applications are on the wild or tests that other developers have made. You can see a highlight of example applications in our documentation.
Security is very important to us. If you have any issue regarding security, please disclose the information responsibly by sending an email to security [at] decidim [dot] org and not by creating a github/metadecidim issue. We appreciate your effort to make Decidim more secure. See full security policy.
Decidim helps citizens, organizations and public institutions to democratically self-organize at every scale. Thanks to Decidim, any organization is able to configure spaces for participation (initiatives, assemblies, processes, or votings) and enrich them through the multiple available components (meetings, surveys, proposals, participatory budgets, accountability for results, comments, and many other).
You can contribute financially to the sustainability of this project through OpenCollective.
The funds will enable the maintainers to:
-
review community contributions
-
triage issues
-
fix bugs related to performance
-
improve the design of the platform
-
write better documentation
-
improve performance of the platform security
Members have the right to participate in all the participation spaces of the Metadecidim platform with voice and vote, exercise their vote in strategic and internal decisions, elect or be elected in representative bodies, request and obtain explanations about the management of the positions of the Association, receive information about the activities and make common uses that are established. Read more about becoming a Decidim association member.
Any organization offering services on Decidim can contribute back to the commons by becoming a Partner. Each Partner commits to include a clause in each new service contract around Decidim, explicitly stating that a small percentage is allocated to the maintenance of the source code. For a company, the percentage is 3%, and for a nonprofit organization, it is 1.5%. Read more about becoming a Decidim association partner.
Decidim Resource | Description |
---|---|
New features and bug fixes. |
|
🧩 Modules |
Find out new ways of enhancing Decidim. |
Is there any missing feature? Propose a new one! |
|
📓 Docs |
Full documentation for creating and customizing your own Decidim application. |
Detailed reference on Decidim’s API. |
|
🔎 Examples |
See some ways where Decidim is used, with code examples. |
📬 Blog |
All the latest news and releases from Decidim. |
Need help with your specific use case? Say hi on Matrix! |
|
🗺 Roadmap |
See where Decidim is working to build new features. |
How to contribute to the Decidim project and code base. |