diff --git a/src/snek/templates/docs.html b/src/snek/templates/docs.html
new file mode 100644
index 0000000..21c0309
--- /dev/null
+++ b/src/snek/templates/docs.html
@@ -0,0 +1,10 @@
+{% extends "base.html" %}
+
+{% block main %}
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/src/snek/templates/docs.md b/src/snek/templates/docs.md
new file mode 100644
index 0000000..2cf60cb
--- /dev/null
+++ b/src/snek/templates/docs.md
@@ -0,0 +1,53 @@
+# API Documentation
+
+Currently only some details about the internal API are available.
+
+## How to create a user
+```python
+# Save user to the table named 'user'
+# Password gets sha256 encrypted with default a salt string
+# of the snek.system.security module.
+
+new_user_object = await app.service.user.register(
+ username="retoor",
+ password="retoorded"
+)
+```
+
+## Encrypt string
+```python
+from snek.system import security
+
+# Support for both utf and bytes.
+var1 = security.encrypt("data")
+var2 = security.encrypt(b"data")
+
+# Is correct:
+assert(var1 == var2)
+```
+
+## How to create a basic HTML / Markdown view
+```python
+from snek.system.view import BaseView
+
+class IndexView(BaseView):
+
+ async def get(self):
+ # The render function supports markdown.
+ # It will render with syntax highlighting.
+ # Just use the .md file extension in the file name.
+ return await self.render("index.html")
+```
+## How to create a FormView
+```python
+from snek.system.view import BaseFormView
+from snek.form.register import RegisterForm
+
+class RegisterFormView(BaseFormView):
+
+ form = RegisterForm
+```
+## How to register a class view
+```python
+app.routes.add_view("/your-page.html", YourViewClass)
+```
\ No newline at end of file
diff --git a/src/snek/view/docs.py b/src/snek/view/docs.py
new file mode 100644
index 0000000..e69d754
--- /dev/null
+++ b/src/snek/view/docs.py
@@ -0,0 +1,15 @@
+
+
+
+from snek.system.view import BaseView
+
+
+class DocsHTMLView(BaseView):
+
+ async def get(self):
+ return await self.render_template("docs.html")
+
+class DocsMDView(BaseView):
+
+ async def get(self):
+ return await self.render_template("docs.md")
\ No newline at end of file