# Solution Overview 🎯

## Vision

Build a self-service developer portal that automates project creation and standardizes infrastructure setup across the organization.

## Core Requirements

### **Functional Requirements**

* **Project Creation**
  * Create new projects from templates
  * Configure project CI/CD and infrastructure
  * Automate repository setup and permissions
  * Set up required platform integrations (Sentry, Datadog, etc.)
* **Platform Features**
  * Centralized API documentation
  * Service discovery

### **Non-functional Requirements**

* **Performance**
  * Reduce project setup time from 1 week to under 2 hours
  * Handle concurrent project creation requests
* **Scalability**
  * Support 200+ engineers
  * Handle multiple project templates
  * Scale across different engineering teams
* **Security**
  * Enterprise SSO Integration
  * Role based access control
* **Maintainability**
  * Maintainable template system
  * Standardized infrastructure patterns
  * Clear documentation
* **Reliability**
  * Consistent project creation
  * Error handling and recovery

## Why Backstage?

* Wrote a tech brief that included a decision matrix with the popular Developer Portal platforms
* Backstage emerged as the optimal choice based on:
  * Open source and free
  * Great documentation
  * Intuitive UI/UX
  * 100+ existing plugins
  * Strong developer experience focus

{% embed url="<https://youtu.be/85TQEpNCaU0>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://notes.mikaelsamvelian.com/devops-knowledge/developer-portal/solution-overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
