Skip to content


Repository files navigation


They say I'm savin' my city, say I'm stayin' for good

They screamin' "Chano for Mayor," I'm thinkin' maybe I should

- Somewhere in Paradise (2015)

We want Chance the Rapper to run for Mayor of Chicago in 2019. He doesn't seem to have any intention of doing it. So, we did what any group of concerned citizens would do: we made a website to encourage him to run.

A picture of Chance the Rapper saying "I got some ideas that you gotta see"

The concept

We want a mayor who will fight for public education. We want a mayor who will reinvest in black and brown communities on the South and West Sides. We want a mayor who will address our epidemic of gun violence without the brutality of police or prisons. We want a mayor who will let the young people of Chicago lead.

We want a mayor like Chance.

Not convinced that Chance should be the next mayor of Chicago? Check out the site to read why we think you should change your mind, or let us know who you think should run in 2019.

Twitter bot

If you like this site, you might also like our Twitter bot @Chano4Mayor2k19 that makes memes about #chano4mayor.

To see that code or steal it for your own mischief, head on over to its repo.

Developer information (for the nerds)

The following instructions will help you use our code to either a) suggest changes to this site or b) draft your own favorite rapper to run for office.


The chano4mayor development environment is containerized using Docker. It also includes a set of convenience scripts to help you get up and running quickly.

  1. Before getting started, make sure you have Docker Compose installed.

  2. Start by cloning our repo:

# Assumes SSH - use the HTTPS link instead if you like it like that
git clone
  1. Getting Tweet counts to appear on Chance's hat requires a Twitter API bearer token. Once you've got a bearer token, copy the .env.example file and add your API token:
# <your_token_here> is the placeholder used in the example file, while $TOKEN
# represents your actual API token -- i.e., replace $TOKEN with your bearer
# token in the following command, but leave the rest the same
sed 's/<your_token_here>/$TOKEN' .env.example > .env
  1. Next, change into the directory and install dependencies with the update script:
cd chano4mayor
  1. To serve a copy of the site locally, use the server script. The site will be accessible on localhost:1234:

(The server script also accepts optional arguments that allow you to run each service in isolation. This is helpful e.g. if you only want to debug the Lambda function that runs the Tweet counting script. For more information, run ./scripts/server --help.)

  1. When you're ready to push changes, confirm that you've built all the relevant assets using the cibuild script:

A note about compiled assets

The development setup should compile minified assets for you based on your source files. When you're working on code, make sure you're editing the source files in the src/ directory.

Do not directly edit the compiled/minified files in the home directory, or in the functions/ output directory! Instead, make changes to the corresponding files in src/ and then run ./scripts/cibuild to make sure that the files get compiled for distribution.


We welcome issues and pull requests if you want to suggest changes to the site.

The best way to suggest changes is to follow these steps:

  1. Fork the project
  2. Make a new feature branch for your changes so we can merge them easily
  3. Make your feature addition or bug fix
  4. Open a pull request with a description of your work

Before making pulls, make sure to build your code for distribution:



Always follow the coding style you see in the files. Some general principles are:

  • Use logical indentation. If the file is indented with 4 spaces, use 4 spaces; if it's indented with tabs, use tabs.
  • Always aim for clarity, and leave a comment any time you do something clever.
  • Keep it accessible! Images should always have alt text, never indicate information with color alone, add title attributes to links, and make sure the color contrast ratios are at least up to AA standards. Use this checklist for reference.


You have these fine folks to blame for this mess:

Opinions about #chano4mayor are entirely our own, and have nothing to do with the views of our employers, parents, or childhood mentors.


We used the following open source tools to build this site, and they made our lives so much easier:

Many thanks to the developers on these projects for enabling our mischief.


Technically released under the MIT License. Do what you will!