BrandNewCongress / welcome

The definitive guide to working on the Brand New Congress tech team
37 stars 8 forks source link

Welcome to the Brand New Congress Dev Team

Welcome to the official GitHub organization for Brand New Congress – an effort to to run hundreds of campaigns for Congress in 2018 on a unified message taking advantage of shared resources.

All of our candidates support

See more about our candidates and platform here and here.

The Brand New Congress dev team is responsible for developing and maintaining:

  1. Our websites, brandnewcongress.org, and websites for each of our candidates.
  2. The data infrastructure that let's us store our supports data, records of our campaign interactions, etc.
  3. Tools to support the operations of the rest of our organization, specifically the operations of our campaigns in the field. Since our most valuable resource is the time of our staff and volunteers, tools that enable them to operate more efficiently and effectively can have a huge impact.

Working as a developer here is a once in a lifetime opportunity not to just make a large impact in one congressional district, but to have a large role shaping the congressional makeup of the entire country.

Getting Started

First, introduce yourself!

Second, check out the core repository – it's an Elixir/Phoenix backend with a plain html / ReactJS front-end, and it's possible to make valuable contributions to it if you're familiar with only 1 or none of those technologies.

After you've got the repository up and running, leave a 👍 on this issue. If you run into problems running the code locally, leave a comment there and we'll help out.

Third, check out the good first contribution issues or general help wanted.

  1. Leave a comment saying that you can do it
  2. Fork the repository
  3. Create a branch for your contribution
  4. Open a pull request
  5. Get it merged
  6. Go tell all of your friends to do the same

Where do issues / projects / priorities come from?

Some issues are bugs / technical enhancements, but other projects come from work requests that the technology team receives from the rest of the organization. This ensures that everything you work on will be directly used by our around 150 staff and volunteers (for admin tools) and by 800,000 (and growing) people for anything world-facing.

Principles

We're running multiple campaigns, which means that each candidate gets to take advantage of solutions and processes developed for the other. Additionally, we are one component of a larger progressive movement in the United States, which is one component of similar global social movements.

This means that:

But wait – if your code is open source, can't your opponents use it?

Of course they can! But there's a few reasons why this should not be a concern –

  1. Our opponents already have money – whether they are long time establishment Democrats with deep ties to the business class, lobbyists, and consultants or Republicans fitting the same description, they have the money to fund the development of custom solutions. The existence of free and open source versions of some of these tools is thus important for groups that rely on small donations, and much less so for seasoned, well-funded, political machines.

  2. Our tools support a method of campaigning that only works for our types of causes – We are developing tools that support grassroots, distributed campaigns that rely heavily on volunteers. Thus, our tools are designed to leverage the enthusiasm that comes with popular support for our platform. Different campaigns have different methods.

  3. If our code is released under a copyleft license, no consultancy or political vendor is able to profit off of forking and developing it. Given that establishment political campaigns are closely tied to and depend on these services, its very unlikely that they would choose to lose their competitive advantage by developing all of their code out in the open.

Thanks!

Thanks for visiting our Github organization, and we hope you introduce yourself and get started with an issue!