diff --git a/manifest.dhall b/manifest.dhall
index 4bb125a387affc796d4bc4462be37b6cada58674..cf6d04b04b13acc4a69e6bc1b7e3e8e0acdd4567 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -120,6 +120,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "citeproc" "0.8.0.1"
     , callHackage "co-log-core" "0.3.1.0"
     , callHackage "co-log-polysemy" "0.0.1.3"
+    , callHackage "commonmark" "0.2.2"
     , callHackage "comonad" "5.0.8"
     , callHackage "compact" "0.2.0.0"
     , callCabal2nix
diff --git a/overlay.nix b/overlay.nix
index d7a447d2196729e043874d172f8bb740b7105623..9084538ebdeb0c31815e5175a9dcb249b77abbf6 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -115,6 +115,8 @@ final: prev: with pkgs.haskell.lib; {
 
   co-log-polysemy = prev.callPackage (./pkgs/co-log-polysemy.nix) { };
 
+  commonmark = prev.callPackage (./pkgs/commonmark.nix) { };
+
   comonad = prev.callPackage (./pkgs/comonad.nix) { };
 
   compact = prev.callPackage (./pkgs/compact.nix) { };
diff --git a/pkgs/commonmark.nix b/pkgs/commonmark.nix
new file mode 100644
index 0000000000000000000000000000000000000000..28ddc47df270607bf1f62c54200f3f328049d871
--- /dev/null
+++ b/pkgs/commonmark.nix
@@ -0,0 +1,54 @@
+{ mkDerivation
+, base
+, bytestring
+, containers
+, lib
+, parsec
+, tasty
+, tasty-bench
+, tasty-hunit
+, tasty-quickcheck
+, text
+, transformers
+, unicode-data
+, unicode-transforms
+}:
+mkDerivation {
+  pname = "commonmark";
+  version = "0.2.2";
+  sha256 = "b70b421f5753d983745e558d7d66a5e346ee5b2ebc0a827e9f63f8ff7a62b24e";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    containers
+    parsec
+    text
+    transformers
+    unicode-data
+    unicode-transforms
+  ];
+  testHaskellDepends = [
+    base
+    parsec
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+    text
+    unicode-transforms
+  ];
+  benchmarkHaskellDepends = [ base tasty-bench text ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/jgm/commonmark-hs";
+  description = "Pure Haskell commonmark parser";
+  license = lib.licenses.bsd3;
+  broken = false;
+}