diff --git a/.stylelintrc.json b/.stylelintrc.json
index 19028f9885948aca2ba61f9d062e9dc21c21ad03..a624c10e82c3c60a96bd1882e51a49353c02b3cb 100644
--- a/.stylelintrc.json
+++ b/.stylelintrc.json
@@ -1,4 +1,7 @@
 {
+  "ignoreFiles" : [
+    "assets/css/just-the-docs.scss"
+  ],
   "extends": [
     "stylelint-config-primer"
   ]
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c7ec1c37896067875ee3382750a19974b4da6c18
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,13 @@
+language: ruby
+rvm:
+  - 2.3.0
+env:
+  - TRAVIS_NODE_VERSION="9.3.0"
+
+install:
+  - npm install
+  - bundle install
+
+script:
+  - npm run test
+  - bundle exec jekyll build
diff --git a/README.md b/README.md
index 3df45b17ef0e0b6a12b9ff391d74c69f14aa19c3..7e2181da2e97ef035f33c616199084df5d67ae71 100644
--- a/README.md
+++ b/README.md
@@ -35,6 +35,13 @@ Or install it yourself as:
 
 Bug reports and pull requests are welcome on GitHub at https://github.com/pmarsceill/just-the-docs. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
 
+### Submitting code changes:
+
+- Open a [Pull Request](https://github.com/pmarsceill/just-the-docs/pulls)
+- Ensure all CI tests pass
+- Await code review
+- Bump the version number in `just-the-docs.gemspec` and `package.json` according to [semantic versioning](https://semver.org/).
+
 ## Development
 
 To set up your environment to develop this theme, run `bundle install`.
@@ -43,16 +50,6 @@ Your theme is setup just like a normal Jekyll site! To test your theme, run `bun
 
 When the theme is released, only the files in `_layouts`, `_includes`, and `_sass` tracked with Git will be released.
 
-
-### When your changes are ready:
-
-- Open a [Pull Request](https://github.com/pmarsceill/just-the-docs/pulls)
-- Await code review
-- Bump the version number in `just-the-docs.gemspec`
-- Run `script/build` to package the gem
-- Run `gem push just-the-docs-<version>.gem` to publish the gem to Rubygems.org
-
 ## License
 
 The theme is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
-
diff --git a/_sass/labels.scss b/_sass/labels.scss
index a15d40cef97bebc70e331e022075c7ec804a87f4..23cc5101692a6aec53b48e6872edc9d41e1767c6 100644
--- a/_sass/labels.scss
+++ b/_sass/labels.scss
@@ -12,9 +12,9 @@
   margin-right: $sp-1;
   margin-left: $sp-1;
   color: $white;
+  text-transform: uppercase;
   vertical-align: middle;
   background-color: $blue-100;
-  text-transform: uppercase;
   @include fs-2;
 }
 
diff --git a/_sass/layout.scss b/_sass/layout.scss
index 9bb68892fc261676965a89d39c3e02917a921ce4..e3c93e480b562f568863fb249e41393d7d91338a 100644
--- a/_sass/layout.scss
+++ b/_sass/layout.scss
@@ -115,6 +115,7 @@
   }
 }
 
+// stylelint-disable selector-no-type
 body {
   position: relative;
   padding-bottom: $sp-10;
@@ -124,6 +125,7 @@ body {
     padding-bottom: 0;
   }
 }
+// stylelint-enable selector-no-type
 
 .site-footer {
   position: absolute;
diff --git a/_sass/navigation.scss b/_sass/navigation.scss
index e6f1d220133e193ce295216c4ffba5fd8e80d541..802a6edbb51c1f61a3500494eb98b0d36f1e13bb 100644
--- a/_sass/navigation.scss
+++ b/_sass/navigation.scss
@@ -11,9 +11,9 @@
     position: absolute;
     top: 0;
     right: 0;
+    z-index: 101;
     height: 60px;
     padding-top: $sp-4;
-    z-index: 101;
     box-shadow: inset 0 -1px 0 $border-color;
   }
 }
@@ -89,7 +89,6 @@
   }
 }
 
-
 .navigation-list-toggle {
   position: absolute;
   right: $sp-4;
diff --git a/_sass/support/mixins/_layout.scss b/_sass/support/mixins/_layout.scss
index 52b9e3cb192b5ecfb8474b95b475f628f75d005c..7e7967e4cb42f06ae9c493894e0626efe8266c6a 100644
--- a/_sass/support/mixins/_layout.scss
+++ b/_sass/support/mixins/_layout.scss
@@ -15,20 +15,22 @@
     @media (min-width: rem($value)) {
       @content;
     }
-  } @else {
+  }
+
+  @else {
     @warn "No value could be retrieved from `#{$media-query}`. "
-        + "Please make sure it is defined in `$media-queries` map.";
+      + "Please make sure it is defined in `$media-queries` map.";
   }
 }
 
 // Responsive container
 
 @mixin container {
-  padding-left: $gutter-spacing-sm;
   padding-right: $gutter-spacing-sm;
+  padding-left: $gutter-spacing-sm;
 
   @include mq(md) {
-    padding-left: $gutter-spacing;
     padding-right: $gutter-spacing;
+    padding-left: $gutter-spacing;
   }
 }
diff --git a/package.json b/package.json
index c4ade3e06c888657d88b0af7a2ac02d6f4380b36..de44ef97e005b1605743c6ecd25cbb33cb4e1acf 100644
--- a/package.json
+++ b/package.json
@@ -10,5 +10,8 @@
     "stylelint": "^7.9.0",
     "stylelint-config-primer": "^1.4.0"
   },
-  "dependencies": {}
+  "dependencies": {},
+  "scripts": {
+    "test": "stylelint '**/*.scss'"
+  }
 }