Widget to transform your website into a cutting-edge campaign in 10 min. multi-lingual, privacy first.
You want to engage your members and ask them to take an online action? Well, you won't be the first organisation, and you will soon realise that they aren't any decent looking petition tool that are easy to install and configure.
And this is what this tool solves.
Alternatively, we are providing this Campaign tool as a Service and are hosting and maintaining it for you if you prefer. It's definitely cheaper and easier if you have a one-off campaign, and cost effective if you have a more specific need or want us to provide some custom development.
Introducing a new tool is often a source of frustration for the users (new login, new interface to learn, new workflow, new bugs) and extra work for the IT team (adapt the layout). There are as well the issue of introducing a new domain/subdomain (weak SEO, potential confusion for your supporters).
Our solution? This petition tool is as transparent as possible and embed the action into one (or several) of your existing pages).
With a bit of javascript or even just html, you can control and adjust the text or layout of your widget.
The widget can also send you events to let you know what your supporters have done, and allow you to update the journey, display extra information or whaterver you want to do ;)
If the campaigner organisation provides an encryption key (based on NaCl, probably the best elliptic curve encryption solution), we store the signatures and actions encrypted. We will not be able to read them anymore. Even if the bad guys compromise the security of our server, they will not be able to read any personal data either, because the campaign organisation (having the key) is the only one that can
This simplify GDPR and other privacy compliance: we do not store any personal data, only encrypted blobs of data that we can't read.
We are fully GDPR compliant. As part of a mandatory element of the signature form, we do ask the signatory to consent to be contacted, and record that information.
Benchmarked at > 1'000'000 signatures per hour on a 16 cores.
Front and back are clearly separated. the backend is a bunch of APIs clearly documented (so it's easier to build a different front end or switch the back end)
git clone
this repository
npm install
(or yarn instal)
cp .env.example .env
and put your login + pwd
yarn pull folowed by the action page id as seen in the backend. For instance
yarn widget --pull 42
This will create the configuration file for the widget with id 42
. it does also pull the configuration for the campaign into config/campaign/{shortname}.json
edit config/42.json
or the config/campaign to adjust the steps, configure the components, change the color, whatever)
yarn widget --serve 42
runs a local server with the widget
yarn widget --build 42
generates the widget under d/{actionpage.NAME of the widget}
yarn widget --push 42
save the local config (under config) to the server
you can combine the options, eg. yarn widget --pull --build 42, process multiple ids, eg yarn widget --pull --build 42 43 1984
You can find more information in this config documentation
One of the most common contribution we receive is help on the translations. We are using weblate and you are encouraged to participate, either to improve an existing language or request a new one.
We are usually following the material-ui guidelines:
We strive to use an inclusive language in the code, translations, documentation and issue tracker. By contributing to this project, you agree to listen when someone raise an issue that doesn't affect you directly, reflect on it and refrain to argue endlessly. Atalassian has a good list that isn't meant to be exclusive but a starting point.
Our vision is for radical change in society in a socialist, feminist, antiracist and sustainable direction. Our role within that is to make online campaigning easier and more effective and we are building a flexible and easy to use action tool which has all the useful features to help progressive campaigners change the world. We hope to help grow a diverse online community of progressive campaigners, technologists and activists who will support each other, share tricks and stories and grow together.
Before starting to change something, we recommend you to contact us (create an issue on github is fine), who knows, what you need might already be almost there, we are just missing some documentation and explanation.
Please note that this project is released with a Contributor Covenant. By participating in this project you agree to abide by its terms.