diff --git a/README.md b/README.md
index a7a92f7a92fbb30b9063e916fa31d63743159f45..2812b2ac46c4f03bde630fa4bd7d46e91ab687aa 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,7 @@
 
 [![Travis](https://api.travis-ci.org/coreos/dex.svg)](https://travis-ci.org/coreos/dex)
 [![GoDoc](https://godoc.org/github.com/coreos/dex?status.svg)](https://godoc.org/github.com/coreos/dex)
+[![Go Report Card](https://goreportcard.com/badge/github.com/coreos/dex)](https://goreportcard.com/report/github.com/coreos/dex)
 
 ![logo](Documentation/logos/dex-horizontal-color.png)
 
diff --git a/cmd/example-app/templates.go b/cmd/example-app/templates.go
index 34bb23e4d791cbe45c2de4ef60a42d0682a22d77..661425401e79626a3bd4e15903e9ddff5ca3f7f5 100644
--- a/cmd/example-app/templates.go
+++ b/cmd/example-app/templates.go
@@ -70,7 +70,7 @@ func renderTemplate(w http.ResponseWriter, tmpl *template.Template, data interfa
 
 	switch err := err.(type) {
 	case *template.Error:
-		// An ExecError guarentees that Execute has not written to the underlying reader.
+		// An ExecError guarantees that Execute has not written to the underlying reader.
 		log.Printf("Error rendering template %s: %s", tmpl.Name(), err)
 
 		// TODO(ericchiang): replace with better internal server error.
diff --git a/server/api.go b/server/api.go
index 0405bfde62d2f7e88c032759e739afc7e02babae..61a0e5759cf2c23cac32b7bb8dab961960267765 100644
--- a/server/api.go
+++ b/server/api.go
@@ -13,7 +13,7 @@ import (
 	"github.com/coreos/dex/version"
 )
 
-// apiVersion increases everytime a new call is added to the API. Clients should use this info
+// apiVersion increases every time a new call is added to the API. Clients should use this info
 // to determine if the server supports specific features.
 const apiVersion = 0
 
diff --git a/server/templates.go b/server/templates.go
index 45c1d198fdbcf7efea6ad6c5bc13486dba090249..03d1f280eede32f06c57feb17638e669ef5dd47f 100644
--- a/server/templates.go
+++ b/server/templates.go
@@ -222,7 +222,7 @@ func (t *templates) oob(w http.ResponseWriter, code string) error {
 	return renderTemplate(w, t.oobTmpl, data)
 }
 
-// small io.Writer utilitiy to determine if executing the template wrote to the underlying response writer.
+// small io.Writer utility to determine if executing the template wrote to the underlying response writer.
 type writeRecorder struct {
 	wrote bool
 	w     io.Writer
diff --git a/storage/conformance/conformance.go b/storage/conformance/conformance.go
index d9cc1ca83031c5d190a0c38944041f300a307696..5ebbf31c2318b9f112a39d9f1f8426c431e6353e 100644
--- a/storage/conformance/conformance.go
+++ b/storage/conformance/conformance.go
@@ -62,7 +62,7 @@ func mustLoadJWK(b string) *jose.JSONWebKey {
 func mustBeErrNotFound(t *testing.T, kind string, err error) {
 	switch {
 	case err == nil:
-		t.Errorf("deleting non-existant %s should return an error", kind)
+		t.Errorf("deleting non-existent %s should return an error", kind)
 	case err != storage.ErrNotFound:
 		t.Errorf("deleting %s expected storage.ErrNotFound, got %v", kind, err)
 	}
diff --git a/storage/sql/crud.go b/storage/sql/crud.go
index 1bc36ccdc01c34a0185ecb0b7b9f2178b0a35796..e32703634b699765922243899b534df7e3d4fa46 100644
--- a/storage/sql/crud.go
+++ b/storage/sql/crud.go
@@ -13,7 +13,7 @@ import (
 )
 
 // TODO(ericchiang): The update, insert, and select methods queries are all
-// very repetivite. Consider creating them programatically.
+// very repetitive. Consider creating them programmatically.
 
 // keysRowID is the ID of the only row we expect to populate the "keys" table.
 const keysRowID = "keys"