diff --git a/.changeset/plugin-title-and-icon.md b/.changeset/plugin-title-and-icon.md
new file mode 100644
index 0000000000..72aac96435
--- /dev/null
+++ b/.changeset/plugin-title-and-icon.md
@@ -0,0 +1,13 @@
+---
+'@backstage/plugin-api-docs': patch
+'@backstage/plugin-catalog': patch
+'@backstage/plugin-catalog-unprocessed-entities': patch
+'@backstage/plugin-devtools': patch
+'@backstage/plugin-home': patch
+'@backstage/plugin-scaffolder': patch
+'@backstage/plugin-search': patch
+'@backstage/plugin-techdocs': patch
+'@backstage/plugin-user-settings': patch
+---
+
+Added `title` and `icon` to the plugin definition for the new frontend system.
diff --git a/plugins/api-docs/src/alpha.tsx b/plugins/api-docs/src/alpha.tsx
index 44ded088f1..0c44d5d51c 100644
--- a/plugins/api-docs/src/alpha.tsx
+++ b/plugins/api-docs/src/alpha.tsx
@@ -208,6 +208,8 @@ const apiDocsApisEntityContent = EntityContentBlueprint.make({
export default createFrontendPlugin({
pluginId: 'api-docs',
+ title: 'APIs',
+ icon: ,
info: { packageJson: () => import('../package.json') },
routes: {
root: rootRoute,
diff --git a/plugins/catalog-unprocessed-entities/src/alpha/plugin.tsx b/plugins/catalog-unprocessed-entities/src/alpha/plugin.tsx
index 5ccae907aa..8fd614c886 100644
--- a/plugins/catalog-unprocessed-entities/src/alpha/plugin.tsx
+++ b/plugins/catalog-unprocessed-entities/src/alpha/plugin.tsx
@@ -68,6 +68,8 @@ export const catalogUnprocessedEntitiesNavItem = NavItemBlueprint.make({
/** @alpha */
export default createFrontendPlugin({
pluginId: 'catalog-unprocessed-entities',
+ title: 'Unprocessed Entities',
+ icon: ,
info: { packageJson: () => import('../../package.json') },
routes: {
root: rootRouteRef,
diff --git a/plugins/catalog/src/alpha/pages.tsx b/plugins/catalog/src/alpha/pages.tsx
index aafbbd2178..acb9ec8d51 100644
--- a/plugins/catalog/src/alpha/pages.tsx
+++ b/plugins/catalog/src/alpha/pages.tsx
@@ -31,6 +31,7 @@ import {
EntityHeaderBlueprint,
EntityContentGroupDefinitions,
} from '@backstage/plugin-catalog-react/alpha';
+import CategoryIcon from '@material-ui/icons/Category';
import { rootRouteRef } from '../routes';
import { useEntityFromUrl } from '../components/CatalogEntityPage/useEntityFromUrl';
import { buildFilterFn } from './filter/FilterWrapper';
@@ -58,6 +59,8 @@ export const catalogPage = PageBlueprint.makeWithOverrides({
return originalFactory({
path: '/catalog',
routeRef: rootRouteRef,
+ icon: ,
+ title: 'Catalog',
loader: async () => {
const { BaseCatalogPage } = await import('../components/CatalogPage');
const filters = inputs.filters.map(filter =>
@@ -116,6 +119,7 @@ export const catalogEntityPage = PageBlueprint.makeWithOverrides({
factory(originalFactory, { config, inputs }) {
return originalFactory({
path: '/catalog/:namespace/:kind/:name',
+ title: 'Catalog Entity',
// NOTE: The `convertLegacyRouteRef` call here ensures that this route ref
// is mutated to support the new frontend system. Removing this conversion
// is a potentially breaking change since this is a singleton and the
diff --git a/plugins/catalog/src/alpha/plugin.tsx b/plugins/catalog/src/alpha/plugin.tsx
index e0a9d24708..8db026016a 100644
--- a/plugins/catalog/src/alpha/plugin.tsx
+++ b/plugins/catalog/src/alpha/plugin.tsx
@@ -16,6 +16,7 @@
import { createFrontendPlugin } from '@backstage/frontend-plugin-api';
import { entityRouteRef } from '@backstage/plugin-catalog-react';
+import CategoryIcon from '@material-ui/icons/Category';
import {
createComponentRouteRef,
@@ -38,6 +39,8 @@ import contextMenuItems from './contextMenuItems';
/** @alpha */
export default createFrontendPlugin({
pluginId: 'catalog',
+ title: 'Catalog',
+ icon: ,
info: {
packageJson: () => import('../../package.json'),
},
diff --git a/plugins/devtools/src/alpha/plugin.tsx b/plugins/devtools/src/alpha/plugin.tsx
index edeaae5723..b1cfa7027f 100644
--- a/plugins/devtools/src/alpha/plugin.tsx
+++ b/plugins/devtools/src/alpha/plugin.tsx
@@ -88,6 +88,8 @@ export const devToolsNavItem = NavItemBlueprint.make({
/** @alpha */
export default createFrontendPlugin({
pluginId: 'devtools',
+ title: 'DevTools',
+ icon: ,
info: { packageJson: () => import('../../package.json') },
routes: {
root: rootRouteRef,
diff --git a/plugins/home/src/alpha.tsx b/plugins/home/src/alpha.tsx
index 1b91effa29..194f322317 100644
--- a/plugins/home/src/alpha.tsx
+++ b/plugins/home/src/alpha.tsx
@@ -208,6 +208,8 @@ const homePageRandomJokeWidget = HomePageWidgetBlueprint.make({
*/
export default createFrontendPlugin({
pluginId: 'home',
+ title: 'Home',
+ icon: ,
info: { packageJson: () => import('../package.json') },
extensions: [
homePage,
diff --git a/plugins/scaffolder/src/alpha/plugin.tsx b/plugins/scaffolder/src/alpha/plugin.tsx
index 9b7698250a..374249a804 100644
--- a/plugins/scaffolder/src/alpha/plugin.tsx
+++ b/plugins/scaffolder/src/alpha/plugin.tsx
@@ -15,6 +15,7 @@
*/
import { createFrontendPlugin } from '@backstage/frontend-plugin-api';
+import CreateComponentIcon from '@material-ui/icons/AddCircleOutline';
import {
actionsRouteRef,
editRouteRef,
@@ -59,6 +60,8 @@ const scaffolderEntityIconLink = EntityIconLinkBlueprint.make({
/** @alpha */
export default createFrontendPlugin({
pluginId: 'scaffolder',
+ title: 'Create',
+ icon: ,
info: { packageJson: () => import('../../package.json') },
routes: {
root: rootRouteRef,
diff --git a/plugins/search/src/alpha.tsx b/plugins/search/src/alpha.tsx
index c36ae54d33..a2ecb61e0e 100644
--- a/plugins/search/src/alpha.tsx
+++ b/plugins/search/src/alpha.tsx
@@ -276,6 +276,8 @@ export const searchNavItem = NavItemBlueprint.make({
/** @alpha */
export default createFrontendPlugin({
pluginId: 'search',
+ title: 'Search',
+ icon: ,
info: { packageJson: () => import('../package.json') },
extensions: [searchApi, searchPage, searchNavItem],
routes: {
diff --git a/plugins/techdocs/src/alpha/index.tsx b/plugins/techdocs/src/alpha/index.tsx
index 9e63004046..409bf03269 100644
--- a/plugins/techdocs/src/alpha/index.tsx
+++ b/plugins/techdocs/src/alpha/index.tsx
@@ -278,6 +278,8 @@ const techDocsNavItem = NavItemBlueprint.make({
/** @alpha */
export default createFrontendPlugin({
pluginId: 'techdocs',
+ title: 'Docs',
+ icon: ,
info: { packageJson: () => import('../../package.json') },
extensions: [
techDocsClientApi,
diff --git a/plugins/user-settings/src/alpha.tsx b/plugins/user-settings/src/alpha.tsx
index bea75bbdd8..c0342a9b46 100644
--- a/plugins/user-settings/src/alpha.tsx
+++ b/plugins/user-settings/src/alpha.tsx
@@ -62,6 +62,8 @@ export const settingsNavItem = NavItemBlueprint.make({
*/
export default createFrontendPlugin({
pluginId: 'user-settings',
+ title: 'Settings',
+ icon: ,
info: { packageJson: () => import('../package.json') },
extensions: [userSettingsPage, settingsNavItem],
routes: {