diff --git a/.gitignore b/.gitignore
index 4137bfa..4ab2232 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@ public/
.dev.vars
*.log
.DS_Store
+step-service/.render/*.png
diff --git a/src/client/index.html b/src/client/index.html
index d75d991..4d8a6c8 100644
--- a/src/client/index.html
+++ b/src/client/index.html
@@ -4,7 +4,31 @@
Chisel — AI CAD
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/client/static/og-image.png b/src/client/static/og-image.png
new file mode 100644
index 0000000..bc32c6a
Binary files /dev/null and b/src/client/static/og-image.png differ
diff --git a/step-service/.render/icon.html b/step-service/.render/icon.html
new file mode 100644
index 0000000..d65c9cb
--- /dev/null
+++ b/step-service/.render/icon.html
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/step-service/.render/og-card.html b/step-service/.render/og-card.html
new file mode 100644
index 0000000..03928ed
--- /dev/null
+++ b/step-service/.render/og-card.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Say it.
Shape it.
+
AI CAD — describe what you want built and watch it appear in 3D. Export real, editable STEP files.
+
+
+
+ chisel.theradicalparty.com
+
+ 3D preview
+ STEP export
+
+
+
diff --git a/vite.config.ts b/vite.config.ts
index dda0ee6..4a8bb63 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -6,7 +6,8 @@ import react from "@vitejs/plugin-react";
// the SPA. In dev, `vite` proxies /api to `wrangler dev` on :8787.
export default defineConfig({
root: "src/client",
- publicDir: false,
+ // Static assets (favicon, share image) copied verbatim into the build output.
+ publicDir: "static",
build: {
outDir: "../../public",
emptyOutDir: true,