diff --git a/src/zona/data/templates/basic.html b/src/zona/data/templates/basic.html
new file mode 100644
index 0000000..fbedadb
--- /dev/null
+++ b/src/zona/data/templates/basic.html
@@ -0,0 +1,6 @@
+{% extends "base.html" %}
+
+{% block content %}
+{{ content | safe }}
+{% endblock %}
+
diff --git a/src/zona/data/templates/post_list.html b/src/zona/data/templates/post_list.html
index 9896acf..e10df85 100644
--- a/src/zona/data/templates/post_list.html
+++ b/src/zona/data/templates/post_list.html
@@ -1,7 +1,11 @@
{% extends "base.html" %}
{% block content %}
+
{{ metadata.title }}
+
+{{ content | safe }}
+
{% if post_list %}
{% for item in post_list %}
diff --git a/src/zona/metadata.py b/src/zona/metadata.py
index de2233e..4d256db 100644
--- a/src/zona/metadata.py
+++ b/src/zona/metadata.py
@@ -19,7 +19,7 @@ class Metadata:
style: str | None = "/static/style.css"
header: bool = True
footer: bool = True
- template: str = "page.html"
+ template: str | None = None
post: bool | None = None
diff --git a/src/zona/templates.py b/src/zona/templates.py
index 806fcf6..ea7df47 100644
--- a/src/zona/templates.py
+++ b/src/zona/templates.py
@@ -50,11 +50,18 @@ class Templater:
env = self.env
meta = item.metadata
assert meta is not None
- template = env.get_template(
- meta.template
- if meta.template.endswith(".html")
- else meta.template + ".html"
- )
+ if meta.template is None:
+ if item.post:
+ template_name = "page.html"
+ else:
+ template_name = "basic.html"
+ else:
+ template_name = (
+ meta.template
+ if meta.template.endswith(".html")
+ else meta.template + ".html"
+ )
+ template = env.get_template(template_name)
header: str | Literal[False] = (
self.render_header() if meta.header else False
)