platform

Platform Engineering Guide 2026: Building Internal Developer Platforms That Work

Build an Internal Developer Platform with Backstage, Crossplane, and ArgoCD. Golden paths, self-service workflows, and DevEx metrics that reduce cognitive load for developers.

June 28, 2026·3 min read·
#platform-engineering#backstage#crossplane#internal-developer-platform#idp#golden-paths

Introduction

Developers spend 40% of their time on infrastructure — provisioning environments, debugging CI pipelines, configuring YAML, waiting for DNS to propagate. Platform Engineering solves this by building an Internal Developer Platform (IDP) that abstracts infrastructure complexity behind self-service interfaces.

This guide covers the three pillars of a production IDP in 2026: Backstage for the developer portal, Crossplane for infrastructure provisioning, and Golden Paths for standardization without gatekeeping.

The Three Pillars of an IDP

Developer Portal (Backstage). A single interface where developers discover services, access documentation, create environments, and view deployment status. Backstage integrates with 100+ plugins — Kubernetes, ArgoCD, PagerDuty, Datadog, GitHub.

Infrastructure Orchestration (Crossplane). Crossplane lets developers provision cloud resources (RDS databases, S3 buckets, SQS queues) via Kubernetes CRDs. Instead of opening 12 AWS console tabs, a developer writes:

apiVersion: database.aws.crossplane.io/v1beta1
kind: RDSInstance
metadata:
  name: orders-db
spec:
  forProvider:
    region: us-east-1
    dbInstanceClass: db.t3.medium
    engine: postgres
    engineVersion: "16"
    publiclyAccessible: false

Deployment Engine (ArgoCD). As covered in our ArgoCD GitOps guide, ArgoCD is the engine that deploys code after the platform provisions infrastructure. Together, Backstage + Crossplane + ArgoCD create a complete self-service deployment pipeline.

Golden Paths: Standardization Without Gatekeeping

Golden Paths are pre-built, supported templates that developers can use — or ignore. The key insight: Golden Paths are optional. If a team's needs fit the Golden Path (which covers 80% of use cases), they get a turnkey deployment pipeline. If they need something custom, they build their own — but they own the maintenance.

A Golden Path template in Backstage (Software Template):

apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
  name: go-microservice
spec:
  type: service
  parameters:
    - title: Service Details
      properties:
        name:
          type: string
          description: Service name
        deployEnv:
          type: string
          enum: [staging, production]
  steps:
    - id: fetch-base
      action: fetch:template
      input:
        url: https://github.com/platform/go-service-template
    - id: provision-db
      action: crossplane:create
      input:
        claim: database-claim
    - id: deploy
      action: argocd:create-app
      input:
        name: ${{ parameters.name }}
        repo: ${{ steps.publish.output.repoUrl }}

A developer fills in a name, clicks "Create," and gets a Go service with CI/CD, database, and deployment — in under 5 minutes. No ticket to infra team. No PR to platform repo. Self-service.

Measuring Platform Success: DevEx Metrics

Platform engineering succeeds when developers spend less time on infrastructure. Measure:

  • Time to 10th PR. How long from new hire to their 10th merged PR? Before IDP: 14 days. After IDP: 2 days.
  • Deployment frequency. Before: once per sprint. After: multiple times per day.
  • Mean time to environment. Before: file a ticket, wait 3 days. After: tilt up or a Backstage click — 30 seconds.
  • Ticket volume to SRE/infra. Before: 200 tickets/month for environment setup. After: 15 tickets/month (mostly edge cases).

These are the metrics that justify platform engineering to leadership — not "we deployed Backstage," but "developers ship 4x faster."

Crossplane Compositions: Platform APIs

Crossplane Compositions define your platform's API — the resources developers can claim without understanding the underlying infrastructure:

apiVersion: apiextensions.crossplane.io/v1
kind: Composition
metadata:
  name: postgres-micro.aws.database.example.org
spec:
  compositeTypeRef:
    apiVersion: database.example.org/v1alpha1
    kind: XPostgresInstance
  resources:
    - base:
        apiVersion: database.aws.crossplane.io/v1beta1
        kind: RDSInstance
        spec:
          forProvider:
            dbInstanceClass: db.t3.micro
            engine: postgres
            allocatedStorage: 20

A developer creates a PostgresInstance claim. The platform team's Composition provisions the actual RDS instance, security group, subnet group, and parameter group — all from a single developer-facing CRD.

For the complete picture of platform engineering in 2026 — including Backstage plugin development, Dagger for CI/CD, and the economics of developer platforms — see our Platform Engineering 2.0 guide.

Platform engineering is not about building tools. It is about reducing the cognitive load your developers carry every day.

#platform-engineering#backstage#crossplane#internal-developer-platform#idp#golden-paths
D
DevToCashAuthor

Senior DevOps/SRE Engineer · 10+ years · Professional Trader (IDX, Crypto, US Equities)

I write about real infrastructure patterns and trading strategies I use in production and in live markets. No courses, no affiliate hype — just documentation of what actually works.

More about me →