Skip to content

activist-org/activist

activist Logo

platforms netlify issues django nuxt vue tailwind license coc instagram weblate matrix

An open-source activism platform

activist.org is a platform that enables more people to safely engage in activism by making it easy to discover organizations and events as well as coordinate and collaborate on political action. We want to enable activists to learn proven and novel strategies from each other for social and ecological change. Free, open-source, privacy-focused and governed by our community.

Note

The contributing section has information for those interested.

Contents

Our goals

The activist community is creating a global platform where movements grow and people are inspired to join in political actions. We want to update how power is distributed in our society by removing barriers and enabling more people to safely engage in activism.

Topics

The following are the working topics that activist could include:

Environment Housing Refugees and Migration
LGTBQIA+ Racial Justice Women's Rights
Children's Rights Elder Rights Education
Health and Wellbeing Animal Rights Democracy
Labor Rights Technology and Privacy Peace and Resolution
Nutrition Accessibility and Inclusion Institutional Transparency
Freedom of Expression Infrastructure and Mobility Emergency Relief

Beyond clustering by topics, tags will also be used to draw community attention to more specific issues.

Preview video

The following is a recording of the Creating and Joining Events prototype found on Figma:

activist_github_prototype.mp4

Further prototypes and designs are available in the designs for activist.

Contributing

Public Matrix Chat

We use Matrix for our internal communication. You're more than welcome to join us in our public chat rooms to share ideas, ask questions or just say hi to the team :)

Please see the contribution guidelines and style guide if you are interested in contributing. Work that is in progress or could be implemented is tracked in the issues and projects.

Note

Just because an issue is assigned on GitHub doesn't mean that the team isn't interested in your contribution! Feel free to write in the issues and we can potentially reassign it to you.

Also check the -next release- and -priority- labels in the issues for those that are most important, as well as those marked good first issue that are tailored for first time contributors. For those new to coding or our tech stack, we've collected links to helpful documentation pages in the contribution guidelines.

We would be happy to discuss granting you further rights as a contributor after your first pull requests, with a maintainer role then being possible after continued interest in the project. activist seeks to be an inclusive, diverse and supportive organization. We'd love to have you on the team!

How you can help

Environment setup

  1. First and foremost, please see the suggested IDE setup in the dropdown below to make sure that your editor is ready for development.

Important

Suggested IDE setup

VS Code

Install the following extensions:

WebStorm

  1. To setup your development environment, first install Docker and Docker Compose.

Note

If you are new to Docker, activist recommends installing Docker Desktop. Docker Desktop comes with many Docker tools and a straightforward user interface.

  1. Fork the repo, clone your fork, and configure the remotes:

Note

Consider using SSH

Alternatively to using HTTPS as in the instructions below, consider SSH to interact with GitHub from the terminal. SSH allows you to connect without a user-pass authentication flow.

To run git commands with SSH, remember then to substitute the HTTPS URL, https://github.com/..., with the SSH one, git@github.com:....

  • e.g. Cloning now becomes git clone git@github.com:<your-username>/activist.git

GitHub also has their documentation on how to Generate a new SSH key 🔑

# Clone your fork of the repo into the current directory.
git clone https://github.com/<your-username>/activist.git
# Navigate to the newly cloned directory.
cd activist
# Assign the original repo to a remote called "upstream".
git remote add upstream https://github.com/activist-org/activist.git
  • Now, if you run git remote -v you should see two remote repositories named:
    • origin (forked repository)
    • upstream (activist repository)
  1. Create a virtual environment for the backend, activate it and install dependencies:

    # Unix or MacOS:
    python3 -m venv venv
    source venv/bin/activate
    
    # Windows:
    python -m venv venv
    venv\Scripts\activate.bat
    
    # After activating venv:
    pip install --upgrade pip
    pip install -r backend/requirements-dev.txt
  2. Start your docker images with the following:

    # --build only necessary with new dependencies or backend model changes
    docker compose --env-file .env.dev up --build
    
    # And to stop the containers when you're done working:
    # docker compose --env-file .env.dev down

    Sometimes changes to the database can cause the database population to fail in your environment. If this happens, you can destroy the deployment and rebuild it:

    # Destroy your current docker-compose deployment:
    docker-compose rm -f -v --env-file .env.dev
  3. You can then visit http://localhost:3000 to see the development frontend build once the container is up and running. From there click View organizations or View events to explore the platform.

  4. To view the backend admin UI and Swagger UI, visit http://localhost:8000/admin and http://localhost:8000/v1/schema/swagger-ui/ respectively.

  5. If you'd like to sign in to the frontend via http://localhost:3000/auth/sign-in or the Django admin panel via http://localhost:8000/admin, then you can use the fixtures admin user with the password admin.

Note

Feel free to contact the team in the Development room on Matrix if you're having problems getting your environment setup! If you're having issues with Docker and just want to get the frontend or backend up and running, please see the section on this in the contributing guide.

  1. Install pre-commit to ensure that each of your commits is properly checked against our linter and formatters:

    # In the project root:
    pre-commit install

Note

pre-commit is Python package that can be installed via pip or any other Python package manager. You can also find it in our requirements.txt file.

pip install pre-commit

Tech Stack

The following are the current and planned technologies for activist.org:

Frontend

Backend

Deployment

Internationalization

Analytics

Note

Those new to any frameworks or technologies who want to work on their skills are more than welcome to contribute!

Design and accessibility

Public Figma Designs

The designs for activist are made using Figma. You can use the issues to make suggestions for improvements. Design related issues are marked with the design label.

We want our tools to look great, feel easy to use and function flawlessly on any device while at the same time including good security practices wherever possible. We also consistently make decisions that put a11y at the center of what we’re building.

Note

Please contact the team on GitHub or via the email on the designs welcome page if you're interested in contributing. We'd love to see a sample of your work and if everything looks good we'll schedule a time to get connected!

Platform features

The project board is where we organize our work and plan out what's next. The following sections give a general overview of the various planned features of activist.org.

Organizations profiles

Easy-to-use microsites for organizations of all sizes with multiple subpages.

Describe your organization’s aims and structure as well as answer frequently asked questions. Explain how your groups collaborate and safely onboard new people to the team.

Events

Collaborative event pages made for activists and their needs.

Organizations can create flexible event pages for different formats of events. There are two types of events:

  • Learn: seminars, meetings, panel discussions
  • Action: protests, volunteering, canvassing

Other event features include:

  • A feed will allow organizers to share information in real time with participants
  • Organizations can create event templates and share them with allies
  • Event pages can be transformed into flyers or posters and linked to via QR codes
  • Legal notes can be added to warn participants of the risks involved

Resources

A simple link hub for organizations.

Organizations can keep important links (chats, articles, pads, etc.) in one place, group what belongs together and pin to the top what’s currently most important. Private by default, resources can also be made public to share information and best practices.

Onboarding

Safe methods to onboard new members.

We are working on a conversational onboarding interface based on the Matrix protocol that operates across messengers while not compromising data sovereignty for organizations or individuals. Organizations will also have the option to include their existing processes if preferred.

Search

Easily find, filter and share.

Display search results in list, map and calendar views. Users can also save searches for later or set up notifications for newly published events, resources, and discussions.

Discussions

Dedicated forums for organizations and their events.

Discussions will also allow organizations, groups and events to send notifications to supporters. Included features for democratic decision making will further enable asynchronous planning.

Tasks

Kanban boards for organizing the work to be done.

Users will be able to attach kanban boards to every organization, group and event. This will allow those involved to easily plan and keep an overview of progress while templates guide organizers with best practices from our community.

Affiliates

Relationships between organizations, people and events.

Organizations and users can give support to each other as well as events:

  • Supporter: a one-way relationship of support
  • Ally: a relationship of mutual support

Relationships between organizations will help users find similar organizations or easily connect with actions when they’re in a new place. Affiliations will also determine notifications and access to restricted content.

Votes

Linking events and organizations to decision making.

Users will be able to subscribe for updates on events and organizations that work in relation to legislation and elections. The plan for this feature is that it will be based on data from Wikidata, with open data generating the vote pages that our community then maintains.

Securely hosted

We are hosting our data in Iceland with a reputable hosting provider that is trusted by whistleblowers, activists and investigative journalists: FlokiNET.

Iceland is a strong supporter for net neutrality with strict privacy protection laws and freedom of the press. All these factors have contributed to making Iceland a preferred destination for data centers.

You can learn more about FlokiNET on their blog.

Community governance

We not only value, but need open discourse. Our initial feature set for the MVP and future releases was developed together with our growing community of activists.

Our aim is to secure a progressive community by design while putting platform health before platform growth. Only organizations that are already on activist will be able to vouch for new organizations that apply to join. Together with experienced activists we are selecting an initial group of organizations that have a proven track record of inclusivity and elevating underrepresented groups.

We are still developing our operating principles and will always update them based on community decisions. Questions around flagging, banning, guidelines and rules will always be answered collectively.

Localization

Visit Weblate project

We need to break down language barriers in order to mobilize larger and more diverse coalitions. Translation requests will be available for several assets on the platform - organization profiles, events and resources - and we are growing our network of volunteer contributors to facilitate this.

Note

Want to join our translators working group? Please join us in the localization project on Weblate and the Localization channel on Matrix to get involved!

Localization of activist is done via Weblate. Please see the localization guide for information on how to get started!

Localization coverage

Translation status

Supporters and partners

Contributors

Thanks to all our amazing contributors! ❤️

Code and dependencies

We would like to thank all the great software that made activist's development possible 🙏

Our supporters

Licensed software providers

The following organizations have supported activist with licenses to use their technology for free:

The Wikimedia UNLOCK Accelerator

These organizations have supported activist via the 2022 edition of the Wikimedia UNLOCK accelerator. UNLOCK supported open-source software projects and non-technical projects under free licenses. UNLOCK Accelerator was committed to promoting solutions that make the world's knowledge more diverse, more accessible and inclusive for everyone.


Wikimedia Deutschland           Wikimedia Serbia           Impact Hub Belgrade          

Disclosure

activist is not directly affiliated with any corporation, political party or government.