diff --git a/.flaskenv b/.flaskenv
new file mode 100644
index 0000000000000000000000000000000000000000..f88b6e5b9015d74cef7f8cb429bbf93297cb1d75
--- /dev/null
+++ b/.flaskenv
@@ -0,0 +1,2 @@
+FLASK_APP=opaque.py
+FLASK_ENV=development
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..82adb58b4d6486436545d1dff4e4a5bc59e17bdd
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+__pycache__
+venv
diff --git a/app/__init__.py b/app/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..37ffe28b5c3e64a2311db6e8dfd292a150a34a6a
--- /dev/null
+++ b/app/__init__.py
@@ -0,0 +1,7 @@
+from flask import Flask
+
+
+def create_app():
+    app = Flask(__name__)
+
+    return app
diff --git a/config.py b/config.py
new file mode 100644
index 0000000000000000000000000000000000000000..a97948eef8f6babda020e9f308bc92e97d0c9aed
--- /dev/null
+++ b/config.py
@@ -0,0 +1,5 @@
+import os
+
+
+class Config:
+    SECRET_KEY = os.environ.get('SECRET_KEY') or 'hard to guess string'
diff --git a/opaque.py b/opaque.py
new file mode 100644
index 0000000000000000000000000000000000000000..5ee9c43eebe8b9a148744b4e9aa91770153cc642
--- /dev/null
+++ b/opaque.py
@@ -0,0 +1,4 @@
+from app import create_app
+
+
+app = create_app
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0bfbaf13412d852fedf7a5099dac2bb0dd9ab04a
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,2 @@
+Flask==1.0.3
+python-dotenv==0.10.3