Skip to content

The participatory democracy framework. A generator and multiple gems made with Ruby on Rails


Notifications You must be signed in to change notification settings


Folders and files

Last commit message
Last commit date

Latest commit


Gem Gem GitHub contributors Matrix codecov Maintainability Crowdin Yard Docs

The participatory democracy framework

Free Open-Source participatory democracy, citizen participation and open government for cities and organizations.
Explore the docs »

Join our chat rooms.

Features · Roadmap · Report Bug · Propose New Features · Read Blog

💡 What is Decidim?

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.

Table of Contents

🚀 Getting started

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.

🙌 Contribute

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.

🧩 Modules

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.

🪪 Identity verifications and authorizations

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.

🚪 Authentication options

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 community.

📘 License

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.

If you have any trouble you can contact us on our chat room for developers.

🔎 Example applications

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

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.

🫶 Financial contributions

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, or processes) 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

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.


💻 Partners

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.


📖 Learn More

Decidim Resource Description

🚀 Our latest releases

New features and bug fixes.

🧩 Modules

Find out new ways of enhancing Decidim.

🗳 Propose new Features

Is there any missing feature? Propose a new one!

📓 Docs

Full documentation for creating and customizing your own Decidim application.

📒 API Reference

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.

💬 Join

Need help with your specific use case? Say hi on Matrix!

🗺 Roadmap

See where Decidim is working to build new features.

🙌 Contribute

How to contribute to the Decidim project and code base.

🎩 Credits