Basics & Prerequisites
The same requirements for Backstage development described in the Backstage documentation apply to plugin development. Below are the most important ones:
- Node.js current LTS version (we recommend using
nvm
to manage it).- Install
nvm
from here.
- Install
- Yarn version 4.4.1.
- Enable Corepack:
corepack enable
, then set Yarn:yarn set version 4.4.1
.
- Enable Corepack:
- Git
- A proper IDE (for example, VS Code).
Plugin guidelines
A few critical points to consider when developing plugins:
- Write plugin code in TypeScript.
- Plan your project structure and folders to accelerate the development process.
- Develop plugins alongside a vanilla Backstage repo that loads the plugin statically (as a local package).
- Release plugins as npm packages (one static, one dynamic).
- Avoid reinventing the wheel—check if a plugin already does what you need.
- Build your UI with Backstage components and Material UI.
Official documentation
The official Backstage documentation provides useful information on plugin development. We recommend reading it to gain a better understanding of the process.
- Backstage Introduction to plugins
- Backstage Design Guidelines
- Backstage Plugin Development
- Backstage Plugin Structure
Backstage frontend and backend systems have changed considerably over time. You may find outdated documentation in many places, as well as legacy plugins that work but do not adapt to the new systems or function as dynamic plugins.
VeeCode Plugin Development
Continue reading our documentation to learn how to develop plugins for VeeCode DevPortal—the instructions are largely portable to any custom-built Backstage as well. Note that VeeCode DevPortal uses the same approach as Red Hat for dynamic plugins, so RHDH documentation may also be applicable.
Red Hat plugin development
Much of the RHDH (Red Hat Developer Hub) documentation on plugins is applicable to VeeCode DevPortal plugin development; however, we embed (pre-install) a different set of plugins in DevPortal container images.
- RHDH: Introduction to plugins — brief introduction to plugins.
- RHDH: Front-end plugin wiring — how to wire plugins to the Backstage frontend (compatible with VeeCode DevPortal).
- RHDH: Installing dynamic plugins using the Helm chart — similar to VeeCode DevPortal dynamic plugin syntax.
- RHDH: Dynamic plugin examples — you can build and install these in DevPortal (or use them as a reference).
- RHDH: Plugins repository — a long list of Red Hat plugins that you may also package and install in DevPortal (or ask us to include in our next release by opening a GitHub issue).