A field story · AWS · Starter

A team, a platform,
and one afternoon

The same ten components a Starter subscription buys, deployed into an AWS account and used the way a product team would use them — then taken down again. This is how the day went.

10 components€499 a monthBuilt & destroyed in one session
The project's ten components, each running
Ten components, each its own machine, each reporting healthy.
01

The app

We have a web project to build

The web tier on nginx, its orders in PostgreSQL. Every request is already recorded.
The web tier on nginx, its orders in PostgreSQL. Every request is already recorded.

We are a small product team, and we have a web application to ship. It runs on nginx and keeps its data in PostgreSQL — the ordinary shape of a web project.

The platform gave us that project already standing: the web tier answering, the database behind it, and a page in front we can watch fill as people use it. Nothing to install on anyone’s laptop first.

What we are building

The application is a small online shop: a catalogue, orders, a running total. It stands in for whatever a team is really building.

What matters is that the platform hands us the pieces to run it — the web server, the database, the page — and the means to watch it, rather than a description of them. From here, the team can start writing code against something that already works.

02

The tools

Somewhere to put the code, something to build it

Before we write much, we need a place for the code and a machine to build it. The platform deploys GitLab and a runner for us, and the runner registers itself against the GitLab beside it.

From the first commit the pipeline runs on its own: it fetches a dependency from our Nexus, compiles, and publishes the result back. We did not wire any of it by hand.

The build pipeline, green run after run, fetching from Nexus and publishing back.
The build pipeline, green run after run, fetching from Nexus and publishing back.
The runner, registered and online, ready for work.
The runner, registered and online, ready for work.

The runner is ours, not a shared pool. It registers against our own GitLab, runs on a machine in our account, and we can see it, pause it or replace it. Our code is never built on infrastructure we do not control.

03

The people

Bringing the team in, with the right access

Our lead needs to bring people onto the project — front-end and back-end developers — and give each the access their work needs and no more.

Keycloak is deployed as the team’s single sign-on. People sign in once, against a realm that belongs to this project, and the same identity carries across the tools. Adding a developer, or setting them as front-end or back-end, is managing a profile in one place rather than an account in each service.

The team’s realm in Keycloak: front-end and back-end developers managed as profiles in one place, each with the access their work needs.
The team’s realm in Keycloak: front-end and back-end developers managed as profiles in one place, each with the access their work needs.
04

The work

Then the building starts in earnest

The work gets busy. Commits land through the day, and the runner is compiling almost constantly. This is where a platform is either quiet or in the way.

The runner’s own board shows the jobs going through, how long they take, and its logs. When the team is at full pace, we can see the pace.

The runner board: jobs run, durations, and the runner’s logs, while the team is building.
The runner board: jobs run, durations, and the runner’s logs, while the team is building.
GitLab itself: the CI queue and the services behind it.
GitLab itself: the CI queue and the services behind it.

GitLab keeps its own board beside the runner’s: the CI queue, and the PostgreSQL, Redis and Sidekiq behind it. When a build slows, we can tell whether it is the runner or the server, without guessing.

05

What breaks

Every error, without leaving one screen

Things go wrong in normal work: a bad request from the front-end, a service that goes quiet, a runner that stalls. We would rather find them than be told about them.

Each component reports to the same Grafana. The web board shows real 4xx and 5xx responses beside the request rate, with the access and error logs underneath. A problem shows up as a line on a chart and a line in a log, in the same place.

The web board: request rate, responses by status with genuine 4xx and 5xx, and the logs beneath.
The web board: request rate, responses by status with genuine 4xx and 5xx, and the logs beneath.
06

The view

How the work is moving, and shared

Our lead wants more than “it is up.” They want a sense of how the work is progressing, to share with the people the team answers to.

The same Grafana gives that view from the build and deployment activity. And for the work itself — what is being done, hour by hour — we can put an activity service in front of it, a plain page showing the current state, the log as it happens, and the load over the day.

An activity view over the work: current state, the log as it lands, and the day’s load. Shown here from our own build of this platform.
An activity view over the work: current state, the log as it lands, and the day’s load. Shown here from our own build of this platform.
The same record printed as a daily page, with the screenshots of what went right.
The same record printed as a daily page, with the screenshots of what went right.

The newspaper is the shareable form: one page a day — a headline, the numbers, and pictures of what succeeded — that our lead can hand to the people the team answers to, without giving anyone a login.

What the day added up to

Components
10, each its own machine
Built and destroyed
One session, nothing left running
Pipelines
9 green builds of GNU hello from Nexus
Observability
Every component's board, metrics and logs
Secrets we hold
None — federated role, short-lived tokens

Everything above is one real deployment, not a mock-up. It was recorded as aws-starter-showcase-1 on 14 September 2026; every screenshot is from that run, and the platform was destroyed afterwards, so nothing here is left running or costing anything.

The same platform deploys onto an AWS account of yours through a role you create and can revoke by deleting it. We hold no key of yours between deployments.

← All deployment showcases