diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 0.8.1
+
+* aeson 1.0
+
 ## 0.8.0
 
 * Warp 3.1
diff --git a/yackage.cabal b/yackage.cabal
--- a/yackage.cabal
+++ b/yackage.cabal
@@ -1,5 +1,5 @@
 Name:                yackage
-Version:             0.8.0
+Version:             0.8.1
 Synopsis:            Personal Hackage replacement for testing new packages.
 description:         Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/yackage>.
 Homepage:            http://github.com/snoyberg/yackage
@@ -29,6 +29,7 @@
                      , containers
                      , directory
                      , yaml
+                     , aeson
                      , cmdargs
                      , wai >= 1.4
                      , transformers
diff --git a/yackage.hs b/yackage.hs
--- a/yackage.hs
+++ b/yackage.hs
@@ -6,6 +6,9 @@
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE ViewPatterns #-}
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
 import Yesod.Core
 import Yesod.Form
 import Text.Hamlet
@@ -44,6 +47,9 @@
 import qualified Data.Vector as Vector
 import Data.Conduit (($$))
 import Data.Conduit.List (consume)
+#if MIN_VERSION_aeson(1,0,0)
+import qualified Data.Aeson as A
+#endif
 
 data Args = Args
     { port :: Int
@@ -261,6 +267,10 @@
     go (pn, vs) = toPathPiece pn .= array (map go' $ Set.toList vs)
     go' = String . toPathPiece
 
+#if MIN_VERSION_aeson(1,0,0)
+deriving instance FromJSON PackageName
+deriving instance A.FromJSONKey PackageName
+#else
 instance FromJSON PackageDB where
     parseJSON (Object o) = do
         fmap Map.fromList $ mapM go $ HMap.toList o
@@ -275,3 +285,4 @@
             return x
         go' _ = fail "parseConfig.go'"
     parseJSON _ = fail "parseConfig"
+#endif
