diff --git a/flake.nix b/flake.nix
index d0ddda0..c08f838 100644
--- a/flake.nix
+++ b/flake.nix
@@ -40,6 +40,7 @@
           fileset = lib.fileset.unions [
             (lib.fileset.fromSource (typixLib.cleanTypstSource ./.))
             ./src/info.toml
+            # ./src/signature.svg
           ];
         };
         commonArgs = {
diff --git a/src/cover-letter.typ b/src/cover-letter.typ
new file mode 100644
index 0000000..610f04f
--- /dev/null
+++ b/src/cover-letter.typ
@@ -0,0 +1,51 @@
+#import "lib/main.typ": *
+#import "lib/extra.typ": *
+
+#let meta = toml("info.toml")
+
+#show: cover-letter.with(
+  author: meta.personal.name,
+  title: meta.personal.title,
+  location: meta.personal.location,
+  email: meta.personal.email,
+  github: meta.personal.github,
+  linkedin: meta.personal.linkedin,
+  personal-site: meta.personal.website,
+  accent-color: meta.layout.accent_color,
+  font: meta.layout.font,
+  paper: meta.layout.paper,
+)
+
+\ \
+
+// recipient
+Lorem Ipsum GmbH \
+Dolor sit amet Str. 1 \
+11111 Lorem \
+Germany
+
+\ \
+
+#align(
+  right,
+  datetime.today().display(),
+)
+
+Dear X,
+
+#lorem(30)
+
+#lorem(50)
+
+#lorem(60)
+
+#lorem(40)
+
+#lorem(20)
+
+\
+
+Sincerely,
+
+Felix Schröter
+// #signature("signature.svg")
diff --git a/src/lib/extra.typ b/src/lib/extra.typ
new file mode 100644
index 0000000..cacce12
--- /dev/null
+++ b/src/lib/extra.typ
@@ -0,0 +1,3 @@
+#let signature(path) = {
+  image("../" + path, alt: "signature", width: 25%)
+}