Skip to content
Diagram of an app's business logic behind an adapter layer, switching from a hosted platform that is shutting down to a new host.

BlogIndustry News

Vendor Lock-In Lessons From Cloudflare's Deno Acquisition

Cloudflare is absorbing Deno and Deno Deploy shuts down in six months. Here's how to measure your own vendor lock-in and plan an exit before a vendor decides for you.

On October 9, Cloudflare announced that the whole Deno team is joining the company. The Deno runtime gets one more year of monthly bug-fix and security releases, then development stops. Deno Deploy, the hosting service, shuts down in six months. Paying customers get help moving to Cloudflare Workers.

If you run anything on Deno Deploy, you now have a deadline you didn't choose. If you don't, this is still a useful fire drill. Vendor lock-in rarely shows up as a price hike. More often it arrives as a blog post telling you the platform you built on has a shutdown date.

TL;DR#

  • Deno Deploy closes in roughly six months and the Deno runtime stops getting releases after about a year, per the official Deno post.
  • Cloudflare plans to make self-hosting the Workers programming model a supported option by merging Deno's celld project into its open-source runtime, workerd.
  • Every business that depends on a hosted platform should know its exit cost before it needs one. A one-page exit plan and a thin adapter layer cover most of the risk.

What happened with Cloudflare and Deno#

Deno was co-founded by Ryan Dahl, who also created Node.js. According to The New Stack, the company raised about $26 million across two rounds and built Deno Deploy as its hosted serverless product. Deal terms weren't disclosed.

Here's what changes, based on the two official announcements:

PieceWhat happens
Deno runtimeMonthly bug-fix and security releases for one year, then development ends. Stays MIT-licensed so the community can fork it.
Deno DeployShuts down in about six months. Paying customers get migration help to Cloudflare Workers.
JSR package registryKeeps running, with infrastructure moving to Cloudflare.
celldGets merged into workerd, Cloudflare's open-source Workers runtime.

The interesting part is the last row. In its own announcement, Cloudflare says Deno's celld project is a Rust implementation of Workers and Durable Objects, built as a single binary whose only outside dependency is object storage. Today workerd can only run Durable Objects as a single instance, which is fine for local testing but doesn't scale. Dahl and co-founder Bert Belder will lead the work to make self-hosted workerd a first-class way to run Workers apps.

Why vendor lock-in matters more than it did last year#

This isn't a one-off. The New Stack also notes that Anthropic bought Bun, another JavaScript runtime, in December 2025, and committed to keeping it open source. Runtimes and developer platforms are being absorbed by bigger companies, and each deal comes with a different promise about what survives.

For a scaling business, the risk isn't which runtime wins. It's that a product decision made three years ago by one developer can turn into a forced migration on someone else's timeline. Six months sounds like plenty until you count the work: re-testing payment flows, moving scheduled jobs, swapping a key-value store, updating DNS, and doing it all while the team still ships features.

What is vendor lock-in, in plain terms? It's the cost of leaving. That includes code tied to proprietary APIs, data stored in formats only one product reads, contracts with exit penalties, and knowledge that only lives in one vendor's dashboard. Some lock-in is a fair trade for speed. The problem is lock-in you never priced.

Where cloud vendor lock-in actually hides#

Most teams think of lock-in as "we're on AWS." In practice it hides in smaller places.

Proprietary storage and state#

Deno Deploy shipped a built-in key-value store, Deno KV. It's handy, and it's also the hardest thing to move. The same goes for any platform-specific queue, cron service or database.

Runtime-specific APIs#

Code that calls platform globals directly (environment bindings, platform caches, special request objects) has to be rewritten, not just redeployed.

Operational knowledge#

Logs, alerts, secrets and deploy pipelines often live in the vendor's UI. Nobody wrote down how they're configured, so nobody can rebuild them quickly.

The good news in this case#

Cloudflare's plan pushes the other way. If workerd becomes a supported self-hosting option with an API that matches Cloudflare's platform, the Workers model gets an exit door. You could run the same app on Cloudflare or on your own servers backed by any standard object storage bucket. Cloudflare hasn't given dates yet, only that more announcements are coming.

A simple architecture that limits the damage#

You don't avoid vendor lock-in by refusing to use managed services. You avoid it by keeping platform calls at the edges of your code, so the business logic never knows where it runs.

 HTTP request
     |
 [ Platform adapter ]   <- the only file that knows Deno, Workers or Node
     |
 [ Business logic ]     <- orders, pricing, payouts, rules
     |
 [ Ports: Storage | Queue | Email | Payments ]
     |          |        |        |
  Postgres   SQS/Redis  Postmark  Stripe   <- swap these behind interfaces

The trade-off is honest: a thin adapter layer adds a little code up front and you give up some platform-specific tricks. In return, a forced migration becomes a week of rewriting adapters instead of a quarter of rewriting the product.

Two rules carry most of the weight. First, keep your data in something portable, such as Postgres or plain object storage, rather than a platform-only store. Second, write tests against the ports, so you can prove the new adapter behaves like the old one before you cut over.

How to avoid vendor lock-in: a practical checklist#

On Deno Deploy? Start now. If not, run this against whatever hosts your most important system.

  1. List every platform dependency. Hosting, KV stores, queues, cron, auth, email, edge caches. Put each one in a spreadsheet with an owner.
  2. Rate each one. How hard is it to replace: an afternoon, a week or a quarter? The quarter-sized items are your real vendor lock-in risk.
  3. Export your data on a schedule. If you can't produce a full export today, fix that first. It's the step that turns a crisis into a project.
  4. Wrap platform calls in adapters. Start with storage and background jobs, since those are the hardest to move.
  5. Write down the deploy. Secrets, DNS, environment variables and build steps belong in the repo, not in someone's memory.
  6. Pick a target and test it. For Deno Deploy users, Cloudflare Workers is the supported path. A container on a generic host is another. Run a staging copy on the target before the deadline gets close.
  7. Set a review date. Revisit this list every six months, and any time a vendor gets acquired.

How MagicMakers Lab approaches this#

Most of our custom software development work starts with an audit of what a business already runs, and platform dependencies are always on that list. When we consolidated three disconnected systems into one platform for Business Hub, the goal wasn't just fewer tools. It was one codebase the client fully owns, with data in formats they can take anywhere. Every Rapid MVP Sprint we run ends with full code ownership for the same reason.

Key takeaways#

  • Deno Deploy shuts down in about six months, and the Deno runtime gets about a year of maintenance releases before development ends.
  • Acquisitions are now a normal way for developer platforms to change direction, so treat platform risk as a planning item, not a surprise.
  • The costliest lock-in sits in proprietary storage and undocumented operations, not in the hosting bill.
  • An adapter layer and portable data storage turn a forced migration from a rewrite into a contained project.
  • Cloudflare's plan to make self-hosted workerd a supported option could give the Workers model a real exit path, but it has no public dates yet.

FAQ#

What is vendor lock-in?#

Vendor lock-in is the cost and effort of leaving a product once you depend on it. It comes from proprietary APIs, data stored in formats only one vendor supports, contract terms and setup knowledge that lives in a vendor's dashboard. Some lock-in is a reasonable trade for speed. The risk is lock-in you never measured and can't exit quickly when a vendor changes plans.

What happens to Deno Deploy after the Cloudflare acquisition?#

Deno says Deno Deploy will keep running for six months and then shut down. Paying customers will get help migrating their apps to Cloudflare Workers. The Deno runtime itself gets monthly bug-fix and security releases for one more year, after which official development ends. The runtime stays open source, so the community can continue it if it chooses.

How do you avoid cloud vendor lock-in without giving up managed services?#

Use managed services, but keep platform-specific calls inside small adapter modules so your business logic never touches them directly. Store data in portable systems such as Postgres or standard object storage. Keep deploy steps and configuration in your repository, export data on a schedule and test a second hosting target once a year so you know the exit actually works.

Is Cloudflare Workers a safe replacement for Deno Deploy?#

It's the officially supported migration path, and Cloudflare is working to make its open-source runtime, workerd, a supported way to self-host the same Workers model. That would let you move off Cloudflare later if you needed to. The trade-off is that the self-hosting work has no public release dates yet, so plan your migration on what ships today.

If a platform you depend on announced a shutdown tomorrow, would you know how long it would take to leave? We'll map your dependencies with you and show you where the real exit costs are. Book a free audit.

Sources#