← Back to all products

Platform Developer Portal

$49

Internal developer portal with service catalog, API docs, onboarding guides, and self-service infrastructure templates.

📁 37 files
YAMLMarkdownTerraformPythonCI/CD

📄 Product Preview

Try the interactive reader and demo tools below, or get the full product with all content unlocked.

📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample

📁 File Structure 37 files

platform-developer-portal/ ├── LICENSE ├── README.md ├── catalog/ │ ├── catalog-info-api-gateway.yaml │ ├── catalog-info-notification-service.yaml │ ├── catalog-info-payment-service.yaml │ └── catalog-info-user-service.yaml ├── docs/ │ ├── api/ │ │ ├── payment-service-openapi.yaml │ │ └── user-service-openapi.yaml │ ├── onboarding/ │ │ ├── getting-started.md │ │ ├── golden-path.md │ │ └── service-ownership.md │ └── techdocs/ │ ├── docs/ │ │ ├── architecture.md │ │ └── index.md │ └── mkdocs.yml ├── free-sample.zip ├── guide/ │ ├── 01-idp-fundamentals.md │ ├── 02-service-catalog-design.md │ ├── 03-software-templates-and-golden-paths.md │ ├── 04-api-documentation-and-techdocs.md │ └── 05-self-service-infrastructure.md ├── index.html ├── infra/ │ └── modules/ │ ├── ecs-service/ │ │ ├── README.md │ │ ├── main.tf │ │ └── variables.tf │ ├── rds-postgres/ │ │ ├── README.md │ │ ├── main.tf │ │ └── variables.tf │ └── s3-bucket/ │ ├── README.md │ ├── main.tf │ └── variables.tf ├── src/ │ ├── __pycache__/ │ │ ├── catalog_linter.cpython-312.pyc │ │ └── catalog_validator.cpython-312.pyc │ ├── catalog_linter.py │ └── catalog_validator.py └── templates/ ├── new-api-service.yaml ├── new-backend-service.yaml └── new-frontend-app.yaml

📖 Documentation Preview README excerpt

Platform Developer Portal Kit

A comprehensive internal developer portal (IDP) starter kit inspired by Backstage.

Includes service catalog definitions, scaffolding templates, API documentation,

golden-path onboarding guides, self-service infrastructure modules, and a

Python-based catalog validator.

What's Inside

This kit provides everything needed to bootstrap an internal developer portal:

  • Service Catalog (Backstage-compatible YAML) — catalog-info.yaml entries for multiple example services showing ownership, dependencies, lifecycle, and API definitions
  • Software Templates (Scaffolder YAML) — Ready-to-use scaffolder templates for creating new services, APIs, and frontend applications following your golden path
  • API Documentation (OpenAPI 3.1) — Example OpenAPI specs showing best practices for documenting internal and external APIs
  • Golden Path Onboarding Guides — Markdown guides for new developers: getting started, service ownership, and the "paved road" for shipping software
  • Self-Service Infrastructure (HCL/Terraform) — Reusable Terraform modules for common infrastructure patterns (ECS services, RDS databases, S3 buckets)
  • TechDocs Structure — MkDocs-ready documentation structure for publishing technical documentation through your portal
  • Catalog Validator (Python, stdlib only) — Linter and validator for catalog-info.yaml files ensuring consistency and completeness

File Tree


platform-developer-portal/
├── README.md
├── LICENSE
├── catalog/
│   ├── catalog-info-api-gateway.yaml
│   ├── catalog-info-user-service.yaml
│   ├── catalog-info-payment-service.yaml
│   └── catalog-info-notification-service.yaml
├── templates/
│   ├── new-backend-service.yaml
│   ├── new-api-service.yaml
│   └── new-frontend-app.yaml
├── docs/
│   ├── onboarding/
│   │   ├── getting-started.md
│   │   ├── golden-path.md
│   │   └── service-ownership.md
│   ├── techdocs/
│   │   ├── mkdocs.yml
│   │   └── docs/
│   │       ├── index.md
│   │       └── architecture.md
│   └── api/
│       ├── user-service-openapi.yaml
│       └── payment-service-openapi.yaml
├── infra/
│   └── modules/
│       ├── ecs-service/
│       │   ├── main.tf
│       │   ├── variables.tf
│       │   └── README.md
│       ├── rds-postgres/
│       │   ├── main.tf
│       │   ├── variables.tf
│       │   └── README.md
│       └── s3-bucket/
│           ├── main.tf
│           ├── variables.tf

*... continues with setup instructions, usage examples, and more.*

📄 Code Sample .py preview

src/catalog_linter.py """ Catalog Linter — Best Practice Checks for Backstage Catalog Entries Goes beyond structural validation to check for organizational best practices: - Annotation completeness (monitoring, CI/CD, documentation links present) - Tag hygiene (consistent taxonomy, no duplicates) - Description quality (minimum length, no placeholder text) - Ownership patterns (no orphaned services, balanced team load) - Dependency documentation (APIs declared for all integrations) Use this alongside the validator — the validator catches structural errors that would break Backstage, while the linter catches quality issues that make the catalog less useful for its human consumers. """ from __future__ import annotations import re from dataclasses import dataclass, field from pathlib import Path from typing import Any, Optional class LintSeverity: """Lint finding severity as string constants.""" ERROR = "error" WARNING = "warning" INFO = "info" STYLE = "style" @dataclass class LintFinding: """A single lint finding for a catalog entry.""" severity: str rule_id: str message: str entity_name: str = "" file_path: str = "" suggestion: str = "" def __str__(self) -> str: sev = self.severity.upper().ljust(7) suggestion = f"\n Suggestion: {self.suggestion}" if self.suggestion else "" return f" [{sev}] {self.rule_id}: {self.message}{suggestion}" # Annotations that production services should have for full observability RECOMMENDED_ANNOTATIONS = { "github.com/project-slug": "Link to source code repository", # ... 382 more lines ...
Buy Now — $49 Back to Products