Oct 23, 20264 min read

How to Let Non-Engineers Vibe-Code Internal Apps Without Losing Control of AWS

Operations and support staff are building their own tools with coding agents. The question for the engineering team is where those apps run and what reviews them. Here is a setup on plain AWS and one with Encore.

The operations lead who built a refund queue with Claude Code over a weekend is not going to file a ticket to get it hosted. If the engineering team has no supported path, the app ends up on a personal account or a laptop, with a copy of customer data next to it.

This is the shadow IT problem the UK NCSC describes, with a faster build step, and a sanctioned way to ship is the more realistic control.

This guide describes that path on plain AWS and with Encore.

The controls at a glance

ControlWith EncorePlain AWS
Cloud credentials for the builderHeld by Encore's IAM role, not the builder or agentScoped role or none, if CI deploys
Code reviewPull request with a preview environmentPull request, environment is up to you
Infrastructure reviewManual infrastructure approval per environmentPlan output reviewed in CI
Who can deploy and set secretsAdmin, Member and Viewer rolesIAM and CI permissions
Blast radiusSeparate AWS account connected as its own environmentSeparate AWS account in your organization

Plain AWS: accounts, branches and a pipeline

Start with a dedicated AWS account for internal apps, so a mistake cannot reach production data directly. AWS's guidance on organizing your AWS environment treats accounts as the main isolation boundary for this reason. Put the apps in a repository with protected branches that require an engineer's review before merge, and have CI deploy with a role assumed through OIDC.

The gap is in infrastructure, because a non-engineer's agent will add a database or a queue by writing infrastructure code, and the reviewer has to read IAM policies and security groups written by a model for someone who cannot judge them. A generated policy that grants * on a resource type looks fine at a glance and is the kind of detail that slips through.

Encore: a reviewed path from prompt to AWS

Encore

Encore combines an open source SDK for TypeScript and Go with a platform that provisions and deploys what the code declares into your own AWS account, under rules the engineering team sets. The builder's agent writes services with the SDK, and infrastructure shows up in the code as declarations such as new SQLDatabase("refunds", ...) rather than as IAM and networking. That keeps the review about what the app needs, while Encore generates the AWS setup with private subnets and per-service roles.

The workflow for a non-engineer looks like this:

  1. Run encore run locally, which starts Postgres and the app, and iterate with the agent until it works. Rules from encore llm-rules init keep the agent on Encore's conventions, as described in the AI integration docs.
  2. Push a branch and open a pull request. On the Encore Pro plan, Encore creates a preview environment with its own database, so the reviewer clicks through the working app.
  3. An engineer reviews and merges. If the change adds infrastructure and the environment has manual approval turned on, an Admin approves it before it is created.

Access is set with roles. The builder can be a Member who deploys through branches, while Admins keep cloud connections and approvals. Cloud access sits with Encore's IAM role, not the agent, which makes it more reasonable to let people outside engineering ship.

Good to know

Encore covers the backend and the deploy. A non-engineer still needs a frontend, which can be served from the app with api.static. Review is still required, since Encore makes infrastructure changes visible and approvable but someone has to read the code.

Get started
brew install encoredev/tap/encore &&
encore app create
Copy

Run in your terminal to get started locally.

How to choose

  • Encore when you want non-engineers to ship apps with a backend into your AWS with preview environments and approvals, without anyone reviewing generated IAM.
  • Plain AWS when internal apps must follow the same infrastructure pipeline and review as your production systems.

Frequently asked questions

How do I let non-engineers deploy apps they built with an AI agent?

Give them a path where they never hold cloud credentials and every change is reviewed. With Encore, they push to a branch, a pull request gets a preview environment, an engineer reviews and merges, and Encore deploys to your AWS account. An Admin can require manual approval for new infrastructure in production.

Which Encore role should a non-engineer get?

Encore has Admin, Member and Viewer roles. Members can contribute and deploy, while Viewers can view the dashboard and run the app locally. Custom roles are an add-on to the Encore Pro plan.

Should vibe-coded apps share an AWS account with production?

Usually not. A separate AWS account for internal apps limits what any one app can reach, and you can connect that account to Encore as its own environment.

Deploy to your cloud on AWS and Google Cloud
without managing infrastructure

Encore lets developers and agents define application infrastructure directly in code, then automatically provisions it from local development to production in your AWS or GCP account.

~/orders — claude
Claude Code
Claude Code v2.1.180Opus 5.5~/orders