Backstage Project Structure
Backstage is a complex project, and the GitHub repository contains many different files and folders. This document aims to clarify the purpose of those files and folders.
General purpose files and folders
In the project root, there are a set of files and folders which are not part of the project as such, and may or may not be familiar to someone looking through the code.
-
.changeset/
- This folder contains files outlining which changes occurred in the project since the last release. These files are added manually, but managed by changesets and will be removed at every new release. They are essentially building-blocks of a CHANGELOG. -
.github/
- Standard GitHub folder. It contains - amongst other things - our workflow definitions and templates. Worth noting is the vale sub-folder which is used for a markdown spellchecker. -
.yarn/
- Backstage ships with its ownyarn
implementation. This allows us to have better control over ouryarn.lock
file and hopefully avoid problems due to yarn versioning differences. -
contrib/
- Collection of examples or resources contributed by the community. We really appreciate contributions in here and encourage them being kept up to date. -
docs/
- This is where we keep all of our documentation Markdown files. These end up on https://backstage.io/docs. Just keep in mind that changes to thesidebars.ts
file may be needed as sections are added/removed. -
.editorconfig
- A configuration file used by most common code editors. Learn more at EditorConfig.org. -
.imgbotconfig
- Configuration for a bot which helps reduce image sizes.
Monorepo packages
Every folder in both packages/
and plugins/
is within our monorepo setup, as
defined in
package.json
:
"workspaces": {
"packages": [
"packages/*",
"plugins/*"
]
},
Let's look at them individually.