diff --git a/src/deployments/expo.ts b/src/deployments/expo.ts
index 1a572db..36b30bb 100644
--- a/src/deployments/expo.ts
+++ b/src/deployments/expo.ts
@@ -43,19 +43,22 @@
         perspective: "published"
     });
 
-    const manifestID = await client.fetch<string | null>(`*[_type == "release" && product->identity.current == $product && channel <= $channel && count(artifacts[_type == "expo" && platform == $platform && runtime == $runtime]) == 1] {
+    const updateData = await client.fetch<UpdateData | null>(`*[_type == "release" && product->identity.current == $product && channel <= $channel && count(artifacts[_type == "expo" && platform == $platform && runtime == $runtime]) == 1] {
         "manifest": select(artifacts[_type == "expo" && platform == $platform && runtime == $runtime])[0].manifest,
-        version
-    } | order(version desc)[0].manifest`, {
+        version,
+        versionName,
+        "changelog": changelog[]{ summary, type },
+        critical
+    } | order(version desc)[0]`, {
         product,
         platform,
         runtime,
         channel: EXPO_CHANNEL_NAMES[channel as keyof typeof EXPO_CHANNEL_NAMES]
     });
 
-    if (!manifestID) return env.HTTP_STATUS_PAGES.fetch("https://http-status-pages.jottocraft.com/?status=404");
+    if (!updateData?.manifest) return env.HTTP_STATUS_PAGES.fetch("https://http-status-pages.jottocraft.com/?status=404");
 
-    return serveExpoManifest(request, env, ctx, product, manifestID, channel);
+    return serveExpoManifest(request, env, ctx, product, updateData.manifest, channel, updateData);
 }
 
 async function serveExpoAsset(request: Request, env: Env, ctx: AeroCtx, product: string, filename: string) {
@@ -63,7 +66,7 @@
     return serveR2(request, env, ctx, `${product}/expo/${filename}`, "public, max-age=31536000, immutable", mime.getType(filename.slice(filename.indexOf(".") + 1)) ?? "");
 }
 
-async function serveExpoManifest(request: Request, env: Env, ctx: AeroCtx, product: string, manifestID: string, channel?: string) {
+async function serveExpoManifest(request: Request, env: Env, ctx: AeroCtx, product: string, manifestID: string, channel?: string, updateData?: UpdateData) {
     if (!isSafe(manifestID)) return env.HTTP_STATUS_PAGES.fetch("https://http-status-pages.jottocraft.com/?status=400");
 
     const object = await env.ARTIFACTS.get(`${product}/expo/${manifestID}.json`);
@@ -79,6 +82,12 @@
     if (request.headers.get("Expo-Channel-Name")) buildManifest.extra.expoClient.updates.requestHeaders["Expo-Channel-Name"] = request.headers.get("Expo-Channel-Name");
     if (request.headers.get("jottocraft-Native-App-Version")) buildManifest.extra.expoClient.updates.requestHeaders["jottocraft-Native-App-Version"] = request.headers.get("jottocraft-Native-App-Version");
 
+    // Add metadata
+    if (!buildManifest.metadata) buildManifest.metadata = {};
+    if (channel) buildManifest.metadata.channel = channel;
+    if (updateData) buildManifest.metadata.critical = updateData.critical;
+    if (updateData?.changelog) buildManifest.metadata.changelog = updateData.changelog;
+
     const boundary = "jottocraft-Aero-Boundary-" + crypto.randomUUID();
 
     let multipartBody = [];
diff --git a/src/globals.d.ts b/src/globals.d.ts
index 420c553..833c3b3 100644
--- a/src/globals.d.ts
+++ b/src/globals.d.ts
@@ -13,6 +13,14 @@
 	reg?: string;
 };
 
+declare type UpdateData = {
+	manifest: string;
+	version: number;
+	versionName: string;
+	changelog: { summary: string; type: string; }[];
+	critical: boolean;
+};
+
 declare type AeroCtx = ExecutionContext & {
 	headersPatch: HeadersRef;
 };
