They say I'm savin' my city, say I'm stayin' for good
They screamin' "Chano for Mayor," I'm thinkin' maybe I should
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.
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.
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.
Before getting started, make sure you have Docker Compose installed.
Start by cloning our repo:
# Assumes SSH - use the HTTPS link instead if you like it like that git clone firstname.lastname@example.org:jeancochrane/chano4mayor.git
- Getting Tweet counts to appear on Chance's hat requires a Twitter API
Once you've got a bearer token, copy the
.env.examplefile 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
- Next, change into the directory and install dependencies with the
cd chano4mayor ./scripts/update
- To serve a copy of the site locally, use the
serverscript. The site will be accessible on
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
- When you're ready to push changes, confirm that you've built all the relevant assets using the
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
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.
The best way to suggest changes is to follow these steps:
- Fork the project
- Make a new feature branch for your changes so we can merge them easily
- Make your feature addition or bug fix
- 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:
- JQuery - The world's most ubiquitious DOM manipulator
- JQuery Accessible Hide/Show Using ARIA - Accessible JS is crucial!
- Sass - Syntactically-awesome stylesheets
Many thanks to the developers on these projects for enabling our mischief.
Technically released under the MIT License. Do what you will!