diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,14 @@
 # Changelog for rollbar-client
 
-## Unreleased changes
+All notable changes to this project will be documented in this file
+
+## [1.0.0] - 2022-12-28
+
+### Changed
+
+- Updated dependency aeson version.
+- Updated base version
+
+### Removed
+
+- Support for GHC 8.6.1
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,5 +1,8 @@
 # Rollbar Client
 
+![CI](https://github.com/stackbuilders/rollbar-haskell/workflows/CI/badge.svg)
+![Hackage](https://img.shields.io/hackage/v/rollbar-client)
+
 Core library to communicate with [Rollbar
 API](https://explorer.docs.rollbar.com/).
 
diff --git a/rollbar-client.cabal b/rollbar-client.cabal
--- a/rollbar-client.cabal
+++ b/rollbar-client.cabal
@@ -1,16 +1,17 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.33.0.
+-- This file has been generated from package.yaml by hpack version 0.34.7.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: b3e835bcc225cb66a06268126c5a04b48d06fd90b55677e26219ecfe207068d3
+-- hash: 125ccbaa8f8a1b3dab026c05c979880711d5f61ef9cf7323bfe23bda09bb3743
 
 name:           rollbar-client
-version:        0.1.0
+version:        1.0.0
 synopsis:       Core library to communicate with Rollbar API.
 description:    Please see the README on GitHub at
                 <https://github.com/stackbuilders/rollbar-haskell/tree/master/rollbar-client>
+category:       Network
 homepage:       https://github.com/stackbuilders/rollbar-haskell#readme
 bug-reports:    https://github.com/stackbuilders/rollbar-haskell/issues
 author:         Stack Builders Inc.
@@ -18,7 +19,8 @@
 copyright:      2020 Stack Builders Inc.
 license:        MIT
 license-file:   LICENSE
-tested-with:    GHC ==8.6.5, GHC ==8.8.4, GHC ==8.10.2
+tested-with:
+    GHC ==8.8.4, GHC ==8.10.2
 build-type:     Simple
 extra-source-files:
     README.md
@@ -47,8 +49,8 @@
       src
   ghc-options: -Wall
   build-depends:
-      aeson >=1.4 && <2
-    , base >=4.12 && <5
+      aeson >=2.0 && <3
+    , base >=4.13 && <5
     , bytestring >=0.10 && <1
     , directory >=1.3 && <2
     , exceptions >=0.10 && <1
@@ -68,7 +70,7 @@
       example
   ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
   build-depends:
-      base >=4.12 && <5
+      base >=4.13 && <5
     , rollbar-client
     , text
   if flag(example)
@@ -90,7 +92,7 @@
       hspec-discover:hspec-discover >=2.7 && <3
   build-depends:
       aeson
-    , base >=4.12 && <5
+    , base >=4.13 && <5
     , hspec >=2.7 && <3
     , mtl
     , rollbar-client
diff --git a/src/Rollbar/Client/Item.hs b/src/Rollbar/Client/Item.hs
--- a/src/Rollbar/Client/Item.hs
+++ b/src/Rollbar/Client/Item.hs
@@ -28,14 +28,15 @@
   ) where
 
 import qualified Control.Exception as E
-import qualified Data.HashMap.Strict as HM
+import qualified Data.Aeson.KeyMap as KM
+import qualified Data.Aeson.Key as K
 import qualified Data.Text as T
 
 import Control.Monad.IO.Class (MonadIO(..))
 import Data.Aeson
 import Data.Maybe (catMaybes)
 import Data.Monoid (Endo(..))
-import Data.Text
+import Data.Text (Text)
 import Network.HTTP.Req
 import Rollbar.Client.Internal
 import Rollbar.Client.Settings
@@ -239,7 +240,7 @@
 
 instance ToJSON Message where
   toJSON Message{..} = Object $
-    HM.insert "body" (toJSON messageBody) messageMetadata
+    KM.insert "body" (toJSON messageBody) messageMetadata
 
 -- | The severity level. One of: "critical", "error", "warning", "info",
 -- "debug" Defaults to "error" for exceptions and "info" for messages. The
@@ -308,18 +309,18 @@
 getRequestModifier = do
   RequestModifiers{..} <- settingsRequestModifiers <$> getSettings
   return $ appEndo $ mconcat $ catMaybes
-    [ withHeaders . excludeNames <$> requestModifiersExcludeHeaders
-    , withParams . excludeNames <$> requestModifiersExcludeParams
-    , withHeaders . includeNames <$> requestModifiersIncludeHeaders
-    , withParams . includeNames <$> requestModifiersIncludeParams
+    [ withHeaders . excludeNames . fmap K.fromText <$> requestModifiersExcludeHeaders
+    , withParams . excludeNames . fmap K.fromText <$> requestModifiersExcludeParams
+    , withHeaders . includeNames . fmap K.fromText <$> requestModifiersIncludeHeaders
+    , withParams . includeNames . fmap K.fromText <$> requestModifiersIncludeParams
     ]
   where
     withHeaders f = Endo $ \request -> request
       { requestHeaders = f $ requestHeaders request }
     withParams f = Endo $ \request -> request
       { requestParams = f $ requestParams request }
-    excludeNames names = HM.filterWithKey $ \name _ -> name `notElem` names
-    includeNames names = HM.filterWithKey $ \name _ -> name `elem` names
+    excludeNames names = KM.filterWithKey $ \name _ -> name `notElem` names
+    includeNames names = KM.filterWithKey $ \name _ -> name `elem` names
 
 -- | Data about the server related to this event.
 data Server = Server
@@ -360,7 +361,7 @@
 defaultNotifier :: Notifier
 defaultNotifier = Notifier
   { notifierName = "rollbar-client"
-  , notifierVersion = "0.1.0"
+  , notifierVersion = "1.0.0"
   }
 
 newtype ItemId = ItemId Text
diff --git a/test/Rollbar/ClientSpec.hs b/test/Rollbar/ClientSpec.hs
--- a/test/Rollbar/ClientSpec.hs
+++ b/test/Rollbar/ClientSpec.hs
@@ -7,7 +7,7 @@
   ( spec
   ) where
 
-import qualified Data.HashMap.Strict as HM
+import qualified Data.Aeson.KeyMap as KM
 
 import Control.Monad.Reader
 import Data.Aeson
@@ -41,11 +41,11 @@
         request = Request
           { requestUrl = "http://example.com"
           , requestMethod = "GET"
-          , requestHeaders = HM.fromList
+          , requestHeaders = KM.fromList
               [ ("Host", "example.com")
               , ("Secret", "p4ssw0rd")
               ]
-          , requestParams = HM.fromList
+          , requestParams = KM.fromList
               [ ("user", "John Doe")
               , ("password", "p4ssw0rd")
               ]
@@ -61,28 +61,28 @@
             defaultRequestModifiers
               { requestModifiersExcludeHeaders = Just $ pure "Secret" }
       in requestModifier request `shouldBe` request
-           { requestHeaders = HM.fromList [("Host", "example.com")] }
+           { requestHeaders = KM.fromList [("Host", "example.com")] }
 
     it "excludes the params not matching the given names" $
       let requestModifier = runReader getRequestModifier $ mkSettings $
             defaultRequestModifiers
               { requestModifiersExcludeParams = Just $ pure "password" }
       in requestModifier request `shouldBe` request
-           { requestParams = HM.fromList [("user", "John Doe")] }
+           { requestParams = KM.fromList [("user", "John Doe")] }
 
     it "includes only the headers matching the given names" $
       let requestModifier = runReader getRequestModifier $ mkSettings $
             defaultRequestModifiers
               { requestModifiersIncludeHeaders = Just $ pure "Host" }
       in requestModifier request `shouldBe` request
-           { requestHeaders = HM.fromList [("Host", "example.com")] }
+           { requestHeaders = KM.fromList [("Host", "example.com")] }
 
     it "includes only the params matching the given names" $
       let requestModifier = runReader getRequestModifier $ mkSettings $
             defaultRequestModifiers
               { requestModifiersIncludeParams = Just $ pure "user" }
       in requestModifier request `shouldBe` request
-           { requestParams = HM.fromList [("user", "John Doe")] }
+           { requestParams = KM.fromList [("user", "John Doe")] }
 
   describe "defaultNotifier" $
     it "matches the package name and version" $ do
@@ -127,7 +127,7 @@
           itemId <- runRollbar settings $ do
             item <- mkItem $ PayloadMessage $ Message
               { messageBody = "Request over threshold of 10 seconds"
-              , messageMetadata = HM.fromList
+              , messageMetadata = KM.fromList
                   [ ("route", "home#index")
                   , ("time_elapsed", Number 15.23)
                   ]
