diff --git a/frontend/src/app/components/share/PublishModal.tsx b/frontend/src/app/components/share/PublishModal.tsx
index 07fb596c..4cdaee27 100644
--- a/frontend/src/app/components/share/PublishModal.tsx
+++ b/frontend/src/app/components/share/PublishModal.tsx
@@ -51,6 +51,20 @@ const SlowHint: React.FC<{ active: boolean; color: string }> = ({ active, color
);
};
+// What a published app can actually do, said before the user commits rather than after their public
+// URL 404s. The edge serves five routes and only three are reachable from an app: a static catch-all,
+// one sandboxed compute call and one LLM call. Apps built against a real backend work perfectly in
+// preview and break the moment they go live, which is the worst possible place to find out (ENG-293).
+const CapabilityNote: React.FC<{ color: string; border: string }> = ({ color, border }) => (
+
+
+ Published apps run as a static site. They can call AI and one sandboxed compute function, but
+ they get no server, database, or file storage, so any code that fetches your app's own
+ backend will not work once it is live.
+
+
+);
+
const PublishModal: React.FC = ({ outputId, outputName, open, onClose }) => {
const c = useClaudeTokens();
const dispatch = useAppDispatch();
@@ -209,11 +223,12 @@ const PublishModal: React.FC = ({ outputId, outputName, open, onClose })
}
// review
if (!hasFindings) {
- return center(
- <>
+ return (
+
Looks good. Ready to publish.
- >,
+
+
);
}
return (