From 66c56c192ecb0a619072d0ee13391307eb92ebed Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 19 Mar 2026 10:12:09 +0100 Subject: [PATCH 1/6] create-app: use nav system for settings sidebar item Replace the hardcoded SidebarSettings component with nav.take('page:user-settings') in the create-app template sidebar, so that the user-settings nav item is rendered via the nav system. Signed-off-by: Patrik Oldsberg Made-with: Cursor --- .../next-app/packages/app/src/modules/nav/Sidebar.tsx | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/create-app/templates/next-app/packages/app/src/modules/nav/Sidebar.tsx b/packages/create-app/templates/next-app/packages/app/src/modules/nav/Sidebar.tsx index 52d96151cb..3af741bfbc 100644 --- a/packages/create-app/templates/next-app/packages/app/src/modules/nav/Sidebar.tsx +++ b/packages/create-app/templates/next-app/packages/app/src/modules/nav/Sidebar.tsx @@ -12,10 +12,7 @@ import { SidebarLogo } from './SidebarLogo'; import MenuIcon from '@material-ui/icons/Menu'; import SearchIcon from '@material-ui/icons/Search'; import { SidebarSearchModal } from '@backstage/plugin-search'; -import { - UserSettingsSignInAvatar, - Settings as SidebarSettings, -} from '@backstage/plugin-user-settings'; +import { UserSettingsSignInAvatar } from '@backstage/plugin-user-settings'; import { NotificationsSidebarItem } from '@backstage/plugin-notifications'; export const SidebarContent = NavContentBlueprint.make({ @@ -50,7 +47,7 @@ export const SidebarContent = NavContentBlueprint.make({ icon={} to="/settings" > - + {nav.take('page:user-settings')} , ); From 016098080adab4508b0135db7531992f1f08fe86 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 20 Mar 2026 08:57:54 +0100 Subject: [PATCH 2/6] create-app: add example techdocs page Signed-off-by: Patrik Oldsberg --- .../create-app/templates/next-app/examples/entities.yaml | 2 ++ .../templates/next-app/examples/example-docs/docs/index.md | 5 +++++ .../templates/next-app/examples/example-docs/mkdocs.yml | 4 ++++ 3 files changed, 11 insertions(+) create mode 100644 packages/create-app/templates/next-app/examples/example-docs/docs/index.md create mode 100644 packages/create-app/templates/next-app/examples/example-docs/mkdocs.yml diff --git a/packages/create-app/templates/next-app/examples/entities.yaml b/packages/create-app/templates/next-app/examples/entities.yaml index 447e8b1f34..cc57de8b7a 100644 --- a/packages/create-app/templates/next-app/examples/entities.yaml +++ b/packages/create-app/templates/next-app/examples/entities.yaml @@ -12,6 +12,8 @@ apiVersion: backstage.io/v1alpha1 kind: Component metadata: name: example-website + annotations: + backstage.io/techdocs-ref: dir:./example-docs spec: type: website lifecycle: experimental diff --git a/packages/create-app/templates/next-app/examples/example-docs/docs/index.md b/packages/create-app/templates/next-app/examples/example-docs/docs/index.md new file mode 100644 index 0000000000..ecd4dbd529 --- /dev/null +++ b/packages/create-app/templates/next-app/examples/example-docs/docs/index.md @@ -0,0 +1,5 @@ +# Example TechDocs page + +This is an example TechDocs page! + +The source of this documentation for the `example-website` component is found in the `examples/example-docs` directory, which is referenced from `examples/entities.yaml`. Typically the `docs` directory would live alongside the `catalog-info.yaml` file of a component instead, but in this case it is separated out to avoid cluttering the examples directory. diff --git a/packages/create-app/templates/next-app/examples/example-docs/mkdocs.yml b/packages/create-app/templates/next-app/examples/example-docs/mkdocs.yml new file mode 100644 index 0000000000..b482f45a27 --- /dev/null +++ b/packages/create-app/templates/next-app/examples/example-docs/mkdocs.yml @@ -0,0 +1,4 @@ +site_name: example-website +docs_dir: docs +plugins: + - techdocs-core From ae4963eacb749f44eb53a866a0705852baebee4a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 20 Mar 2026 08:58:21 +0100 Subject: [PATCH 3/6] create-app: remove unnecessary core-compat-api usage Signed-off-by: Patrik Oldsberg --- .../templates/next-app/packages/app/package.json.hbs | 1 - .../next-app/packages/app/src/modules/nav/Sidebar.tsx | 9 +++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/create-app/templates/next-app/packages/app/package.json.hbs b/packages/create-app/templates/next-app/packages/app/package.json.hbs index 161ca3010d..b31bafb8d1 100644 --- a/packages/create-app/templates/next-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/next-app/packages/app/package.json.hbs @@ -15,7 +15,6 @@ }, "dependencies": { "@backstage/cli": "^{{ version '@backstage/cli'}}", - "@backstage/core-compat-api": "^{{ version '@backstage/core-compat-api'}}", "@backstage/core-components": "^{{ version '@backstage/core-components'}}", "@backstage/core-plugin-api": "^{{ version '@backstage/core-plugin-api'}}", "@backstage/frontend-defaults": "^{{ version '@backstage/frontend-defaults'}}", diff --git a/packages/create-app/templates/next-app/packages/app/src/modules/nav/Sidebar.tsx b/packages/create-app/templates/next-app/packages/app/src/modules/nav/Sidebar.tsx index 3af741bfbc..e1087188d5 100644 --- a/packages/create-app/templates/next-app/packages/app/src/modules/nav/Sidebar.tsx +++ b/packages/create-app/templates/next-app/packages/app/src/modules/nav/Sidebar.tsx @@ -6,7 +6,6 @@ import { SidebarScrollWrapper, SidebarSpace, } from '@backstage/core-components'; -import { compatWrapper } from '@backstage/core-compat-api'; import { NavContentBlueprint } from '@backstage/plugin-app-react'; import { SidebarLogo } from './SidebarLogo'; import MenuIcon from '@material-ui/icons/Menu'; @@ -21,9 +20,11 @@ export const SidebarContent = NavContentBlueprint.make({ const nav = navItems.withComponent(item => ( item.icon} to={item.href} text={item.title} /> )); + // Skipped items - nav.take('page:search'); - return compatWrapper( + nav.take('page:search'); // Using search modal instead + + return ( } to="/search"> @@ -49,7 +50,7 @@ export const SidebarContent = NavContentBlueprint.make({ > {nav.take('page:user-settings')} - , + ); }, }, From 288a9972365810dbf8bbeb21d20df66ff7488137 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 20 Mar 2026 08:58:44 +0100 Subject: [PATCH 4/6] create-app: move down app visualizer sidebar item Signed-off-by: Patrik Oldsberg --- .../templates/next-app/packages/app/src/modules/nav/Sidebar.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/create-app/templates/next-app/packages/app/src/modules/nav/Sidebar.tsx b/packages/create-app/templates/next-app/packages/app/src/modules/nav/Sidebar.tsx index e1087188d5..e0bb425d56 100644 --- a/packages/create-app/templates/next-app/packages/app/src/modules/nav/Sidebar.tsx +++ b/packages/create-app/templates/next-app/packages/app/src/modules/nav/Sidebar.tsx @@ -48,6 +48,7 @@ export const SidebarContent = NavContentBlueprint.make({ icon={} to="/settings" > + {nav.take('page:app-visualizer')} {nav.take('page:user-settings')} From 54b88a8607b7875ffbc23d0df07232c8377c5121 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 20 Mar 2026 09:22:34 +0100 Subject: [PATCH 5/6] create-app: remove redundant extension config Signed-off-by: Patrik Oldsberg --- packages/create-app/templates/next-app/app-config.yaml.hbs | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/create-app/templates/next-app/app-config.yaml.hbs b/packages/create-app/templates/next-app/app-config.yaml.hbs index c8814a9e96..b26d412a93 100644 --- a/packages/create-app/templates/next-app/app-config.yaml.hbs +++ b/packages/create-app/templates/next-app/app-config.yaml.hbs @@ -6,12 +6,6 @@ app: packages: all extensions: - # Disable the nav items that we're manually rendering in packages/app/src/modules/nav/Sidebar.tsx - - nav-item:search: false - - nav-item:user-settings: false - - nav-item:catalog: false - - nav-item:scaffolder: false - # Configure the catalog index page to be the root page, this is normally mounted on /catalog - page:catalog: config: From e8ffac195228dab191139bb6fa1a2f7279033485 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 20 Mar 2026 09:04:03 +0100 Subject: [PATCH 6/6] chore: add changeset for create-app next template fixes Signed-off-by: Patrik Oldsberg Made-with: Cursor Signed-off-by: Patrik Oldsberg Made-with: Cursor --- .changeset/fix-sidebar-settings-nav.md | 5 +++++ .patches/pr-33451.txt | 1 + 2 files changed, 6 insertions(+) create mode 100644 .changeset/fix-sidebar-settings-nav.md create mode 100644 .patches/pr-33451.txt diff --git a/.changeset/fix-sidebar-settings-nav.md b/.changeset/fix-sidebar-settings-nav.md new file mode 100644 index 0000000000..ee8223e5f4 --- /dev/null +++ b/.changeset/fix-sidebar-settings-nav.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Various fixes for the `create-app` template: reorganizing sidebar items, removing redundant config and code, and adding a documentation example. diff --git a/.patches/pr-33451.txt b/.patches/pr-33451.txt new file mode 100644 index 0000000000..c713be256a --- /dev/null +++ b/.patches/pr-33451.txt @@ -0,0 +1 @@ +Various fixes and improvements for the `@backstage/create-app` template.