diff --git a/pages/config-slide.md b/pages/config-slide.md
index 681edb1..562baa6 100644
--- a/pages/config-slide.md
+++ b/pages/config-slide.md
@@ -2,9 +2,9 @@
level: 2
---
-# Configuration
+# `infctl`
-Configuration is based on a simple list of JSON objects.
+Keep it simple, list of JSON objects.
````md magic-move {lines: true}
diff --git a/pages/diagram.md b/pages/diagram-3node.md
similarity index 82%
rename from pages/diagram.md
rename to pages/diagram-3node.md
index 808719e..d71359d 100644
--- a/pages/diagram.md
+++ b/pages/diagram-3node.md
@@ -2,26 +2,27 @@
level: 2
---
-# MVK
+# MVK for pre-production
-The **V** in MVK is for *viable*, so why is MVK viable ?
+The **V** in MVK is for *viable*, so why is MVK viable for 3 or more nodes ?
```mermaid
%%{init: {'theme': 'dark', 'themeVariables': { 'darkMode': true }}}%%
flowchart LR
- root((MVK))
+ root((3-node))
PS[Persistent Storage]
LH[Longhorn]
ING[Ingress]
TRA[Traefik]
- MET[Metallb]
+ MET[cert-manager]
ETCD[etcd]
KA[keepalived]
root --> PS --> LH
- root --> ING --> TRA --> MET
+ root --> ING --> TRA
+ ING --> MET
root --> ETCD --> KA
classDef default fill:transparent,color:#fff,stroke:#888
@@ -31,9 +32,7 @@ flowchart LR
-We have in the build so far etcd and keepalived
-
-there is still no persistent volume management or ingress
+close to production - storage and multi node
diff --git a/pages/diagram-single-node.md b/pages/diagram-single-node.md
new file mode 100644
index 0000000..3fb486d
--- /dev/null
+++ b/pages/diagram-single-node.md
@@ -0,0 +1,58 @@
+---
+level: 2
+---
+
+# MVK for development
+
+The **V** in MVK is for *viable*, so why is MVK viable for single 'dev' nodes ?
+
+
+
+```mermaid
+%%{init: {'theme': 'dark', 'themeVariables': { 'darkMode': true }}}%%
+flowchart LR
+ root((1-node))
+ PS[Persistent Storage]
+ LH[Local attached]
+ ING[Ingress]
+ TRA[Traefik]
+ MET[cert-manager]
+ ETCD[etcd]
+
+ root --> PS --> LH
+ root --> ING --> TRA
+ ING --> MET
+ root --> ETCD
+
+ classDef default fill:transparent,color:#fff,stroke:#888
+```
+
+
+
+
+
+Locally attached storage - single node implementation
+
+Ingress can represent that of prodution environmetns that use cert-manager
+
+
+
+
\ No newline at end of file
diff --git a/pages/gcloud-single.md b/pages/gcloud-single.md
new file mode 100644
index 0000000..d05a49b
--- /dev/null
+++ b/pages/gcloud-single.md
@@ -0,0 +1,85 @@
+---
+level: 2
+---
+
+# GCE
+
+Google Compute Engine
+
+````md magic-move {lines: true}
+
+```bash
+# 1. PREREQS
+# 2. CONFIGURE
+# 3. RUN
+```
+
+
+```bash
+# PREREQS
+# run pre flight checks ...
+#
+# we need to run this at least once to ensure we have tooling available ...
+```
+
+```bash
+# PREREQS
+# run pre flight checks ...
+cd /home/user/projects/infctl-cli # where we checked out infct-cli to
+./gcloud/tf/scripts/pre-flight-checks.sh
+```
+
+```bash
+# PREREQS
+# running pre flight checks ...
+./gcloud/tf/scripts/pre-flight-checks.sh
+# .....
+
+✅ tofu is installed,...
+
+✅ gcloud is installed,...
+
+✅ kubectl is installed,...
+
+✅ envsubst is installed,...
+
+# .....
+
+✅ Pre-flight checks passed. You are ready to proceed 🙂
+```
+
+
+
+```bash
+# CONFIGURE
+[ -f .env ] || cp -v .env.gcloud-example .env
+# edit to include
+export PROJECT_NAME="the name of your gcp project, often referred to as the project"
+export EMAIL="your email address to identify yourself with letsencrypt"
+export APP_DOMAIN_NAME="your domain name for the app, e.g., frgdr.some-domain.com"
+export INSTALL_FORGEJO="true"
+```
+
+```bash
+# RUN
+LOG_FORMAT=none infctl -f ./gcloud/tf/scripts/build-gcloud-k3s-pipeline-wait-dns.json
+```
+
+
+
+````
+
+
+Lets see a Google Compute Engine install [Demo](https://ascii.headshed.dev/a/qslfF9KTMj69zcSwzD6xm1uZ7)
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/intro-slide.md b/pages/intro01.md
similarity index 69%
rename from pages/intro-slide.md
rename to pages/intro01.md
index 34f1647..65d4e3d 100644
--- a/pages/intro-slide.md
+++ b/pages/intro01.md
@@ -1,18 +1,13 @@
-# Minimal Viable Kubernetes?
+# Minimal Viable Kubernetes
-What is MVK ?
+What is MVK ?
-≥ **CLI first** uses [`infctl`](https://mvk.headshed.dev/infctl/quick-start/)
+### ≥ CLI friendly, CLI first
-🧑💻 **Startup Ready** functional simply
-🤹 **Automated** infrastructure as code
-🎥 **Repeatable** re-useable and predictable.
-📤 **Portable** kubernetes that can run anywhere
-🛠 **Hackable** simple to modify & extend
\ No newline at end of file
diff --git a/pages/intro03.md b/pages/intro03.md
new file mode 100644
index 0000000..00ea79d
--- /dev/null
+++ b/pages/intro03.md
@@ -0,0 +1,26 @@
+# Minimal Viable Kubernetes
+
+What is MVK ?
+
+### ≥ CLI friendly, CLI first
+
+### 🤹 Promotes Infrastructure as code
+
+### 📤 **Portable** on-prem, cloud
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/intro04.md b/pages/intro04.md
new file mode 100644
index 0000000..51cdba1
--- /dev/null
+++ b/pages/intro04.md
@@ -0,0 +1,27 @@
+# Minimal Viable Kubernetes
+
+What is MVK ?
+
+### ≥ CLI friendly, CLI first
+
+### 🤹 Promotes Infrastructure as code
+
+### 📤 **Portable** on-prem, cloud
+
+### 🧐 Fosters inquisitiveness
+
+
+
+
\ No newline at end of file
diff --git a/pages/intro05.md b/pages/intro05.md
new file mode 100644
index 0000000..018ee02
--- /dev/null
+++ b/pages/intro05.md
@@ -0,0 +1,29 @@
+# Minimal Viable Kubernetes
+
+What is MVK ?
+
+### ≥ CLI friendly, CLI first
+
+### 🤹 Promotes Infrastructure as code
+
+### 📤 **Portable** on-prem, cloud
+
+### 🧐 Fosters inquisitiveness
+
+### 🔒 Favours independence over lock-in
+
+
+
+
\ No newline at end of file
diff --git a/pages/uses01.md b/pages/uses01.md
new file mode 100644
index 0000000..c5e4fba
--- /dev/null
+++ b/pages/uses01.md
@@ -0,0 +1,28 @@
+# Minimal Viable Kubernetes
+
+Use Cases ?
+
+### 🏠 Local development
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/uses02.md b/pages/uses02.md
new file mode 100644
index 0000000..ada3de3
--- /dev/null
+++ b/pages/uses02.md
@@ -0,0 +1,29 @@
+# Minimal Viable Kubernetes
+
+Use Cases ?
+
+### 🏠 Local development
+
+### 🛠️ Integration and smoke testing
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/uses03.md b/pages/uses03.md
new file mode 100644
index 0000000..b42c5a8
--- /dev/null
+++ b/pages/uses03.md
@@ -0,0 +1,28 @@
+# Minimal Viable Kubernetes
+
+Use Cases ?
+
+### 🏠 Local development
+
+### 🛠️ Integration and smoke testing
+
+### 🎬 Pre-prod & production
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/uses04.md b/pages/uses04.md
new file mode 100644
index 0000000..aeff32a
--- /dev/null
+++ b/pages/uses04.md
@@ -0,0 +1,28 @@
+# Minimal Viable Kubernetes
+
+Use Cases ?
+
+### 🏠 Local development
+
+### 🛠️ Integration and smoke testing
+
+### 🎬 Pre-prod & production
+
+### 💣 Disaster recovery rehearsal
+
+
+
+
+
\ No newline at end of file
diff --git a/public/boat-under-water.jpg b/public/boat-under-water.jpg
new file mode 100644
index 0000000..f7ae4c1
Binary files /dev/null and b/public/boat-under-water.jpg differ
diff --git a/public/cont13_c.jpg b/public/cont13_c.jpg
new file mode 100644
index 0000000..c1270b3
Binary files /dev/null and b/public/cont13_c.jpg differ
diff --git a/public/cont3_c.jpg b/public/cont3_c.jpg
new file mode 100644
index 0000000..73499fa
Binary files /dev/null and b/public/cont3_c.jpg differ
diff --git a/public/cont8_c.jpg b/public/cont8_c.jpg
new file mode 100644
index 0000000..cfe0603
Binary files /dev/null and b/public/cont8_c.jpg differ
diff --git a/public/cont_ship3_c.jpg b/public/cont_ship3_c.jpg
new file mode 100644
index 0000000..8720da5
Binary files /dev/null and b/public/cont_ship3_c.jpg differ
diff --git a/public/cont_ship4_c.jpg b/public/cont_ship4_c.jpg
new file mode 100644
index 0000000..f0bc3c5
Binary files /dev/null and b/public/cont_ship4_c.jpg differ
diff --git a/public/cont_ship5_c.jpg b/public/cont_ship5_c.jpg
new file mode 100644
index 0000000..75d2ce2
Binary files /dev/null and b/public/cont_ship5_c.jpg differ
diff --git a/public/container_pipeline.jpg b/public/container_pipeline.jpg
new file mode 100644
index 0000000..8e41680
Binary files /dev/null and b/public/container_pipeline.jpg differ
diff --git a/public/containers2.jpg b/public/containers2.jpg
new file mode 100644
index 0000000..34cbce9
Binary files /dev/null and b/public/containers2.jpg differ
diff --git a/public/error.png b/public/error.png
new file mode 100644
index 0000000..7da945a
Binary files /dev/null and b/public/error.png differ
diff --git a/public/hi-and-dry.png b/public/hi-and-dry.png
new file mode 100644
index 0000000..dd33d25
Binary files /dev/null and b/public/hi-and-dry.png differ
diff --git a/scripts/instalL_asciinema.sh b/scripts/instalL_asciinema.sh
new file mode 100755
index 0000000..48c7e60
--- /dev/null
+++ b/scripts/instalL_asciinema.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+
+## available versions as of Tue 7 Oct 18:34:05 BST 2025
+
+# https://github.com/asciinema/asciinema/releases/download/v3.0.0/asciinema-aarch64-apple-darwin
+# https://github.com/asciinema/asciinema/releases/download/v3.0.0/asciinema-aarch64-unknown-linux-gnu
+# https://github.com/asciinema/asciinema/releases/download/v3.0.0/asciinema-x86_64-apple-darwin
+# https://github.com/asciinema/asciinema/releases/download/v3.0.0/asciinema-x86_64-unknown-linux-gnu
+# https://github.com/asciinema/asciinema/releases/download/v3.0.0/asciinema-x86_64-unknown-linux-musl
+
+VERSION="3.0.0"
+LINK="https://github.com/asciinema/asciinema/releases/download/v${VERSION}/asciinema-"
+
+unameOut="$(uname -s)"
+archOut="$(uname -m)"
+
+case "${unameOut}" in
+ Linux)
+ if ldd --version 2>&1 | grep -q musl; then
+ platform="x86_64-unknown-linux-musl"
+ else
+ platform="x86_64-unknown-linux-gnu"
+ fi
+ if [[ "${archOut}" == "aarch64" ]]; then
+ platform="aarch64-unknown-linux-gnu"
+ fi
+ ;;
+ Darwin)
+ if [[ "${archOut}" == "arm64" ]]; then
+ platform="aarch64-apple-darwin"
+ else
+ platform="x86_64-apple-darwin"
+ fi
+ ;;
+ *)
+ echo "Unsupported platform: ${unameOut} ${archOut}"
+ exit 1
+ ;;
+esac
+
+echo "Detected platform: $platform"
+echo "installing asciinema version ${VERSION} for ${platform}"
+sudo curl -sL "${LINK}${platform}" -o /usr/local/bin/asciinema
+sudo chmod +x /usr/local/bin/asciinema
+asciinema --version
\ No newline at end of file
diff --git a/slides.md b/slides.md
index 0cfc78c..9e54202 100644
--- a/slides.md
+++ b/slides.md
@@ -7,7 +7,7 @@ theme: seriph
# background: https://cdn.jsdelivr.net/gh/slidevjs/slidev-covers@main/static/mYBMP8pW4uQ.webp
# background: https://cdn.jsdelivr.net/gh/slidevjs/slidev-covers@main/static/zRkBOOpKRhs.webp
# background: https://cdn.jsdelivr.net/gh/slidevjs/slidev-covers@main/static/3XXSKa4jKaM.webp
-background: containers.webp
+background: container_pipeline.jpg
# some information about your slides (markdown enabled)
title: Minimal Viable Kubernetes
info: |
@@ -37,7 +37,7 @@ seoMeta:
Kubernetes for the impatient and pragmatic
Jon Brookes 2025
-
+cont13_c.jpg
[https://headshed.dev/n25](https://headshed.dev/n25)
@@ -60,13 +60,74 @@ Jon Brookes 2025
This is an introduction to Minimal Viable Kubernetes (MVK). What it is, why it is brought into being and the tooling around it.
-->
+---
+layout: image-right
+image: cont3_c.jpg
+transition: fade-out
+src: ./pages/intro01.md
+---
+
+---
+layout: image-right
+image: cont8_c.jpg
+transition: fade-out
+src: ./pages/intro02.md
+---
+
---
layout: image-right
image: containers3.png
transition: fade-out
-src: ./pages/intro-slide.md
+src: ./pages/intro03.md
---
+---
+layout: image-right
+image: containers2.jpg
+transition: fade-out
+src: ./pages/intro04.md
+---
+
+---
+layout: image-right
+image: boat-under-water.jpg
+transition: fade-out
+src: ./pages/intro05.md
+---
+
+---
+layout: image-left
+image: cont_ship3_c.jpg
+transition: fade-out
+src: ./pages/uses01.md
+---
+
+---
+layout: image-left
+image: cont_ship4_c.jpg
+transition: fade-out
+src: ./pages/uses02.md
+---
+
+
+---
+layout: image-left
+image: cont_ship5_c.jpg
+transition: fade-out
+src: ./pages/uses03.md
+---
+
+
+---
+layout: image-left
+image: hi-and-dry.png
+transition: fade-out
+src: ./pages/uses04.md
+---
+
+
+
+