The best platform is one teams can join without talking to you. This project is a REST API + React UI that takes a team from "we need infrastructure" to fully onboarded — generating Terraform, automating Git, and notifying stakeholders along the way.
Onboarding a team onto the platform was a checklist in someone's head: create the config, write the Terraform, open the Git PRs, set the permissions, email the right people. Every onboarding consumed platform-engineer hours and every skipped step surfaced weeks later as a mystery bug.
React UI (Vite) │ team fills a form — accounts, services, environments ▼ Node.js REST API ├── validates request against platform rules ├── generates Terraform from templates ├── automates Git — branch, commit, PR └── notifies — owners, approvers, requester ▼ platform repo PR ──► review ──► merge ──► pipeline provisions
The human steps that remain are the ones that should be human: review and approval. Everything mechanical — file generation, naming conventions, branch hygiene, notifications — is code.
Alongside onboarding, reference implementations for running multiple tenants on shared infrastructure: containerized Node and Flask services behind nginx, packaged with Docker and designed to slot into the ECS platform module — so "we need a new tenant" is configuration, not a new architecture discussion.
Templates over snowflakes. Generated Terraform is always convention-correct — names, tags, and structure identical across hundreds of onboardings.
Git as the interface. The API's output is a pull request, not a side-channel change — keeping platform history reviewable and revertible.
Notifications built-in. Every state change emails the right audience, killing the "did my request go through?" ping-pong.
Onboarding went from platform-engineer hours per team to a form and a PR review. Consistency stopped depending on who did the onboarding, and the platform team got their calendar back.