Skip to content
Backstage is an open platform for building developer portals
TypeScript JavaScript HTML Other
Branch: master
Clone or download

Latest commit

Rugvip Merge pull request #528 from spotify/rugvip/lintfixes
package/cli: fix lint issues in scaffolded plugins
Latest commit 3e1e356 Apr 9, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update ux-component_template.md Apr 5, 2020
.yarn/releases bump yarn version Apr 1, 2020
docker Dockerfile: move nginx config templating to run script Mar 30, 2020
docs adding header (#519) Apr 9, 2020
packages Merge pull request #528 from spotify/rugvip/lintfixes Apr 9, 2020
plugins test: update lint config to extend cli config explicitly for plugins Apr 8, 2020
scripts scripts/cli-e2e-test: fixed some flakiness (#493) Apr 7, 2020
.dockerignore Add docker environment Mar 17, 2020
.editorconfig #332 add *.tsx, *.jsx, *.html to the .editorconfig Mar 22, 2020
.eslintignore frontend: move to repo root Mar 5, 2020
.eslintrc.js chore: use eslint-config-oss Apr 3, 2020
.gitignore Fix tests by building two versions of plugins and importing/exporting… Apr 2, 2020
.npmrc Require node 12 Mar 23, 2020
.yarnrc bump yarn version Apr 1, 2020
CODE_OF_CONDUCT.md Add LICENSE, CoC and NOTICE Feb 1, 2020
DEPLOYMENT.md DEPLOYMENT: update heroku deployment instructions Mar 30, 2020
Dockerfile dockerfile: add some instructions on how to run Apr 6, 2020
LICENSE Uncomment the Apache2 License and include a full text version of it Feb 3, 2020
NOTICE Add LICENSE, CoC and NOTICE Feb 1, 2020
README.md Link to Design from README Apr 7, 2020
backstage_overview.png Show Phase 2 in overview pic Mar 13, 2020
lerna.json v0.1.1-alpha.3 Apr 8, 2020
package.json packages/cli: add build option to watchDeps and use for app serve Apr 7, 2020
prettier.config.js frontend: move to repo root Mar 5, 2020
tsconfig.json backstage/cli: add common tsconfig Apr 7, 2020
yarn.lock thank you for the comments, @freben Apr 8, 2020

README.md

headline

Backstage

License Discord Code style

What is Backstage?

Backstage is an open platform for building developer portals.

The philosophy behind Backstage is simple: Don't expose your engineers to the full complexity of your infrastructure tooling. Engineers should be shipping code — not figuring out a whole new toolset every time they want to implement the basics. Backstage allows you add "stuff" (tooling, services, features, etc.) by adding a plugin, instead of building a new tool. This saves you work and avoids the need of your team to learn how to use and support yet another tool.

For more information go to backstage.io or join our Discord chatroom.

What problem does Backstage solve?

As companies grow, their infrastructure systems get messier. Backstage unifies all your infrastructure tooling, services, and documentation with a single, consistent UI.

This blog post provides more examples of how Backstage is used inside Spotify:

https://labs.spotify.com/2020/03/17/what-the-heck-is-backstage-anyway/

Project roadmap

We created Backstage about 4 years ago. While our internal version of Backstage has had the benefit of time to mature and evolve, the first iteration of our open source version is still nascent. We are envisioning three phases of the project and we have already begun work on various aspects of these phases:

  • 🐣 Phase 1: Extensible frontend platform (now) - You will be able to easily create a single consistent UI layer for your internal infrastructure and tools. A set of reusable UX patterns and components help ensure a consistent experience between tools.

  • 🐢 Phase 2: Manage your stuff (next 2-3 months) - Manage anything from microservices to software components to infrastructure and your service catalog. Regardless of whether you want to create a new library, view service deployment status in Kubernetes, or check the test coverage for a website -- Backstage will provide all of those tools - and many more - in a single developer portal.

  • 🐇 Phase 3: Ecosystem (later) - Everyone's infrastructure stack is different. By fostering a vibrant community of contributors we hope to provide an ecosystem of Open Source plugins/integrations that allows you to pick the tools that match your stack.

Check out our Milestones and open RFCs how they relate to the three Phases outlined above.

Our vision for Backstage is for it to become the trusted standard toolbox (read: UX layer) for the open source infrastructure landscape. Think of it like Kubernetes for developer experience. We realize this is an ambitious goal. We can’t do it alone. If this sounds interesting or you'd like to help us shape our product vision, we'd love to talk. You can email me directly: alund@spotify.com.

Overview

The Backstage platform consists of a number of different components:

  • app - Main web application that users interact with. It's built up by a number of different Plugins. This repo contains an example implementation of an app (located in packages/example-app) and you can easily get started with your own app by creating one.
  • plugins - Each plugin is treated as a self-contained web app and can include almost any type of content. Plugins all use a common set of platform API's and reusable UI components. Plugins can fetch data either from the backend or through any RESTful API exposed through the proxy.
  • backend * - GraphQL aggregation service that holds the model of your software ecosystem, including organisational information and what team owns what software. The backend also has a Plugin model for extending its graph.
  • proxy * - Terminates HTTPS and exposes any RESTful API to Plugins.
  • identity * - A backend service that holds your organisation's metadata.

* not yet released

overview

Getting started

To run a Backstage app, you will need to have the following installed:

Open a terminal window and start the web app using the following commands from the project root:

$ yarn install # may take a while

$ yarn start

The final yarn start command should open a local instance of Backstage in your browser, otherwise open one of the URLs printed in the terminal.

For more complex development environment configuration, see the Development Environment section of the Getting Started docs.

Documentation

Community

  • Discord chatroom - Get support or discuss the project
  • Good First Issues - Start here if you want to contribute
  • RFCs - Help shape the technical direction
  • FAQ - Frequently Asked Questions
  • Code of Conduct - This is how we roll
  • Blog - Announcements and updates
  • Give us a star ⭐️ - If you are using Backstage or think it is an interesting project, we would love a star ❤️

Or, if you are an open source developer and are interested in joining our team, please reach out to foss-opportunities@spotify.com

License

Copyright 2020 Spotify AB.

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

You can’t perform that action at this time.