diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 0.2.1
+
+- Move over to `githash`
+
 ## 0.2.0.0
 
 - Upgrade to yesod-core 1.6
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
 A subsite for displaying git information.
 
+[![Hackage](https://img.shields.io/hackage/v/yesod-gitrev.svg)](https://hackage.haskell.org/package/yesod-gitrev) [![Build Status](https://travis-ci.org/DanBurton/yesod-gitrev.svg)](https://travis-ci.org/DanBurton/yesod-gitrev)
+
 You can use the `gitRev` splice (or `tGitRev` typed splice)
 to generate a value of type `GitRev`.
 Put this in your app's foundation,
diff --git a/examples/ExampleMain.hs b/examples/ExampleMain.hs
new file mode 100644
--- /dev/null
+++ b/examples/ExampleMain.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE QuasiQuotes       #-}
+{-# LANGUAGE TemplateHaskell   #-}
+{-# LANGUAGE TypeFamilies      #-}
+
+-- to run this file, from the root dir of this repo:
+-- stack build
+-- stack runghc examples/ExampleMain.hs
+-- Then visit localhost:3000/build-version in your browser
+
+module ExampleMain where
+
+import Yesod.Core
+import Yesod.GitRev
+
+data Master = Master
+  { getGitRev :: GitRev
+  }
+
+mkYesod "Master" [parseRoutes|
+/build-version GitRevR GitRev getGitRev
+|]
+
+instance Yesod Master
+
+main :: IO ()
+main = warp 3000 $ Master $$(tGitRev)
diff --git a/src/Yesod/GitRev.hs b/src/Yesod/GitRev.hs
--- a/src/Yesod/GitRev.hs
+++ b/src/Yesod/GitRev.hs
@@ -28,11 +28,21 @@
         <dd>#{gitRevBranch}
         <dt>Dirty
         <dd>#{gitRevDirty}
+        <dt>Commit Date
+        <dd>#{gitRevCommitDate}
+        <dt>Commit Count
+        <dd>#{gitRevCommitCount}
+        <dt>Commit Message
+        <dd>#{gitRevCommitMessage}
     |]
+  -- TODO: derive & use toJSON
   provideRep $ return $ object
     [ "hash"   .= gitRevHash
     , "branch" .= gitRevBranch
     , "dirty"  .= gitRevDirty
+    , "commitDate" .= gitRevCommitDate
+    , "commitCount" .= gitRevCommitCount
+    , "commitMessage" .= gitRevCommitMessage
     ]
 
 instance Yesod site => YesodSubDispatch GitRev site where
diff --git a/src/Yesod/GitRev/Data.hs b/src/Yesod/GitRev/Data.hs
--- a/src/Yesod/GitRev/Data.hs
+++ b/src/Yesod/GitRev/Data.hs
@@ -1,43 +1,52 @@
-{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE DeriveLift #-}
 {-# LANGUAGE TemplateHaskell #-}
 {-# LANGUAGE QuasiQuotes #-}
 {-# LANGUAGE TypeFamilies #-}
 
 module Yesod.GitRev.Data where
 
-import Development.GitRev (gitHash, gitBranch, gitDirty)
-import Language.Haskell.TH.Syntax (Lift(lift), Q, TExp, Exp, unsafeTExpCoerce)
-import Yesod.Core hiding (lift)
+import GitHash
+import Language.Haskell.TH.Syntax (Lift, Q, TExp, Exp, unTypeQ)
+import Yesod.Core
 
+-- | You should not construct one of these yourself.
+-- Instead, use gitRev or tGitRev.
+-- Fields added to this record are treated as a minor version bump.
 data GitRev = GitRev
   { gitRevHash :: String
   , gitRevBranch :: String
   , gitRevDirty :: Bool
+  , gitRevCommitDate :: String
+    -- ^ @since 0.2.1
+  , gitRevCommitCount :: Int
+    -- ^ @since 0.2.1
+  , gitRevCommitMessage :: String
+    -- ^ @since 0.2.1
   }
+  deriving Lift
 
 mkYesodSubData "GitRev" [parseRoutes|
 / GitRevR GET
 |]
 
-instance Lift GitRev where
-  lift GitRev{..} =
-    [|
-      GitRev
-        { gitRevHash = $(lift gitRevHash)
-        , gitRevBranch = $(lift gitRevBranch)
-        , gitRevDirty = $(lift gitRevDirty)
-        }
-    |]
-
+-- | A typed splice for creating a GitRev.
+-- Example: $$(tGitRev) :: GitRev
 tGitRev :: Q (TExp GitRev)
-tGitRev = unsafeTExpCoerce gitRev
+tGitRev = [|| gitRevFromGitInfo $$(tGitInfoCwd) ||]
 
+-- | An untyped splice for creating a GitRev.
+-- Example: $(gitRev) :: GitRev
 gitRev :: Q Exp
-gitRev =
-  [|
-    GitRev
-      { gitRevHash = $gitHash
-      , gitRevBranch = $gitBranch
-      , gitRevDirty = $gitDirty
-      }
-  |]
+gitRev = unTypeQ tGitRev
+
+-- This function is considered to be "internal".
+-- Changes to this function will not be accounted for in minor version bumps.
+gitRevFromGitInfo :: GitInfo -> GitRev
+gitRevFromGitInfo gi = GitRev
+  { gitRevHash = giHash gi
+  , gitRevBranch = giBranch gi
+  , gitRevDirty = giDirty gi
+  , gitRevCommitDate = giCommitDate gi
+  , gitRevCommitCount = giCommitCount gi
+  , gitRevCommitMessage = giCommitMessage gi
+  }
diff --git a/tests/TestExamples.hs b/tests/TestExamples.hs
new file mode 100644
--- /dev/null
+++ b/tests/TestExamples.hs
@@ -0,0 +1,5 @@
+import qualified ExampleMain
+
+-- TODO: Run the exampleMain server and test that it returns an appopriate response
+main :: IO ()
+main = putStrLn "ExampleMain compiled"
diff --git a/yesod-gitrev.cabal b/yesod-gitrev.cabal
--- a/yesod-gitrev.cabal
+++ b/yesod-gitrev.cabal
@@ -1,10 +1,13 @@
 name:                yesod-gitrev
-version:             0.2.0.0
+version:             0.2.1
 synopsis:
   A subsite for displaying git information.
 author:              Dan Burton
 maintainer:          danburton.email@gmail.com
 
+category: Web
+description: (Please see the readme) https://github.com/DanBurton/yesod-gitrev#readme
+
 homepage:            https://github.com/DanBurton/yesod-gitrev
 bug-reports:         https://github.com/DanBurton/yesod-gitrev/issues
 
@@ -15,6 +18,8 @@
 build-type:          Simple
 cabal-version:       >=1.10
 
+tested-with: GHC == 8.6.3, GHC == 8.4.4
+
 extra-source-files:
   README.md ChangeLog.md
 
@@ -26,11 +31,24 @@
   build-depends:
       base >=4 && <5
     , aeson
-    , gitrev
+    , githash
     , template-haskell
-    , yesod-core
+    , yesod-core >= 1.6
   hs-source-dirs:      src
   default-language:    Haskell2010
+
+test-suite examples
+  type: exitcode-stdio-1.0
+  hs-source-dirs: examples, tests
+  main-is: TestExamples.hs
+  build-depends:
+      base
+    , yesod-core
+    , yesod-gitrev
+  other-modules:
+      ExampleMain
+  default-language: Haskell2010
+
 
 source-repository head
   type:     git
