diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8a1ccbd458aa2a07dadb2c79ea275da9a0fb3590
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,9 @@
+language: python
+python:
+  - 2.7
+  - 3.3
+  - 3.4
+install:
+  - pip install cookiecutter
+script:
+  - make
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..476540989f0f7d7243562c25093a4aef0be03255
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,19 @@
+# match default value of app_name from cookiecutter.json
+COOKIE := myflaskapp
+COOKIE_JAR := {{cookiecutter.app_name}}
+COOKIE_CRUMBS := $(shell find $(COOKIE_JAR))
+
+.PHONY: all
+all: test
+
+.PHONY: test
+test: $(COOKIE)
+	cd $(COOKIE); pip install -r requirements/dev.txt
+	cd $(COOKIE); python manage.py test
+
+$(COOKIE): Makefile cookiecutter.json $(COOKIE_CRUMBS)
+	cookiecutter . --no-input
+
+.PHONY: clean
+clean:
+	rm -r $(COOKIE)
diff --git a/README.rst b/README.rst
index 7f3350807f002655fe53bcacdb248bf2cc510298..b5fd9acc7c896f14412cb7e032932a1a33ddc437 100644
--- a/README.rst
+++ b/README.rst
@@ -5,6 +5,10 @@ A Flask template for cookiecutter_.
 
 .. _cookiecutter: https://github.com/audreyr/cookiecutter
 
+.. image:: https://travis-ci.org/sloria/cookiecutter-flask.svg
+    :target: https://travis-ci.org/sloria/cookiecutter-flask
+    :alt: Build Status
+
 Use it now
 ----------
 ::