diff --git a/manifest.dhall b/manifest.dhall
index f4a24b448e377b26b62b02f440a2cd59a630d763..f78f260195d998ae0e68f4d9afb3bf42542539bd 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -162,6 +162,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "cryptohash-sha1" "0.11.101.0"
     , callHackage "data-fix" "0.3.2"
     , callHackage "dec" "0.0.5"
+    , callHackage "deriving-aeson" "0.2.8"
     , callHackage "dhall" "1.41.2"
     , callHackage "dhall-json" "1.7.11"
     , callHackage "dimensional" "1.5"
diff --git a/overlay.nix b/overlay.nix
index c7c57d68ad85953b0c0942da480a1d2feaa433ef..340fd1233106bb5e144695eda147b99037a1c095 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -167,6 +167,8 @@ final: prev: with pkgs.haskell.lib; {
 
   dec = prev.callPackage (./pkgs/dec.nix) { };
 
+  deriving-aeson = prev.callPackage (./pkgs/deriving-aeson.nix) { };
+
   dhall = prev.callPackage (./pkgs/dhall.nix) { };
 
   dhall-json = prev.callPackage (./pkgs/dhall-json.nix) { };
diff --git a/pkgs/deriving-aeson.nix b/pkgs/deriving-aeson.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5415ecab44a91259f7d7747c89c874c7e1ee086d
--- /dev/null
+++ b/pkgs/deriving-aeson.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, aeson, base, bytestring, lib }:
+mkDerivation {
+  pname = "deriving-aeson";
+  version = "0.2.8";
+  sha256 = "2dd3824fbb182811655e7ff9a2292ffc9178a29d0ccdcc0d04ef74c54856a938";
+  revision = "1";
+  editedCabalFile = "0pwx7lmdhpipg9ksqkz6xpjzh1aw2hip8y3jsk20ndl4wdzvxak5";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ aeson base ];
+  testHaskellDepends = [ aeson base bytestring ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Type driven generic aeson instance customisation";
+  license = lib.licenses.bsd3;
+  broken = false;
+}