<!-- PkgPulse AI-readable guide source -->
<!-- Canonical: https://www.pkgpulse.com/guides/alchemy-vs-sst-vs-opennext-cloudflare-deployment-2026 -->
<!-- Raw Markdown: https://www.pkgpulse.com/guides/alchemy-vs-sst-vs-opennext-cloudflare-deployment-2026/raw.md -->
<!-- Source path: content/guides/alchemy-vs-sst-vs-opennext-cloudflare-deployment-2026.mdx -->

---
og_image: "/images/guides/alchemy-vs-sst-vs-opennext-cloudflare-deployment-2026.webp"
title: "Alchemy vs SST v3 vs OpenNext: Cloudflare-First Deployment 2026"
description: "Alchemy, SST v3, and OpenNext compared for Cloudflare and AWS apps: deployment model, vendor coupling, and Next.js on Workers."
date: "2026-04-26"
author: "PkgPulse Team"
tags: ["alchemy", "sst", "opennext", "cloudflare-workers", "deployment", "iac", "2026"]
featured_comparison: "alchemy"
---

## TL;DR

**Alchemy is the most ergonomic choice if your target is Cloudflare and you want to write infrastructure in plain TypeScript without a CDK-style DSL. SST v3 is the right call when AWS is the primary or co-primary target and you want a mature, opinionated framework. OpenNext is not a competitor — it's a *target adapter* that takes your Next.js app and makes it run on Cloudflare Workers, Lambda, or other non-Vercel runtimes; you typically pair it with Alchemy or SST.** In 2026 the deployment landscape has bifurcated: AWS-shaped teams use SST v3, Cloudflare-shaped teams reach for Alchemy, and Next.js teams who refuse to be locked into Vercel use OpenNext on top of either.

## Quick Verdict

| | Alchemy | SST v3 | OpenNext |
|---|---|---|---|
| Type | IaC framework | IaC framework | Build adapter |
| Primary target | Cloudflare | AWS | Cloudflare, AWS, etc. |
| Code style | Plain TS, no synth step | TS + Pulumi runtime | Build-time codemod |
| State management | Local file or remote backend | Pulumi state | None (build artifact) |
| Pairs with Next.js | Yes (via OpenNext) | Yes (built-in) | Yes (its purpose) |
| Best for | Cloudflare-first apps | AWS apps and SST users | Next.js outside Vercel |

## Key Takeaways

- **Alchemy and SST solve the same problem from different sides.** Both let you declare resources in TypeScript. Alchemy is lighter and Cloudflare-shaped; SST v3 is built on Pulumi and inherits its multi-cloud reach.
- **OpenNext is not an alternative to either.** It produces a build output. You still need IaC to deploy that output. The combination "OpenNext + Alchemy" is increasingly the default for Next.js-on-Cloudflare in 2026.
- **State files are a real choice.** SST/Pulumi mandate a state backend. Alchemy treats state as optional (file-based by default), trading collaborative safety for setup simplicity.
- **Cloudflare-vs-AWS is no longer ideological.** Both clouds host serious production apps; the deciding factor is where your data lives, your egress cost profile, and your team's runtime knowledge.

## What Each Tool Actually Is

### Alchemy

A pure-TypeScript IaC library where each resource is a regular async function that idempotently creates or updates infrastructure. There's no compile step, no synth, no separate state daemon. Resources are described and deployed in the same `bun run deploy.ts` invocation.

```ts
import alchemy from "alchemy";
import { Worker, R2Bucket, KVNamespace } from "alchemy/cloudflare";

const app = await alchemy("my-app");

const bucket = await R2Bucket("uploads");
const kv = await KVNamespace("sessions");

await Worker("api", {
  entrypoint: "./src/worker.ts",
  bindings: { UPLOADS: bucket, SESSIONS: kv },
});

await app.finalize();
```

The pitch is *low cognitive overhead*. You read the file top-to-bottom and you understand the deployment. The catalog skews heavily Cloudflare (Workers, R2, KV, D1, Durable Objects, Queues) with AWS coverage filling in.

### SST v3

A rewrite of SST atop Pulumi, with Pulumi's state engine, providers, and resource graph beneath an SST-flavored TypeScript surface (`Function`, `Bucket`, `Nextjs`). It inherits Pulumi's strengths: solid drift detection, mature multi-cloud support, real preview/diff. It also inherits Pulumi's complexity surface.

```ts
// sst.config.ts
export default $config({
  app: () => ({ name: "my-app", home: "aws" }),
  async run() {
    const bucket = new sst.aws.Bucket("Uploads");
    new sst.aws.Nextjs("Web", { link: [bucket] });
  },
});
```

SST v3 is the reference implementation for "Next.js on AWS done right", with the `Nextjs` construct handling ISR, image optimization, and edge functions through a curated Lambda + CloudFront topology.

### OpenNext

OpenNext (`@opennextjs/cloudflare`, `@opennextjs/aws`) takes the standard Next.js build output and produces a deployable bundle that runs on a non-Vercel runtime. The Cloudflare adapter has matured significantly through 2025-2026 and now supports the App Router, server actions, partial prerendering, and most of the runtime features.

```bash
# Build for Cloudflare Workers
npx @opennextjs/cloudflare build

# Then deploy the dist/ output via Alchemy, Wrangler, or any Worker-compatible IaC
```

OpenNext doesn't deploy. It builds. You combine it with Alchemy (Cloudflare) or SST v3 (AWS) to actually push the artifact.

## Decision Map

| If you... | Pick |
|---|---|
| Are Cloudflare-first and want zero ceremony | **Alchemy** |
| Are AWS-first and want a managed Next.js construct | **SST v3** |
| Run Next.js but cannot use Vercel | **OpenNext** + Alchemy or SST |
| Already use Pulumi and want SST sugar on top | **SST v3** |
| Want plain TS code with no synth step | **Alchemy** |
| Need real preview/diff and multi-cloud | **SST v3** |
| Build small Worker scripts with R2/KV | **Alchemy** (or [Wrangler directly](/guides/miniflare-vs-wrangler-vs-cloudflare-workers-sdk-local-2026)) |

## The OpenNext Reality in 2026

Next.js outside Vercel was a fragile story in 2023-2024. By 2026 it works — but the edges still need attention:

- **App Router**: full support on the Cloudflare and AWS adapters.
- **Server Actions**: supported, with caveats around long-running actions on Workers (CPU time limits).
- **ISR / on-demand revalidation**: works, with KV or R2 as the cache layer on Cloudflare; CloudFront-backed on AWS.
- **Image optimization**: handled by adapter-specific shims; on Cloudflare, you'll usually pair this with `cf-image-resizing` or a third-party transformer.
- **`next/image` defaults**: re-check your `next.config.js` `images` block — Vercel-specific defaults trip OpenNext builds.

For more on the broader Next.js ecosystem outside Vercel, see [Next.js developer ecosystem guide 2026](/guides/nextjs-developer-ecosystem-guide-2026).

## Cost & Vendor-Lock Tradeoffs

- **Alchemy**: weakly opinionated about cloud — but its resource catalog is Cloudflare-heavy. Multi-cloud is possible but you'll be writing more.
- **SST v3**: strongly tied to AWS for the polished constructs. Cloudflare and Vercel constructs exist but are second-class.
- **OpenNext**: explicitly *anti-lock*: the whole point is to keep your Next.js code portable across runtimes.

If your strategy is to leave Vercel without committing to AWS, OpenNext + Alchemy is the path. If you've already paid the AWS tax in dev velocity and ops knowledge, SST v3 is the smoother ride. For a broader IaC view, see [Pulumi vs SST vs CDKTF](/guides/pulumi-vs-sst-vs-cdktf-infrastructure-as-code-2026).

## Who Should Pick What

- **Solo founder shipping on Cloudflare Workers**: Alchemy. The plain-TS deploy script lowers the barrier to "works on my laptop and in CI".
- **Mid-stage SaaS on AWS with a Next.js front end**: SST v3. The `Nextjs` construct alone is worth the framework fee.
- **Existing Next.js team leaving Vercel**: OpenNext, paired with Alchemy if you're going to Cloudflare or SST v3 if you're going to AWS.
- **Hobby project deploying a static API**: Wrangler + a `wrangler.toml` may be simpler than any of these — see [SST v3 vs Serverless Framework vs AWS CDK](/guides/sst-v3-vs-serverless-framework-vs-aws-cdk-nodejs-iac-2026).

## Verdict

In 2026, Alchemy is the cleanest first-time-IaC experience for Cloudflare, SST v3 is the production-grade default for AWS-shaped teams, and OpenNext is the mandatory bridge if Next.js is your framework but Vercel isn't your platform. None of these tools are direct competitors — pick based on where your runtime lives, then layer OpenNext if Next.js is in the picture.

## Related Reading

- [SST v3 vs Serverless Framework vs AWS CDK](/guides/sst-v3-vs-serverless-framework-vs-aws-cdk-nodejs-iac-2026)
- [Pulumi vs SST vs CDKTF](/guides/pulumi-vs-sst-vs-cdktf-infrastructure-as-code-2026)
- [Miniflare vs Wrangler vs Cloudflare Workers SDK](/guides/miniflare-vs-wrangler-vs-cloudflare-workers-sdk-local-2026)
- [Next.js developer ecosystem guide 2026](/guides/nextjs-developer-ecosystem-guide-2026)
