diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,3 +1,9 @@
+[1.23.0.1]
+
+  * Allow aeson 2.2.
+
+  * Remove dependency on string-qq (recbecca skinner).
+
 [1.23]
 
   * Remove Null constructor from Block (#91) [API change].
diff --git a/pandoc-types.cabal b/pandoc-types.cabal
--- a/pandoc-types.cabal
+++ b/pandoc-types.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 Name:                pandoc-types
-version:             1.23
+version:             1.23.0.1
 Synopsis:            Types for representing a structured document
 Description:         @Text.Pandoc.Definition@ defines the 'Pandoc' data
                      structure, which is used by pandoc to represent
@@ -57,7 +57,7 @@
                      syb >= 0.1 && < 0.8,
                      ghc-prim >= 0.2,
                      bytestring >= 0.9 && < 0.12,
-                     aeson >= 0.6.2 && < 2.2,
+                     aeson >= 0.6.2 && < 2.3,
                      transformers >= 0.2 && < 0.7,
                      QuickCheck >= 2.10 && < 2.15
   if !impl(ghc >= 8.0)
@@ -69,10 +69,11 @@
   type:                exitcode-stdio-1.0
   hs-source-dirs:      test
   main-is:             test-pandoc-types.hs
+  Other-modules:       Data.String.QQ
   build-depends:       base,
                        pandoc-types,
                        syb,
-                       aeson >= 0.6.2 && < 2.2,
+                       aeson >= 0.6.2 && < 2.3,
                        containers >= 0.3,
                        text,
                        bytestring >= 0.9 && < 0.12,
@@ -81,7 +82,7 @@
                        test-framework-quickcheck2 >= 0.2.9 && < 0.4,
                        QuickCheck >= 2.10 && < 2.15,
                        HUnit >= 1.2 && < 1.7,
-                       string-qq >= 0.0.2 && < 0.1
+                       template-haskell >= 2
   ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wall -O2
   default-language:  Haskell2010
 
diff --git a/test/Data/String/QQ.hs b/test/Data/String/QQ.hs
new file mode 100644
--- /dev/null
+++ b/test/Data/String/QQ.hs
@@ -0,0 +1,19 @@
+-- | This module is based off the QQ implementation from string-qq
+-- (https://github.com/audreyt/string-qq).
+{-# LANGUAGE TemplateHaskellQuotes #-}
+{-# LANGUAGE RankNTypes #-}
+module Data.String.QQ (s) where
+import Data.String (IsString(..))
+import Language.Haskell.TH.Quote (QuasiQuoter(..))
+
+s :: QuasiQuoter
+s = QuasiQuoter expr pat typ dec
+  where
+    expr = (\a -> [|fromString a|]) . clean
+    pat = error "Cannot use s as a pattern"
+    typ = error "Cannot use s as a type"
+    dec = error "Cannot use s as a dec"
+    clean = removeCarriageReturns . trimLeadingNewline
+    removeCarriageReturns = filter (/= '\r')
+    trimLeadingNewline ('\n':xs) = xs
+    trimLeadingNewline xs = xs
