-
Mind Drive
+
A prototype that treats your Solid Pod as a real Drive. No central server holds your
bytes. Sibling of Mind Market, Codespaces, OS, and Social Network.
diff --git a/src/app/manifest.ts b/src/app/manifest.ts
new file mode 100644
index 0000000..a70f6d0
--- /dev/null
+++ b/src/app/manifest.ts
@@ -0,0 +1,42 @@
+import type { MetadataRoute } from "next";
+
+// Web app manifest — lets mobile users add Mind Drive to the homescreen with
+// the brand mark and Mind Green chrome. Maskable icons (generated by
+// scripts/gen-icons.mjs from the canonical mark) bleed green to the edges so the
+// platform mask can crop the corners without clipping the weave.
+export default function manifest(): MetadataRoute.Manifest {
+ return {
+ name: "Mind Drive — your files in your pod",
+ short_name: "Drive",
+ description:
+ "A privacy-first Google Drive / Dropbox alternative built on Solid Pods. Your bytes never leave your pod.",
+ start_url: "/",
+ display: "standalone",
+ background_color: "#07080b",
+ theme_color: "#16B88A",
+ // Both PNGs live in public/ (served at the root) and carry the green to the
+ // edges; the 512 doubles as the "any" icon (a little safe-zone padding is
+ // fine there). Separate entries per purpose — Next's manifest type rejects
+ // the space-separated "any maskable" form the spec allows.
+ icons: [
+ {
+ src: "/icon-192.png",
+ sizes: "192x192",
+ type: "image/png",
+ purpose: "maskable",
+ },
+ {
+ src: "/icon-512.png",
+ sizes: "512x512",
+ type: "image/png",
+ purpose: "maskable",
+ },
+ {
+ src: "/icon-512.png",
+ sizes: "512x512",
+ type: "image/png",
+ purpose: "any",
+ },
+ ],
+ };
+}
diff --git a/src/app/opengraph-image.tsx b/src/app/opengraph-image.tsx
new file mode 100644
index 0000000..8bcddc8
--- /dev/null
+++ b/src/app/opengraph-image.tsx
@@ -0,0 +1,74 @@
+import { MIND_MARK_SVG } from "@mind-studio/ui/brand";
+import { ImageResponse } from "next/og";
+
+export const alt = "Mind Drive — your files in your pod";
+export const size = { width: 1200, height: 630 };
+export const contentType = "image/png";
+
+// The canonical Mind mark as a data URI, so the share card carries the real
+// brand artwork (sourced from the design system, never a vendored copy).
+const MARK_DATA_URI = `data:image/svg+xml;base64,${Buffer.from(MIND_MARK_SVG).toString("base64")}`;
+
+// Social share card. Uses the default font (no remote fetch) so it renders
+// deterministically at build time. Mind Green on dark to match the brand
+// (green is the single UI accent; cyan/teal only as atmospheric glow).
+export default function OpengraphImage() {
+ return new ImageResponse(
+
+
+ {/* biome-ignore lint/performance/noImgElement: Satori (next/og) only supports
![]()
. */}
+

+
Drive
+
+
+
+ Files in your pod · built on Solid
+
+
+ Your files.
+ Your pod.
+
+
+ A privacy-first Google Drive and Dropbox alternative built on Solid Pods — your bytes never
+ leave the space you own.
+
+
+ mindpods.org
+
+
,
+ { ...size },
+ );
+}