With your help, we can create a comprehensive reference tool that will help millions of people who are learning to code, for years to come. Guide topics are located in [our forum](https://www.freecodecamp.org/forum/c/guide) under the `Guide` category.
Use the [forum search feature](https://www.freecodecamp.org/forum/search?expanded=true&q=%23guide) to find existing topics you want to [edit](#editing-an-existing-guide-topic) or to make sure the topic you want to create does not already exist. Whether editing or adding a new Guide topic, you should read about [styling best practices for Guide topics](#style-guide-for-creating-and-editing-guide-topics) to make your topic stand out.
We can reference other topics by linking to them inline, or in an "Other Resources" section at the end of the topic.
Our goal is to have thousands of topics that cover a broad range of technical concepts.
#### Code Blocks
Campers will likely use Guide topics as a quick reference to look up syntax. Topics should have simple real-world examples that show common use-cases of that syntax.
GitHub-flavored markdown supports [syntax highlighting in code blocks](https://help.github.com/topics/creating-and-highlighting-code-blocks/#syntax-highlighting) for many programming languages.
- To ensure correct rendering, each code block must have a language label. You can find a list of supported languages [here](http://prismjs.com/#languages-list ).
> Make sure that you are using HTTPS links. This is very important to avoid insecure content warnings.
>
> Also, do not use short links like `bit.ly` or `amzn.to` links. This is a security risk. Short links are [vulnerable to redirection based attacks](https://security.stackexchange.com/questions/59517/are-url-shorteners-vulnerable-due-to-open-redirects).
>
> Instead, simply use the long version of the links, removing any query parameters.
We do not recommend adding images to a topic unless necessary. Images hurt Web Accessibility, they are difficult to maintain and may get outdated. They are also slow to load on poor connections, thus, hurt web performance.
For including images in a topic under compelling reasons, if they aren't already hosted somewhere else on the web, you will need to put them online yourself using a platform like [Imgur](https://imgur.com/) or [Flickr](https://www.flickr.com). You can also host images by committing them to a git repository and pushing it to GitHub. Then you can right-click the image and copy its URL.
We don't allow hosting images directly in the git repository because it would make it far too big (people pulling it to their local system to make changes would end up downloading all the images), and because it is easier to change an image by just changing the URL in a topic than by putting the new image in the repository.
Don't use emojis or emoticons in the Guide. freeCodeCamp has a global community, and the cultural meaning of an emoji or emoticon may be different around the world. Also, emojis can render differently on different systems.
To minimize the potential for plagiarism and maintain integrity in this guide, it is important to give credit where necessary.
Any material quoted, or used directly and unchanged, from source material should be wrapped in quotation marks and be adequately cited. Material that is not a direct quote but is still paraphrased from a different resource should also be cited.
You can create superscript numerals to mark content that is cited using `<sup></sup>` tags.
You can check out the [Purdue link referenced above](https://owl.english.purdue.edu/owl/resource/747/08/) to see how to properly cite web sources (they even show how to cite tweets!).
Use of proper citations will not only keep the guide reputable but these citations and links will also provide valuable resources should the reader want to learn more about the topic.
Format language keywords as code - this is done with the backtick key (located to the left of the "1" key on a US keyboard) in GitHub-flavored markdown. For example, put backticks around HTML tag names or CSS property names.
Use the Oxford Comma when possible (it is a comma used after the penultimate item in a list of three or more items, before ‘and’ or ‘or’ e.g. an Italian painter, sculptor, and architect). It makes things easier, clearer, and prettier to read.
The introduction paragraph should only be 1-2 sentences long and be a simple explanation of the main topic. It should limit the use of any links to other Guide topics, as they can be distracting.
Front-end development (an adjective form with a dash) is when you're working on the front end (noun form with no dash). The same goes for the back end, full-stack, and many other compound terms.
To check for grammar and spelling, we recommend using an app like [Grammarly](https://grammarly.com) or a built-in extension/plugin that checks for this within your text editor.
- [Sublime Text 3](https://www.sublimetext.com/docs/3/spell_checking.html)
To check your writing style, we recommend the [Hemingway App](http://www.hemingwayapp.com/).
There’s nothing magical about this simple tool, but it will automatically detect widely agreed-upon style issues:
- passive voice
- unnecessary adverbs
- words that have more common equivalents
The Hemingway App will assign a "grade level" for your writing.
You should aim for a grade level of 6.
Another tool available is the [De-Jargonizer](http://scienceandpublic.com/), originally designed for scientific communication but might help avoid overspecialized wording.
If you find a problem with an existing challenge's hints/solutions topic, you can make suggestions in the comments below the main wiki post. Select moderators will review the comments and decide whether or not to include the changes in the existing topic.
#### Adding New Challenge Related Topics
Only moderators should add new hints and solutions topics when new challenges are added to the curriculum.
Take the following steps when adding a new challenge hints/solutions related topic.
1. Start by following the same steps for [creating a new topic](creating-a-new-guide-topic) but review the next for creating the title.
2. The title of the topic should start with "freeCodeCamp Challenge Guide: " concatenated with the actual title of the curriculum challenge. For example, if the challenge is named "Chunky Monkey", the topic title would be "freeCodeCamp Challenge Guide: Chunky Monkey".
3.`camperbot` should be the owner of these topics/posts, so you will need to request an admin to change the ownership of the main post to `camperbot`.
4. Once the new topic is created, a forum topic id is created. It is located at the end of the forum topic URL. This id must be added to the frontmatter of the curriculum challenge file via the normal pull request process for the `Get a Hint` button to link to the topic.
#### Guidelines for content of hints and solutions topics
When proposing a solution for a curriculum challenge related Guide topic, the full code should be given. This includes all the original seed code plus any changes needed to pass all the challenge tests.