diff --git a/content/echoes/angelfold-2025-february/index.dj b/content/echoes/angelfold-2025-february/index.dj
index 562fb7d..626da79 100644
--- a/content/echoes/angelfold-2025-february/index.dj
+++ b/content/echoes/angelfold-2025-february/index.dj
@@ -1,7 +1,7 @@
 { role=config }
 ``` =toml
 created_at = "2025-03-04T18:07:07+01:00"
-hidden = true
+draft = true
 ```
 
 { role=description }
diff --git a/content/echoes/angelfold.dj b/content/echoes/angelfold.dj
index 976422e..3a1ab41 100644
--- a/content/echoes/angelfold.dj
+++ b/content/echoes/angelfold.dj
@@ -1,6 +1,7 @@
 { role=config }
 ``` =toml
 created_at = "2025-03-04T11:46:53+01:00"
+draft = true
 ```
 
 { role=description }
diff --git a/src/generate.rs b/src/generate.rs
index 7d15808..3262124 100644
--- a/src/generate.rs
+++ b/src/generate.rs
@@ -55,8 +55,9 @@ impl<'a> Pages<'a> {
 			PageMetadata::new(&mut self.last_modified_cache, content_path, source, events)?;
 
 		if std::env::var("MOONYTHM_DRAFTS").unwrap_or_default() == "1"
-			|| metadata.config.created_at.is_some()
-			|| !matches!(metadata.route, crate::metadata::PageRoute::Post(_))
+			|| (metadata.config.created_at.is_some()
+				|| !matches!(metadata.route, crate::metadata::PageRoute::Post(_)))
+				&& !metadata.config.draft
 		{
 			self.pages.push(metadata);
 		}
diff --git a/src/metadata.rs b/src/metadata.rs
index 0e8b4d9..78cc5f0 100644
--- a/src/metadata.rs
+++ b/src/metadata.rs
@@ -25,6 +25,9 @@ pub struct PageConfig {
 
 	#[serde(default)]
 	pub hidden: bool,
+
+	#[serde(default)]
+	pub draft: bool,
 }
 
 impl PageConfig {
@@ -69,6 +72,7 @@ impl PageConfig {
 
 		self.sitemap_exclude |= other.sitemap_exclude;
 		self.hidden |= other.hidden;
+		self.draft |= other.draft;
 
 		Ok(())
 	}