Skip to main content

Guide

Alchemy vs SST v3 vs OpenNext: Cloudflare-First Deployment 2026

Alchemy, SST v3, and OpenNext compared for Cloudflare and AWS apps: deployment model, vendor coupling, and Next.js on Workers.

·PkgPulse Team·
0

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

AlchemySST v3OpenNext
TypeIaC frameworkIaC frameworkBuild adapter
Primary targetCloudflareAWSCloudflare, AWS, etc.
Code stylePlain TS, no synth stepTS + Pulumi runtimeBuild-time codemod
State managementLocal file or remote backendPulumi stateNone (build artifact)
Pairs with Next.jsYes (via OpenNext)Yes (built-in)Yes (its purpose)
Best forCloudflare-first appsAWS apps and SST usersNext.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.

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.

// 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.

# 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 ceremonyAlchemy
Are AWS-first and want a managed Next.js constructSST v3
Run Next.js but cannot use VercelOpenNext + Alchemy or SST
Already use Pulumi and want SST sugar on topSST v3
Want plain TS code with no synth stepAlchemy
Need real preview/diff and multi-cloudSST v3
Build small Worker scripts with R2/KVAlchemy (or Wrangler directly)

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.

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.

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.

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.

See the live comparison

View alchemy on PkgPulse →

The 2026 JavaScript Stack Cheatsheet

One PDF: the best package for every category (ORMs, bundlers, auth, testing, state management). Used by 500+ devs. Free, updated monthly.