diff --git a/cookiecutter.json b/cookiecutter.json
index 0ae232c6ed8a7e4a638282f51b8129d8aa19c2bb..c4a689fac03e11f751b44447af949ed97e8de891 100644
--- a/cookiecutter.json
+++ b/cookiecutter.json
@@ -4,5 +4,6 @@
 	"github_username": "sloria",
 	"project_name": "My Flask App",
 	"app_name": "myflaskapp",
-	"project_short_description": "A flasky app."
+	"project_short_description": "A flasky app.",
+	"use_pipenv": ["no", "yes"]
 }
diff --git a/hooks/post_gen_project.py b/hooks/post_gen_project.py
new file mode 100644
index 0000000000000000000000000000000000000000..339ecfa655d36107fdbfcb92d616eafaa8262f12
--- /dev/null
+++ b/hooks/post_gen_project.py
@@ -0,0 +1,35 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""Post gen hook to ensure that the generated project
+hase only one package managment, either pipenv or pip."""
+import os
+import shutil
+import sys
+
+
+def clean_extra_package_managment_files():
+    """Removes either requirements files and folderor the Pipfile."""
+    use_pipenv = '{{cookiecutter.use_pipenv}}'
+    to_delete = []
+
+    if use_pipenv == 'yes':
+        to_delete = to_delete + ['requirements.txt', 'requirements']
+    else:
+        to_delete.append('Pipfile')
+
+    try:
+        for file_or_dir in to_delete:
+            if os.path.isfile(file_or_dir):
+                os.remove(file_or_dir)
+            else:
+                shutil.rmtree(file_or_dir)
+        sys.exit(0)
+    except OSError as e:
+        sys.stdout.write(
+            'While attempting to remove file(s) an error occurred'
+        )
+        sys.stdout.write('Error: {}'.format(e))
+
+
+if __name__ == '__main__':
+    clean_extra_package_managment_files()
diff --git a/{{cookiecutter.app_name}}/Pipfile b/{{cookiecutter.app_name}}/Pipfile
new file mode 100644
index 0000000000000000000000000000000000000000..c195ac38741fd6844cc1a142af661b4bc5836e7c
--- /dev/null
+++ b/{{cookiecutter.app_name}}/Pipfile
@@ -0,0 +1,57 @@
+[[source]]
+url = "https://pypi.python.org/simple"
+verify_ssl = true
+name = "pypi"
+
+[packages]
+# Flask
+Flask = "==1.0.2"
+MarkupSafe = "==1.0"
+Werkzeug = "==0.14.1"
+Jinja2 = "==2.10"
+itsdangerous = "==0.24"
+click = ">=5.0"
+
+# Database
+Flask-SQLAlchemy = "==2.3.2"
+psycopg2 = "==2.7.5"
+SQLAlchemy = "==1.2.8"
+
+# Migrations
+Flask-Migrate = "==2.2.0"
+
+# Forms
+Flask-WTF = "==0.14.2"
+WTForms = "==2.2.1"
+
+# Deployment
+gunicorn = ">=19.1.1"
+
+# Webpack
+flask-webpack = "==0.1.0"
+
+# Auth
+Flask-Login = "==0.4.1"
+Flask-Bcrypt = "==0.7.1"
+
+# Caching
+Flask-Caching = ">=1.0.0"
+
+# Debug toolbar
+Flask-DebugToolbar = "==0.10.1"
+
+[dev-packages]
+# Testing
+pytest = "==3.6.1"
+WebTest = "==2.0.29"
+factory-boy = "==2.11.*"
+
+# Lint and code style
+flake8 = "==3.5.0"
+flake8-blind-except = "==0.1.1"
+flake8-debugger = "==3.1.0"
+flake8-docstrings = "==1.3.0"
+flake8-isort = "==2.5"
+flake8-quotes = "==1.0.0"
+isort = "==4.3.4"
+pep8-naming = "==0.7.0"
diff --git a/{{cookiecutter.app_name}}/README.rst b/{{cookiecutter.app_name}}/README.rst
index 7b4d8d87a108837d6d40c14bb7fc50c05cfd921d..c39e4266c9b013bcfde3b9b515711028e1fc6826 100644
--- a/{{cookiecutter.app_name}}/README.rst
+++ b/{{cookiecutter.app_name}}/README.rst
@@ -19,7 +19,11 @@ Run the following commands to bootstrap your environment ::
 
     git clone https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.app_name}}
     cd {{cookiecutter.app_name}}
+    {%- if cookiecutter.use_pipenv == "yes" %}
+    pipenv install --dev
+    {%- else %}
     pip install -r requirements/dev.txt
+    {%- endif %}
     npm install
     npm start  # run the webpack dev server and flask server using concurrently