diff --git a/layouts/_default/atom_entry.atom b/layouts/_default/atom_entry.atom
new file mode 100644
index 0000000..4ad1c83
--- /dev/null
+++ b/layouts/_default/atom_entry.atom
@@ -0,0 +1,6 @@
+
+ {{ partial "feeds/atom/entry_metadata.xml" . }}
+ {{- if .Content -}}
+ {{ `
+ {{- end -}}
+
diff --git a/layouts/_default/rss_item.rss b/layouts/_default/rss_item.rss
new file mode 100644
index 0000000..44f1961
--- /dev/null
+++ b/layouts/_default/rss_item.rss
@@ -0,0 +1,4 @@
+-
+ {{ partial "feeds/rss/item_metadata.xml" . }}
+ {{ `
+
diff --git a/layouts/_default/section.atom b/layouts/_default/section.atom
new file mode 100644
index 0000000..632e1a2
--- /dev/null
+++ b/layouts/_default/section.atom
@@ -0,0 +1,7 @@
+{{- $page := . -}}
+{{- $pages := $page.RegularPages -}}
+{{- $limit := $.Site.Config.Services.RSS.Limit -}}
+{{- if ge $limit 1 -}}
+ {{- $pages = $pages | first $limit -}}
+{{- end -}}
+{{ partial "feeds/atom/base.xml" (dict "context" $page "pages" $pages "limit" $limit) }}
diff --git a/layouts/index.atom b/layouts/index.atom
new file mode 100644
index 0000000..2e564a3
--- /dev/null
+++ b/layouts/index.atom
@@ -0,0 +1,7 @@
+{{- $pages := .Site.RegularPages -}}
+{{- $limit := .Site.Config.Services.RSS.Limit -}}
+{{- if ge $limit 1 -}}
+ {{- $pages = $pages | first $limit -}}
+{{- end -}}
+
+{{ partial "feeds/atom/base.xml" (dict "context" . "pages" $pages) }}
diff --git a/layouts/index.rss b/layouts/index.rss
new file mode 100644
index 0000000..e46c88d
--- /dev/null
+++ b/layouts/index.rss
@@ -0,0 +1,18 @@
+{{- $pageContext := . -}}
+{{- if .IsHome -}}
+ {{ $pageContext = .Site }}
+{{- end -}}
+
+{{- $pages := slice -}}
+{{- if or $.IsHome $.IsSection -}}
+ {{- $pages = $pageContext.RegularPages -}}
+{{- else -}}
+ {{- $pages = $pageContext.Pages -}}
+{{- end -}}
+
+{{- $limit := .Site.Config.Services.RSS.Limit -}}
+{{- if ge $limit 1 -}}
+ {{- $pages = $pages | first $limit -}}
+{{- end -}}
+
+{{ partial "feeds/rss/base.xml" (dict "context" . "pages" $pages "Site" .Site) }}
diff --git a/layouts/partials/feeds/atom/base.xml b/layouts/partials/feeds/atom/base.xml
new file mode 100644
index 0000000..e965cc3
--- /dev/null
+++ b/layouts/partials/feeds/atom/base.xml
@@ -0,0 +1,26 @@
+{{- $context := .context -}}
+{{- $pages := .pages -}}
+{{- $limit := .limit -}}
+{{ printf "" | safeHTML }}
+
+ {{ $context.Site.Title }}
+
+
+
+ {{ with $context.Date }}
+ {{ . | time.Format "2006-01-02T15:04:05-07:00" | safeHTML }}
+ {{ end }}
+ {{ $context.Permalink }}
+ {{ with $context.Site.Author }}
+
+ {{ with .name }}{{ . }}{{ end }}
+ {{ with .email }}{{ . }}{{ end }}
+ {{ $context.Site.Home.Permalink }}
+
+ {{ end }}
+ Hugo {{ hugo.Version }}
+ © 2020-{{ now.Year }} Eryn Wells
+ {{ range $pages }}
+ {{ .Render "atom_entry" }}
+ {{ end }}
+
diff --git a/layouts/partials/feeds/atom/entry_metadata.xml b/layouts/partials/feeds/atom/entry_metadata.xml
new file mode 100644
index 0000000..ec15e30
--- /dev/null
+++ b/layouts/partials/feeds/atom/entry_metadata.xml
@@ -0,0 +1,11 @@
+
{{ .Title }}
+{{ .Permalink }}
+
+{{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }}
+{{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }}
+{{ range slice "series" "categories" "tags" }}
+ {{- range $.GetTerms . }}
+ {{- $scheme := (.Site.GetPage (printf "/%s" .Section)).Permalink -}}
+
+ {{ end -}}
+{{ end -}}
diff --git a/layouts/partials/feeds/rss/base.xml b/layouts/partials/feeds/rss/base.xml
new file mode 100644
index 0000000..559c566
--- /dev/null
+++ b/layouts/partials/feeds/rss/base.xml
@@ -0,0 +1,28 @@
+{{- $context := .context -}}
+{{- $pages := .pages -}}
+{{- printf "" | safeHTML }}
+
+
+ {{ $context.Site.Title }}
+ {{ $context.Permalink }}
+ Recent content on {{ $context.Site.Title }}
+ Hugo {{ hugo.Version }}
+ {{ with $context.Site.LanguageCode }}{{ . }}{{ end }}
+ {{ with $context.Site.Author }}
+ {{ .name }} <{{ .email }}>
+ {{ .name }} <{{ .email }}>
+ {{ end }}
+ {{ with $context.Site.Copyright -}}
+ {{ . }}
+ {{- end }}
+ {{ if not .Date.IsZero }}
+ {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}
+ {{ end }}
+ {{ with .OutputFormats.Get "RSS" }}{{ printf "" .Permalink .MediaType | safeHTML }}{{ end }}
+ {{ range $pages }}
+ {{ if not .Date.IsZero }}
+ {{ .Render "rss_item" }}
+ {{ end }}
+ {{ end }}
+
+
diff --git a/layouts/partials/feeds/rss/item_metadata.xml b/layouts/partials/feeds/rss/item_metadata.xml
new file mode 100644
index 0000000..e91378f
--- /dev/null
+++ b/layouts/partials/feeds/rss/item_metadata.xml
@@ -0,0 +1,11 @@
+{{ .Title }}
+{{ .Permalink }}
+{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}
+{{ with .Site.Author.email }}{{ . }}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}
+{{ .Permalink }}
+{{- range slice "series" "categories" "tags" -}}
+ {{ range $.GetTerms . }}
+ {{- $domain := (.Site.GetPage (printf "/%s" .Section)).Permalink -}}
+ {{ .Title }}
+ {{ end }}
+{{- end -}}