diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
new file mode 100644
index 00000000000..567b0e69911
--- /dev/null
+++ b/.github/CONTRIBUTING.md
@@ -0,0 +1,118 @@
+# Contributing
+
+This document describes how you can contribute to Telegram-iOS. Please read it carefully.
+
+**Table of Contents**
+
+* [What contributions are accepted](#what-contributions-are-accepted)
+* [Build instructions](#build-instructions)
+* [Pull upstream changes into your fork regularly](#pull-upstream-changes-into-your-fork-regularly)
+* [How to get your pull request accepted](#how-to-get-your-pull-request-accepted)
+ * [Keep your pull requests limited to a single issue](#keep-your-pull-requests-limited-to-a-single-issue)
+ * [Squash your commits to a single commit](#squash-your-commits-to-a-single-commit)
+ * [Don't mix code changes with whitespace cleanup](#dont-mix-code-changes-with-whitespace-cleanup)
+ * [Keep your code simple!](#keep-your-code-simple)
+ * [Test your changes!](#test-your-changes)
+ * [Write a good commit message](#write-a-good-commit-message)
+
+## What contributions are accepted
+
+We highly appreciate your contributions in the matter of fixing bugs and optimizing the Telegram-iOS source code and its documentation. In case of fixing the existing user experience please push to your fork and [submit a pull request][pr].
+
+Wait for us. We try to review your pull requests as fast as possible.
+If we find issues with your pull request, we may suggest some changes and improvements.
+
+Unfortunately we **do not merge** any pull requests that have new feature implementations, translations to new languages and those which introduce any new user interface elements.
+
+If you have a translations-related contribution, check out [Translations platform][translate].
+
+Telegram-iOS is not a standalone application but a part of [Telegram project][telegram], so all the decisions about the features, languages, user experience, user interface and the design are made inside Telegram team, often according to some roadmap which is not public.
+
+## Build instructions
+
+See the [README.md][build_instructions] for details on the various build
+environments.
+
+## Pull upstream changes into your fork regularly
+
+Telegram-iOS is advancing quickly. It is therefore critical that you pull upstream changes into your fork on a regular basis. Nothing is worse than putting in a days of hard work into a pull request only to have it rejected because it has diverged too far from upstream.
+
+To pull in upstream changes:
+
+ git remote add upstream https://github.com/TelegramMessenger/Telegram-iOS.git
+ git fetch upstream master
+
+Check the log to be sure that you actually want the changes, before merging:
+
+ git log upstream/master
+
+Then rebase your changes on the latest commits in the `master` branch:
+
+ git rebase upstream/master
+
+After that, you have to force push your commits:
+
+ git push --force
+
+For more info, see [GitHub Help][help_fork_repo].
+
+## How to get your pull request accepted
+
+We want to improve Telegram-iOS with your contributions. But we also want to provide a stable experience for our users and the community. Follow these rules and you should succeed without a problem!
+
+### Keep your pull requests limited to a single issue
+
+Pull requests should be as small/atomic as possible. Large, wide-sweeping changes in a pull request will be **rejected**, with comments to isolate the specific code in your pull request. Some examples:
+
+* If you are making spelling corrections in the docs, don't modify other files.
+* If you are adding new functions don't '*cleanup*' unrelated functions. That cleanup belongs in another pull request.
+
+#### Squash your commits to a single commit
+
+To keep the history of the project clean, you should make one commit per pull request.
+If you already have multiple commits, you can add the commits together (squash them) with the following commands in Git Bash:
+
+1. Open `Git Bash` (or `Git Shell`)
+2. Enter following command to squash the recent {N} commits: `git reset --soft HEAD~{N} && git commit` (replace `{N}` with the number of commits you want to squash)
+3. Press i to get into Insert-mode
+4. Enter the commit message of the new commit
+5. After adding the message, press ESC to get out of the Insert-mode
+6. Write `:wq` and press Enter to save the new message or write `:q!` to discard your changes
+7. Enter `git push --force` to push the new commit to the remote repository
+
+For example, if you want to squash the last 5 commits, use `git reset --soft HEAD~5 && git commit`
+
+### Don't mix code changes with whitespace cleanup
+
+If you change two lines of code and correct 200 lines of whitespace issues in a file the diff on that pull request is functionally unreadable and will be **rejected**. Whitespace cleanups need to be in their own pull request.
+
+### Keep your code simple!
+
+Please keep your code as clean and straightforward as possible.
+Furthermore, the pixel shortage is over. We want to see:
+
+* `opacity` instead of `o`
+* `placeholder` instead of `ph`
+* `myFunctionThatDoesThings()` instead of `mftdt()`
+
+### Test your changes!
+
+Before you submit a pull request, please test your changes. Verify that Telegram-iOS still works and your changes don't cause other issue or crashes.
+
+### Write a good commit message
+
+* Explain why you make the changes. [More infos about a good commit message.][commit_message]
+
+* If you fix an issue with your commit, please close the issue by [adding one of the keywords and the issue number][closing-issues-via-commit-messages] to your commit message.
+
+ For example: `Fix #545`
+
+[//]: # (LINKS)
+[telegram]: https://telegram.org/
+[help_fork_repo]: https://help.github.com/articles/fork-a-repo/
+[help_change_commit_message]: https://help.github.com/articles/changing-a-commit-message/
+[commit_message]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
+[pr]: https://github.com/TelegramMessenger/Telegram-iOS/compare
+[build_instructions]: https://github.com/TelegramMessenger/Telegram-iOS#quick-compilation-guide
+[closing-issues-via-commit-messages]: https://help.github.com/articles/closing-issues-via-commit-messages/
+[translate]: https://translations.telegram.org