Every new service needs a repository, a build, deployment configuration, credentials and monitoring. If each team invents those from scratch, simple setup becomes slow and inconsistent. A golden path is a supported starting workflow that supplies the common pieces while leaving room for applications with different needs.
Backstage can provide a developer portal, a service catalog and software templates that create repositories or configuration. A GitOps controller, such as Argo CD, can deploy the configuration stored in Git. The portal helps a developer request or find a service; the controller keeps that service deployed. Neither takes care of every later upgrade automatically.
Start with a template for one kind of service that a team actually needs. Adopt the portal when it makes those tasks easier to find and use, and connect it to a deployment process you can support. A small working path is more valuable than many templates that nobody maintains.
Specify what a new service needs
Choose a single runtime and deployment target. Require a service owner, repository, health endpoint, resource requests, secret-delivery mechanism, alert destination and recovery instructions. Decide what the platform owns and what the application team must maintain after creation.
- Create a repository from a reviewed template with minimal build and test behavior.
- Publish an immutable application artifact through an approved build identity.
- Propose deployment configuration through a reviewable change rather than granting the portal unrestricted cluster credentials.
- Reconcile to a constrained namespace and display useful deployment and ownership links.
- Exercise a failed deployment, a credential rotation and a rollback.
Keep templates maintainable
Generated repositories drift after creation. Record the template version and decide how security or platform changes reach existing services. A template that creates a working service once but cannot support later upgrades becomes another legacy estate.
Permissions and failure
Review every action the template runner can perform, including repository creation, secret access and infrastructure changes. Treat user-supplied parameters as untrusted input. If deployment fails, leave a clear result and a reviewable change; do not silently retry destructive actions.
Measure usefulness
Track time to a supported service, recovery time and repeated support requests. A high number of generated repositories is not proof of a good developer experience. This page is a design and acceptance plan, not a claim that a complete Backstage platform was deployed. Expand only after one path is understandable and operable by its intended users.
Sources & further reading
Spotted something that needs another look?
Help improve this page →