From d9bfd8a2fdc279bd080e6bba5c924513f94a6d4e Mon Sep 17 00:00:00 2001 From: Tomas Dvorak Date: Wed, 23 Sep 2026 18:20:05 +0200 Subject: [PATCH] feat(canvas): fullscreen workspace outside the app shell MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move /projects/:id and its service detail route out of PlatformShell — the project view now owns the entire viewport like Railway's canvas: no sidebar, no global nav, just the slim project bar over the graph. Service detail inherits the same chrome-free context with a breadcrumb back to the canvas, and back/delete navigation preserves ?demo=1. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- app/frontend/src/app/App.tsx | 6 ++++-- .../src/features/service/pages/ServiceDetailPage.tsx | 2 +- .../src/features/workspace/pages/ProjectWorkspacePage.tsx | 8 +++++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/frontend/src/app/App.tsx b/app/frontend/src/app/App.tsx index ef3444c..b73d21c 100644 --- a/app/frontend/src/app/App.tsx +++ b/app/frontend/src/app/App.tsx @@ -116,10 +116,12 @@ export default function App() { } /> {/* Public browsing — approved projects, templates, docs. */} + {/* Project workspace renders outside the shell — fullscreen canvas, no nav chrome */} + } /> + } /> + }> } /> - } /> - } /> } /> } /> } /> diff --git a/app/frontend/src/features/service/pages/ServiceDetailPage.tsx b/app/frontend/src/features/service/pages/ServiceDetailPage.tsx index 797f3f7..26b6570 100644 --- a/app/frontend/src/features/service/pages/ServiceDetailPage.tsx +++ b/app/frontend/src/features/service/pages/ServiceDetailPage.tsx @@ -384,7 +384,7 @@ export function ServiceDetailPage() { onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['project-services', projectId] }); queryClient.invalidateQueries({ queryKey: ['projects'] }); - navigate(`/projects/${projectId}`); + navigate(isDemoMode ? `/projects/${projectId}?demo=1` : `/projects/${projectId}`); }, }); diff --git a/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx b/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx index 6c3b8e8..126c5bd 100644 --- a/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx +++ b/app/frontend/src/features/workspace/pages/ProjectWorkspacePage.tsx @@ -644,7 +644,7 @@ export function ProjectWorkspacePage() { This project may have been deleted or you don't have access.