diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png
new file mode 100644
index 00000000..45488b88
Binary files /dev/null and b/public/apple-touch-icon.png differ
diff --git a/public/index.html b/public/index.html
index 4e0f4b83..15c8c99e 100644
--- a/public/index.html
+++ b/public/index.html
@@ -16,8 +16,33 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/public/og-image.png b/public/og-image.png
new file mode 100644
index 00000000..a98d09dd
Binary files /dev/null and b/public/og-image.png differ
diff --git a/src/worker.js b/src/worker.js
index 01eba3b6..92ab75c4 100644
--- a/src/worker.js
+++ b/src/worker.js
@@ -1,4 +1,7 @@
const SECURITY_HEADERS = {
+ // Verified missing on the live host before adding: HTTPS already works on
+ // tinystudio.io, www, and app, so a year-long max-age with subdomains is safe.
+ "Strict-Transport-Security": "max-age=31536000; includeSubDomains",
"X-Content-Type-Options": "nosniff",
"X-Frame-Options": "DENY",
"Referrer-Policy": "strict-origin-when-cross-origin",
@@ -13,6 +16,8 @@ const PUBLIC_ASSET_PATHS = new Set([
"/styles.css",
"/script.js",
"/favicon.svg",
+ "/apple-touch-icon.png",
+ "/og-image.png",
"/robots.txt",
"/sitemap.xml",
"/llms.txt",