When contributing to Monkeytype, it's good to know our best practices, tips, and tricks. First, Monkeytype is written in JavaScript TypeScript, CSS, and HTML (in order of language usage within the project); thus, we assume you are comfortable in these languages or have basic knowledge of them. Our backend is in NodeJS and we use MongoDB to store our user data. Firebase is used for authentication. Redis is used to store daily leaderboard data. Furthermore, we use Prettier to format our code.
We have two separate contribution guides based on what you're looking to contribute. If you're simply looking to help us augment our language or quotes data, please refer to CONTRIBUTING_BASIC.md. This guide will go over how to do so easily, and without the need to set up a local development server.
If you're looking to make deeper code changes that affect functionality, or will require screenshots of the changes, please refer to CONTRIBUTING_ADVANCED.md.
Below are a set of general guidelines for different types of changes.
Before submitting a theme make sure...
- your theme is unique and isn't visually similar to any we already have.
- the text color is either black or white (or very close to these colors)
- your theme has been added to the
_list
file and thetextColor
property is the theme's main color - your theme is clear and readable with both
flip test colors
andcolorful mode
enabled and disabled
(If you want to contribute themes but don't know how, check THEMES.md)
- Do not include swear words
- Ensure that your contribution meets JSON standards (no trailing comma at the end of a list)
- Be sure to add your language to the
_list
and_groups
files - Make sure the number of words in the file corresponds to the file name (for example:
languageName.json
is 200 words,languageName_1k.json
is 1000 words, and so on)
(If you want to contribute languages but don't know how, check LANGUAGES.md)
- Do not include content that contains any libelous or otherwise unlawful, abusive or obscene text.
- Ensure that your contribution meets JSON standards (no trailing comma at the end of a list)
- Verify quotes added aren't duplicates of any already present
- Verify the
length
property is correct (length of the text in characters) - Verify the
id
property is incremented correctly - Please do not add extremely short quotes (less than 60 characters)
(If you want to contribute quotes but don't know how, check QUOTES.md)
If you have any questions, comments, concerns, or problems let me know on GitHub, Discord in the #development
channel, or ask a question on Monkeytype's GitHub discussions and a contributor will be happy to assist you.