diff --git a/quartz/i18n/index.ts b/quartz/i18n/index.ts
index 25aa5fb..69a18c9 100644
--- a/quartz/i18n/index.ts
+++ b/quartz/i18n/index.ts
@@ -3,12 +3,14 @@ import en from "./locales/en-US"
 import fr from "./locales/fr-FR"
 import ja from "./locales/ja-JP"
 import de from "./locales/de-DE"
+import nl from "./locales/nl-NL"
 
 export const TRANSLATIONS = {
   "en-US": en,
   "fr-FR": fr,
   "ja-JP": ja,
   "de-DE": de,
+  "nl-NL": nl,
 } as const
 
 export const i18n = (locale: ValidLocale): Translation => TRANSLATIONS[locale]
diff --git a/quartz/i18n/locales/nl-NL.ts b/quartz/i18n/locales/nl-NL.ts
new file mode 100644
index 0000000..5426a1e
--- /dev/null
+++ b/quartz/i18n/locales/nl-NL.ts
@@ -0,0 +1,66 @@
+import { Translation } from "./definition"
+
+export default {
+  propertyDefaults: {
+    title: "Naamloos",
+    description: "Geen beschrijving gegeven.",
+  },
+  components: {
+    backlinks: {
+      title: "Backlinks",
+      noBacklinksFound: "Geen backlinks gevonden",
+    },
+    themeToggle: {
+      lightMode: "Lichte modus",
+      darkMode: "Donkere modus",
+    },
+    explorer: {
+      title: "Verkenner",
+    },
+    footer: {
+      createdWith: "Gemaakt met",
+    },
+    graph: {
+      title: "Grafiekweergave",
+    },
+    recentNotes: {
+      title: "Recente notities",
+      seeRemainingMore: ({ remaining }) => `Zie ${remaining} meer →`,
+    },
+    transcludes: {
+      transcludeOf: ({ targetSlug }) => `Invoeging van ${targetSlug}`,
+      linkToOriginal: "Link naar origineel",
+    },
+    search: {
+      title: "Zoeken",
+      searchBarPlaceholder: "Doorzoek de website",
+    },
+    tableOfContents: {
+      title: "Inhoudsopgave",
+    },
+  },
+  pages: {
+    rss: {
+      recentNotes: "Recente notities",
+      lastFewNotes: ({ count }) => `Laatste ${count} notities`,
+    },
+    error: {
+      title: "Niet gevonden",
+      notFound: "Deze pagina is niet zichtbaar of bestaat niet.",
+    },
+    folderContent: {
+      folder: "Map",
+      itemsUnderFolder: ({ count }) =>
+        count === 1 ? "1 item in deze map" : `${count} items in deze map.`,
+    },
+    tagContent: {
+      tag: "Label",
+      tagIndex: "Label-index",
+      itemsUnderTag: ({ count }) =>
+        count === 1 ? "1 item met dit label." : `${count} items met dit label.`,
+      showingFirst: ({ count }) =>
+        count === 1 ? "Eerste label tonen." : `Eerste ${count} labels tonen.`,
+      totalTags: ({ count }) => `${count} labels gevonden.`,
+    },
+  },
+} as const satisfies Translation