The Backstage Roadmap Plugin takes roadmaps out of hidden places like Confluence and puts them front and center. Teams can share what’s coming up, while users get to chime in by suggesting features, voting on ideas, and adding comments. It’s all about creating a space where feedback flows easily, and everyone helps shape the future of the platform together.
🚀 Note: This plugin requires you to use the new Backstage backend system.
- 📊 Visual roadmap board
- 🗳️ Voting system
- 💬 Comment section for each feature
- 🔐 Role-based permissions (admin vs. regular user)
- 🆕 Feature suggestion form for users
-
Install the plugin in your Backstage instance:
yarn add @rothenbergt/backstage-plugin-roadmap-backend --cwd packages/backend yarn add @rothenbergt/backstage-plugin-roadmap --cwd packages/app -
Add the plugin to your
packages/backend/src/index.ts:// ... backend.add(import('@rothenbergt/backstage-plugin-roadmap-backend'));
-
Add the frontend plugin to your
packages/app/src/App.tsx:import { RoadmapPage } from '@rothenbergt/backstage-plugin-roadmap'; // ... <FlatRoutes> {/* ... */} <Route path="/roadmap" element={<RoadmapPage />} /> </FlatRoutes>;
After installation, navigate to the /roadmap route in your Backstage instance. From there, you can:
- View the current roadmap
- Vote on features
- Suggest new features
- Comment on existing features
- (Admins) Manage feature statuses
If you aren't utilizing the Backstage permission framework, add the following to your app-config.yaml to enable the Admin Functions for specific users:
roadmap:
adminUsers:
- user:default/admin1
- user:default/admin2We welcome contributions! Here's how to get started:
- Fork and clone the repository
- Install dependencies:
yarn install - Make your changes
- Run tests:
yarn test:all - Run lint:
yarn lint:all
This project uses Changesets to manage versions and releases. When you make a change that affects users, you need to create a changeset:
- Run
yarn changeset - Select which packages are affected (use space to select, enter to confirm)
- Choose the type of change:
- patch - Bug fixes, minor updates
- minor - New features, non-breaking changes
- major - Breaking changes
- Write a short description of your changes
- Commit the changeset file along with your changes
- Create a changeset if needed (see above)
- Push your changes to your fork
- Open a Pull Request with a clear description
- Wait for CI checks to pass
- A maintainer will review your PR
Once merged, your changeset will automatically trigger a "Version Packages" PR, which when merged, publishes the new version to npm!