diff --git a/manifest.dhall b/manifest.dhall
index 60be5b604838aceb1048e45be6e4c7c812a50458..ab7bd8384b8c706f7fadb3578a8d2a13a2e70c67 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -409,6 +409,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
         (None Text)
         (Some "hunit")
     , callHackage "tasty-wai" "0.1.2.0"
+    , callHackage "text-display" "0.0.3.0"
     , callHackage "text-metrics" "0.3.2"
     , callHackage "text-zipper" "0.12"
     , callHackage "these" "1.1.1.1"
diff --git a/overlay.nix b/overlay.nix
index 61c657467b5b4c892b65d3f0e0ff608cbe70e897..8c3a27a83ed3546bfbebe144a02f23a58096ed48 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -491,6 +491,8 @@ final: prev: with pkgs.haskell.lib; {
 
     tasty-wai = prev.callPackage (./pkgs/tasty-wai.nix) { };
 
+    text-display = prev.callPackage (./pkgs/text-display.nix) { };
+
     text-metrics = prev.callPackage (./pkgs/text-metrics.nix) { };
 
     text-zipper = prev.callPackage (./pkgs/text-zipper.nix) { };
diff --git a/pkgs/text-display.nix b/pkgs/text-display.nix
new file mode 100644
index 0000000000000000000000000000000000000000..9fb5b8a571c3c63cb4cbe2d43b7464fa519d3c83
--- /dev/null
+++ b/pkgs/text-display.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, base, bytestring, hspec, lib, quickcheck-text
+, should-not-typecheck, text
+}:
+mkDerivation {
+  pname = "text-display";
+  version = "0.0.3.0";
+  sha256 = "4c7b94ba7776874f4dbbf0a686e8039fd1d174af7ba7477bac92c8af198d6fae";
+  libraryHaskellDepends = [ base bytestring text ];
+  testHaskellDepends = [
+    base bytestring hspec quickcheck-text should-not-typecheck text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-text/text-display#readme";
+  description = "A typeclass for user-facing output";
+  license = lib.licenses.mit;
+}
\ No newline at end of file