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 (