Effect removes cloud glue by putting infrastructure in the program
Alchemy supports 2 cloud targets, AWS and Cloudflare, and lets you declare their resources inside the same TypeScript program as the code that uses them. Its distinctive move is a typed binding. A call such as ReadWriteBucket can connect the resource, environment value, permission, and SDK client instead of leaving those pieces in separate configuration files. If your team already writes Effect, that can make a deployment easier to follow because errors and dependencies stay in one programming model.
Within those 2 targets, the catalog covers compute, storage, messaging, databases, websites, and deployment previews. Alchemy also keeps stages separate, records resource state, detects drift, and can build CI credentials as part of a stack. That is enough for a substantial application, but it does not make Alchemy a general replacement for every Terraform provider.
Bun 1.3.13 is a required part of the toolchain
Alchemy's repository requires Bun 1.3.13 even when pnpm performs the workspace install. The getting-started path installs Alchemy, Effect release candidates, and Bun platform packages. Commands run as bun alchemy, while project scripts call Bun directly. A standard Node build image can download the full dependency tree and still be unable to compile or test the repository, which is exactly what happened in our sandbox.
The install itself was large. Commit 0a3a419 took 167 seconds to install 2,494 packages and left 3,246 MB on disk. The checkout contained 28,221 files and about 9,263,127 source lines before dependencies, with 6 CI workflow files and no Dockerfile. Teams evaluating Alchemy should pin Bun 1.3.13 in local development and CI, then budget for a monorepo-sized toolchain rather than a small command-line binary.
What happened when we ran it
Our measurement setup was a 3-CPU, 8 GB Debian sandbox using the lab-node:22 image with no secrets. In our run, we measured a 167-second install before the build stopped after 2 seconds with a warning that Bun 1.3.13 was required and the shell error bun: not found. The test command ended the same way after 2 seconds before it could run the package test target.
That result does not show a compiler defect or a failing assertion. It shows that Node 22 alone does not satisfy this repository's documented runtime assumptions. We did not install Bun after the failure, and we did not deploy cloud resources, so this run says nothing about provider correctness or deployment speed. The useful finding is practical: the package manager can finish a 3,246 MB install without catching the missing executable that both later steps need.
The beta label matters when deploys can replace live resources
Version v2.0.0-beta.79 was the latest release on September 18, 2026, and the README still calls Alchemy alpha. That release includes provider fixes alongside a new Prisma website integration. Frequent releases are good evidence of active work, but infrastructure code gets judged by what happens during replacement, deletion, and recovery. A pleasant first deploy is the easy case.
Open issue 1785 describes a Cloudflare Container replacement with an unchanged name that adopts the existing application, then deletes that same application during cleanup. The reporter says alchemy plan subsequently reports no changes while alchemy drift finds the missing resource. Issue 1807 reports another Cloudflare provider path that sends an unchanged Hyperdrive configuration again, temporarily doubling origin connections. These are specific reports, not proof that every deployment is unsafe. They are strong reasons to test the resources you use and inspect plans on production stacks.
Three credentials sit behind the short GitHub Action example
The README's GitHub Action example needs 3 credentials or identifiers: a Cloudflare account ID, Cloudflare API token, and GitHub token. AWS setup supports account credentials and CI authentication. Stages have separate state and physical names, while profiles select the intended accounts. A mistaken profile or state decision can still point a correct program at the wrong place.
For a team with 2 supported cloud providers and an existing Effect codebase, those controls may feel coherent. Everyone else must learn Effect, Bun, Alchemy's state model, and the chosen provider at once. Start with a disposable account, adopt one resource family, and exercise deploy, drift, repair, and destroy before moving an existing production stack. The feature to judge is not how short the resource declaration looks. It is whether your team can predict the plan and recover when a provider edge case reaches a live resource.
A September 24 push does not make the beta production-safe by itself
GitHub recorded a push on September 24, 2026, and showed 1,359 stars plus 250 open issues and pull requests. The repository is plainly active, and the latest release landed 6 days earlier. The combined open count is not a defect count, but it does give adopters a large queue to search for the exact AWS or Cloudflare resources they intend to manage.
Alchemy is most convincing when Effect is already a deliberate team choice. Its bindings address a real source of drift between permissions, environment variables, infrastructure, and runtime clients. The 2-second Bun failure is easy to fix in a prepared image. The harder question is whether an alpha framework should own replacement and deletion in your production account, and the current container and Hyperdrive reports make a disposable trial the sensible answer.

