diff --git a/public/website-homepage.png b/public/website-homepage.png
new file mode 100644
index 0000000..a3de91b
Binary files /dev/null and b/public/website-homepage.png differ
diff --git a/public/website-posts.png b/public/website-posts.png
new file mode 100644
index 0000000..f84c597
Binary files /dev/null and b/public/website-posts.png differ
diff --git a/public/website-search.png b/public/website-search.png
new file mode 100644
index 0000000..f2bbe24
Binary files /dev/null and b/public/website-search.png differ
diff --git a/slides.md b/slides.md
index ac939b1..7c94cf6 100644
--- a/slides.md
+++ b/slides.md
@@ -3,6 +3,7 @@ title: Wagtail & Caching
class: text-center
highlighter: shiki
transition: slide-left
+monaco: false
mdc: true
themeConfig:
primary: '#2e1f5e'
@@ -40,17 +41,275 @@ layout: cover
layout: center
---
-# Importance of caching
----
-layout: cover
-background: https://cdn.jsdelivr.net/gh/wagtail/wagtail@main/.github/wagtail-screenshot-with-browser.png
----
+# Scale
-# Wagtail is a Content Management System
+
---
layout: cover
---
# Caching in Wagtail
+
+---
+layout: section
+---
+
+## 1:
+# Template Fragment Caching
+
+---
+layout: image
+image: https://d1nvwtjgmbo5v5.cloudfront.net/media/images/Screen_Shot_2015-05-14_at_09.01.5.2e16d0ba.fill-1200x996.png
+backgroundSize: cover
+---
+
+
+
+---
+layout: none
+---
+
+```html
+
+
+
+ Made with Wagtail
+
+
+
+ Springload
+
+
+```
+
+
+
+
+---
+layout: cover
+background: /website-homepage.png
+---
+
+# An example
+
+---
+layout: image
+image: /website-posts.png
+---
+
+---
+layout: none
+---
+
+````md magic-move
+```html
+{% load wagtailcore_tags util_tags %}
+
+
+
+
+
+
+ {% if breadcrumbs %}
+ {% include "common/breadcrumbs.html" with parents=page.get_parent_pages %}
+ {% endif %}
+
+ {% include "common/content-details.html" %}
+
{{ page.summary }}
+
+
+
+
+```
+
+```html {all|1|3,27|4-26|all}
+{% load wagtailcore_tags wagtail_cache util_tags %}
+
+{% wagtailpagecache FRAGMENT_CACHE_TTL "listing-item" breadcrumbs show_listing_images %}
+
+
+
+
+
+ {% if breadcrumbs %}
+ {% include "common/breadcrumbs.html" with parents=page.get_parent_pages %}
+ {% endif %}
+
+ {% include "common/content-details.html" %}
+
{{ page.summary }}
+
+
+
+
+{% endwagtailpagecache %}
+```
+````
+
+
+
+
+---
+layout: cover
+background: /website-search.png
+---
+
+# Duplication
+
+---
+layout: center
+---
+
+```html {3}
+
+ {% for page in listing_pages %}
+ {% include "common/listing-item.html" %}
+ {% endfor %}
+
+```
+
+
+
+---
+layout: image
+image: /website-search.png
+---
+
+---
+
+# Cache invalidation
+
+
+
+```python
+>>> BlogPostPage.objects.first().cache_key
+```
+
+
+
+
+
+```python
+@property
+def cache_key(self) -> str:
+ """
+ A generic cache key to identify a page in its current state.
+ Should the page change, so will the key.
+
+ Customizations to the cache key should be made in :attr:`get_cache_key_components`.
+ """
+ ...
+```
+
+
+
+
+
+---
+layout: center
+---
+
+# What about Django?
+
+```jinja
+{% load cache %}
+{% cache 500 sidebar request.user.username %}
+ .. sidebar for logged in user ..
+{% endcache %}
+```
+
+
+
+- Current page
+- Current site
+- Preview
+- Cache invalidation
+
+
+
+
+
+
+---
+layout: section
+---
+
+## 2:
+# Frontend Caching