Encore has significant advantages in developer experience for greenfield TypeScript/Go backends — its code-first infrastructure inference, local-to-cloud consistency, preview environments, MCP tooling, and AI agent integration are polished and production-proven. Its core limitation is lock-in: the framework requires rewriting application code to use Encore SDKs, and "without Terraform" actually means Encore replaces Terraform internally using AWS/GCP cloud APIs — you never write Terraform, but Encore's provisioning engine does equivalent work under the hood.
Simple Container + Forge is better suited for language-agnostic, container-native, multi-cloud, or Kubernetes self-hosted workloads. It is less opinionated about application code structure, but requires more explicit YAML configuration from DevOps teams. Forge agents operate at the deployment/workflow orchestration level rather than infra-inference level. SC does not yet offer the same depth of per-PR preview environment automation or local-to-cloud development symmetry.
Encore's homepage (October 2026) states: "Automated infrastructure from development to production" and "Declare infrastructure in your TypeScript or Go code and Encore provisions it on AWS or GCP." The pricing page says: "Declarative Infrastructure as Code (No Terraform, no YAML)." The docs explicitly state the goal is that AI agents can declare what a feature needs and Encore provisions it without Terraform.
| Layer | What Happens | Terraform Equivalent |
|---|---|---|
| Developer / Agent writes | const db = new SQLDatabase("orders", ...) in TypeScript |
Would write aws_db_instance resource block |
| Encore parser (open source, runs locally) | Builds Application Model via static analysis of source code | Terraform plan |
| Encore Cloud Platform (SaaS, Pro tier) | Calls AWS/GCP APIs directly to provision RDS, Cloud SQL, SNS+SQS, etc. | Terraform apply (but done by Encore, not you) |
| State management | Encore tracks provisioned resources; drift-aware updates; PATCH-style (not full sync) | Terraform state file |
| IAM | Least-privilege, auto-derived from which service calls which resource | aws_iam_policy written manually |
| Component | Open Source / Free | Requires Pro/Enterprise ($49+/member/mo) |
|---|---|---|
| Encore.ts / Encore.go SDKs | ✓ Open Source | |
| CLI, parser, compiler | ✓ Open Source | |
| Local infra (Docker Postgres, in-mem Pub/Sub) | ✓ Free | |
| Encore Cloud hosting (dev envs, free tier) | ✓ Free (Fair Use) | |
| Provision to your own AWS/GCP | Pro required | |
| Preview Environments per PR | Pro required | |
| Least-privilege IAM management | Enterprise only | |
| Self-hosted Preview Environments | Enterprise only | |
| Self-host (build Docker image, run anywhere) | ✓ Free via encore build docker |
Source: encore.dev/pricing, fetched 2026-10-07. Encore v1.58.6, released 2026-10-01.
Encore uses a static-analysis parser that reads TypeScript or Go source at build time (not at runtime). When you write new SQLDatabase("orders", { migrations: "./migrations" }), the parser records the resource name and migration path without executing the code. This builds the Application Model — a graph of services, APIs, databases, Pub/Sub topics, caches, object storage, cron jobs, and secrets, plus inter-service dependencies and access patterns.
| Language | Status | Notes |
|---|---|---|
| TypeScript (Node.js) | Production | Encore.ts — full SDK, primary target |
| Go | Production | Encore.go — full SDK, original language |
| Python | Beta/preview | Encore.py — announced, limited support |
| Rust | Early preview | Encore.rs — announced on blog |
| Other languages | Not supported | No Java, .NET, Ruby, PHP, etc. |
| Target | Status | Notes |
|---|---|---|
| AWS (ECS Fargate, EKS) | Production | RDS, S3, SNS+SQS, ElastiCache, Secrets Manager |
| GCP (Cloud Run, GKE) | Production | CloudSQL, GCS, Pub/Sub, Memorystore, Secret Manager |
| Azure | Not supported | No Azure support listed anywhere in docs |
| Self-hosted Kubernetes | Partial | encore build docker + manual infra config; no auto-provisioning |
| On-prem | Partial | Self-host path exists but requires manual infra config JSON |
Encore's Application Model supports a fixed set of resource types:
encore app create — creates new app, generates project rules for AI toolsencore llm-rules init — generates CLAUDE.md, Cursor rules, AGENTS.md for existing projectsencore mcp start / encore mcp run — starts local MCP serverencore run — starts app + local infra; encore build docker for self-hostingEncore provides a local MCP server (SSE or stdio) that gives AI agents structured access to the running application. Tools exposed:
get_databases, query_database — schema inspection, live queriescall_endpoint, get_services, get_middleware, get_auth_handlersget_traces, get_trace_spans — trace search and span inspectionget_metadata, get_src_files — full app model + source codeget_pubsub, get_storage_buckets, get_cache_keyspaces, get_cronjobs, get_metrics, get_secretssearch_docs, get_docs — documentation searchA Cloud MCP Server also exists at https://api.encore.dev/mcp for accessing deployed cloud environments (production traces, deployment status, etc.).
An npm package (npx add-skill encoredev/skills) installs repeatable agent workflows for Cursor, Claude Code, GitHub Copilot: creating APIs, databases, topics, testing, migration. Source: github.com/encoredev/skills.
pr:72 → https://pr72-<app-id>.encr.appencore build docker builds a standard Docker image (no Encore runtime dependency)infra-config.jsonencore.dev/migrate-awayResources = Encore primitives (services, DBs, cron jobs, caches, buckets, topics, subscriptions, secrets). Underlying cloud primitives not counted separately.
SC is an open-source, MIT-licensed CLI tool (sc) for cloud-agnostic deployment of containerised microservices. It uses YAML configuration files (server.yaml / client.yaml) to define infrastructure resources and deployment targets, without requiring developers to write Terraform or Pulumi directly.
curl -s "https://dist.simple-container.com/sc.sh" | bash
SC uses a stack model:
server.yaml defines cloud resources (databases, Kubernetes clusters, MongoDB Atlas, etc.), provisioner type, secrets backendclient.yaml defines the service to deploy (image, env vars, compute type, referenced resources from parent)| Target | Status | Notes |
|---|---|---|
| AWS ECS Fargate | Production | Containerised services on Fargate |
| AWS Lambda | Production | Serverless Lambda deployment (forge itself deployed here) |
| GCP Cloud Run | Production | Serverless containers |
| Kubernetes (generic) | Production | Any Kubernetes cluster (EKS, GKE, K3s, on-prem, Rancher) |
| GKE Autopilot | Production | Specific GKE support verified in testdata |
| Self-hosted / on-prem K8s | Production | Ansible+K3s deployment supported in testdata |
| Azure | Unknown | Not explicitly listed in docs/testdata; [to be verified] |
From testdata and docs (docs.simple-container.com/reference/supported-resources):
dns.goserver.yaml. The developer writes a much simpler client.yaml (service config) that references parent resources. This is explicit YAML declaration, not code-first inference.
Simple Forge is an AI agent orchestration layer running as AWS Lambda + MongoDB Atlas, deployed via SC itself:
sc secrets reveal decrypts secrets for local dev/CIpkg/api/secrets/pulumi-yandex in org; Pulumi used in pkg/clouds/pulumi/)client.yaml can target different cloud providers| Dimension | Encore (Cloud Platform, Pro) | Simple Container + Forge |
|---|---|---|
| Infra declaration method | Code-first (TypeScript/Go typed SDK calls) | YAML-first (server.yaml + client.yaml) |
| Infra inference (no-write) | ✓ Auto-inferred via static analysis | ✗ Explicit YAML declaration required |
| Languages supported | TypeScript, Go (production); Python, Rust (preview) | Any (container-based; language-agnostic) |
| AWS support | ✓ Full (ECS Fargate, EKS, RDS, S3, etc.) | ✓ Full (Fargate, Lambda, RDS, etc.) |
| GCP support | ✓ Full (Cloud Run, GKE, CloudSQL, etc.) | ✓ Full (Cloud Run, GKE Autopilot, CloudSQL) |
| Azure support | ✗ Not supported | Unknown (not confirmed in docs) |
| Kubernetes self-host | Partial (build Docker, manual infra config) | ✓ Full (K3s, GKE Autopilot, any K8s cluster) |
| On-prem deployment | Partial (self-host Docker, manual config) | ✓ Full (Ansible+K3s, any Kubernetes) |
| Preview environments (per PR) | ✓ Built-in (Pro; Encore Cloud or own VPC Enterprise) | ✗ Not built-in; manual scripting required |
| Local dev parity with cloud | ✓ Strong (Docker Postgres, in-mem Pub/Sub, local tracing) | Partial (docker-compose for local; env parity not automatic) |
| MCP server for AI agents | ✓ Shipped (local + cloud MCP servers) | ✗ Not available |
| AI agent integration depth | Deep (MCP tools, skills package, project rules, build-time validation) | Workflow-level (GitHub issue→Claude→PR pipeline; no infra inspection) |
| Auto IAM least-privilege | ✓ Auto-derived from code (Enterprise for full feature) | Manual (DevOps configures in server.yaml / cloud console) |
| Secrets management | ✓ Built-in (name references in code; cloud-native secret managers) | ✓ Built-in (encrypted YAML + cloud secret managers + KMS) |
| Distributed tracing | ✓ Built-in (no agent code; cross-service spans) | External (CloudWatch metrics; no cross-service trace built-in) |
| Service catalog / arch diagram | ✓ Built-in (auto-generated from Application Model) | ✗ Not available |
| Drift detection | ✓ Built-in (PATCH-style, drift-aware before any update) | Partial (depends on provisioner; Pulumi has state reconciliation) |
| State management | Encore internal state (not Terraform state) | YAML + provisioner state (Pulumi state where applicable) |
| Rollback | ✓ Dashboard re-deploy to previous version | ✓ sc deploy to previous image/version |
| Infra destroy safety | ✓ Manual approval required in dashboard | Standard per-provisioner behavior |
| Vendor lock-in risk | Medium (SDK rewrite required; AWS/GCP only; escape hatch via Docker) | Low (any container; any cloud; MIT open source) |
| Application code changes required | Yes — must use Encore SDK primitives | No — any Dockerfile/docker-compose works |
| Open source | SDK + CLI open source; cloud platform is SaaS | SC CLI: MIT open source; Forge: proprietary internal tooling |
| Pricing model | $49/member/mo + $99/env + $2.50/resource (Pro); Enterprise custom | SC CLI free; SC Cloud: undisclosed; cloud infra direct to provider |
| Latest release | v1.58.6 (2026-10-01) | SC API continuously deployed; version stamped at build |
With Encore:
encore app create → choose AI tool → CLAUDE.md and MCP config auto-generatedencore mcp run to inspect the application model in real-timenew SQLDatabase(...), new Topic(...), etc. in TypeScript — Encore validates at build timecall_endpoint, verifies traces via get_traces, iteratesResult: Fully automated, zero Terraform, real AWS infra in minutes. Lock-in cost: application is now Encore-specific.
With SC + Forge:
server.yaml defining the stack (Postgres RDS, Kubernetes cluster, secrets backend)client.yaml + Dockerfile for the servicesc deploy -s myservice -e staging)Result: Partially automated. More DevOps YAML setup upfront. No automatic per-PR preview environments. No application code changes. Lock-in cost: minimal.
With Encore: Requires rewriting services to use Encore SDK primitives. Partial adoption possible (self-host path), but full automation requires SDK adoption. High migration cost. Not recommended for large existing codebases.
With SC + Forge: Add .sc/stacks/myservice/client.yaml to existing repos. Zero application code changes. Forge agents work on any codebase. More natural fit. Better fit here.
With Encore: AWS and GCP supported; no Azure; on-prem requires manual Docker + infra config. Limited automation for hybrid scenarios.
With SC + Forge: Native support for AWS + GCP + any Kubernetes (including on-prem K3s). Same client.yaml can target different environments. Better fit here.
With Encore: Full real-time validation loop via MCP server. Agent can: inspect schema → write code → run → call endpoint via MCP → inspect trace → iterate. Build-time guardrails catch invalid declarations before deployment. Strong advantage for Encore.
With SC + Forge: Agent writes code → commits → SC deploys → agent must parse logs or call HTTP endpoints externally to validate. No structured MCP-style inspection of live infra state. Loop is slower and less reliable.
encore run boots local Postgres, Pub/Sub, tracing — exact same code runs everywhereResearch only — no code or roadmap modifications made in this run.
Add an MCP server to SC + Forge that exposes stack state to AI agents. This is the single highest-leverage action to close the AI agent experience gap. The server should expose: deployed service status, recent deployment history, resource configuration, secrets metadata (not values), and deployment logs. This would allow agents to inspect, validate, and iterate on infra changes without application code changes.
Build native per-PR preview environment automation. Add a sc preview-env create --pr=72 workflow that provisions an ephemeral environment from a PR, registers it as a GitHub deployment, and tears it down on PR close. Even a lightweight version (reusing existing stack templates) would address a critical feature gap vs. Encore.
Publish SC Cloud pricing and positioning. The absence of public pricing creates evaluation friction. Even a "contact us" tier + a clear free tier description would help teams comparing SC to Encore's well-documented pricing.
Develop "Encore migration" or "Encore parity" documentation for SC. A doc showing how SC handles each of Encore's core features (preview envs, secrets, IAM, local dev) would help teams currently evaluating Encore discover SC as an alternative — especially for teams with existing codebases they cannot rewrite.
Add local dev infrastructure parity (docker-compose-first DX). SC should document and streamline the local development story — ideally with a sc dev up command that starts all declared resources from server.yaml locally in Docker, matching the env your service expects. This directly addresses one of Encore's strongest differentiators.
Confirm and publicise Azure support. If Azure is supported (or can be added), this is a market segment Encore entirely misses. Clear documentation would attract enterprise teams in Azure-heavy environments.
Add built-in distributed tracing support or a first-class Forge workflow for trace correlation. Even an OpenTelemetry collector integration in the Forge agent would close the observability gap. Encore's built-in tracing (no agent code required) is a meaningful DX win that SC currently lacks.
| Source | URL | Date Retrieved | Credibility |
|---|---|---|---|
| Encore Docs — Overview | encore.dev/docs.md | 2026-10-07 | Primary — official docs |
| Encore — Understanding Encore | encore.dev/docs/understanding-encore.md | 2026-10-07 | Primary — official docs |
| Encore — AI Integration | encore.dev/docs/ai-integration.md | 2026-10-07 | Primary — official docs |
| Encore — Platform Introduction | encore.dev/docs/platform/introduction.md | 2026-10-07 | Primary — official docs |
| Encore — Infrastructure Provisioning | encore.dev/docs/platform/infrastructure/infra.md | 2026-10-07 | Primary — official docs |
| Encore — Infrastructure Configuration | encore.dev/docs/platform/infrastructure/configuration.md | 2026-10-07 | Primary — official docs |
| Encore — Preview Environments | encore.dev/docs/platform/deploy/preview-environments.md | 2026-10-07 | Primary — official docs |
| Encore — Own Cloud Setup | encore.dev/docs/platform/deploy/own-cloud.md | 2026-10-07 | Primary — official docs |
| Encore — Security | encore.dev/docs/platform/deploy/security.md | 2026-10-07 | Primary — official docs |
| Encore — Self-Hosting / Build Docker | encore.dev/docs/self-host/build.md | 2026-10-07 | Primary — official docs |
| Encore — Local MCP Server | encore.dev/docs/mcp.md | 2026-10-07 | Primary — official docs |
| Encore — Platform AI Integration | encore.dev/docs/platform/ai-integration.md | 2026-10-07 | Primary — official docs |
| Encore — Pricing | encore.dev/pricing | 2026-10-07 | Primary — official pricing page |
| Encore GitHub — Latest Release v1.58.6 | github.com/encoredev/encore releases | 2026-10-07 | Primary — GitHub API, released 2026-10-01 |
| SC API README | github.com/simple-container-com/api (private) | 2026-10-07 | Primary — org source code |
| SC API — welder.yaml | github.com/simple-container-com/api/welder.yaml (private) | 2026-10-07 | Primary — org source code |
| SC API — testdata/stacks/refapp/server.yaml | github.com/simple-container-com/api (private) | 2026-10-07 | Primary — org source code |
| SC Forge README | github.com/simple-container-com/forge (private) | 2026-10-07 | Primary — org source code |
| SC Docs — Supported Resources | docs.simple-container.com | 2026-10-07 | Primary — official docs |