diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7defa4f127a0e78142c447948422c306def39f11 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -0,0 +1,47 @@
+# How to contribute
+
+Contributing can be done in many ways. For example looking at issues
+and finding how to solve them, or look into documentation. If you want
+to make instructive videos/webms then I will make sure to add
+them/link them ASAP. If you have an idea for a feature then I suggest
+you either contact me or file a pull request.
+
+If you have an idea that you think fits with the project and is not
+listed in the "Things that would be nice to have" list, then please
+discuss it with me before creating a pull request and working on
+it. Since there is no real quality assurance of this project I want to
+make sure that at least the ideas within it are sound and fits the
+theme of the application.
+
+# Things that would be nice to have
+
+Here is a list of things that would be cool to add to the
+project. Either through the plugin system or to the core program.
+
+
+### Templates and runners for different programming languages
+
+For competitive programming I only use C++ and python, but I know a
+lot of people use Java and because Kattis also supports a ton of
+different languages it would be nice to support a wide array of
+languages.
+
+
+### User Guide
+
+I find that the best projects are also the most user friendly and
+creating a user guide with visual media is something I think would be
+very useful. This section is more aimed at the end-user and not the
+developers. This would include things like: example usages,
+webms/videos of typical usage and tutorial-style guides.
+
+
+### Complex testing logic
+
+Some problems have a more complex testing logic and they require some
+form of program to validate. This is an area in which it would be nice
+to allow for some cool form of validation where you have some standard
+types of validation or have some Domain Specific Language where you
+describe the validation. An example of a standard validation would be
+`set`, the order of the items are not relevant, or `set-lines`, each
+line in the output has to match by set equality.