{"slug": "my-highlights-from-the-new-deno-deploy", "title": "My highlights from the new Deno Deploy", "summary": "The article announces the launch of a rebuilt version of Deno Deploy, a hosting platform rebuilt from scratch for greater flexibility and power. New features include an integrated CI/CD build pipeline, simplified data management through Deno KV with easy upgrades to full databases like Postgres, and automated database provisioning that prevents data pollution across development and production environments.", "body_md": "# My highlights from the new Deno Deploy\n\nThe team here at Deno has been working hard to improve [Deno Deploy](/deploy/),\nrebuilding it from scratch to be a more flexible, powerful, and simpler hosting\nplatform. You might have seen us making some noise about this in\n[social](https://bsky.app/profile/deno.land)\n[media](https://twitter.com/deno_land) over the last few months.\n\nWe ran an early access program with the community testing it out and giving valuable feedback to help us make this huge update possible.\n\nNow, this updated version of Deno Deploy is available to all, and I wanted to call out just a few of the reasons I’m excited about this update.\n\nI’m no stranger to hosting and development platforms. I spent 7 years working at Netlify while they were defining big parts of the modern web hosting category and establishing many of the conventions and tools that developers now consider essential for web development projects. Those perspectives only add to my enthusiasm for the road ahead for Deno with Deploy.\n\nIntegrated CI/CD\n\ntl;dr:You now have the option to run your builds within Deno Deploy, or on your own CI/CD\n\nIn the old Deno Deploy (still available as “Deploy Classic”) deploys happened by performing a build in your own system and then pushing that result to Deno Deploy. That might have been from your own CI/CD system or GitHub Actions. This option is still available, but now we also offer an optimized, high performance, integrated build environment to do this for you.\n\nOur build pipeline offers great visibility into the deployment process and your automated builds. Just connect a GitHub repo to your application and off you go.\n\nNaturally, this comes along with the ability to perform branch-deploys, preview builds, rollbacks, and all that good stuff that it would be hard to imagine working without these days.\n\nThis sort of feature has been available in other popular hosting platforms for a while, so it might not feel like news. But Deno Deploy also offers interesting controls over the hosting model, with ready-made optimisations for static or dynamic applications, and autodetection and optimisations for popular tools and frameworks.\n\nNow you don’t have to choose between a simple and integrated CI/CD setup, and some of the more advanced architectural controls that we’re introducing.\n\nEasy on-ramp for working with data\n\ntl;dr:Quickly start with KV then easily graduate to a full database when necessary\n\nManageable access to, and admin of data services is often one of the first headaches when sites and applications increase in complexity. We wanted to simplify that.\n\nTogether, [the Deno runtime](https://docs.deno.com/runtime/) and Deno Deploy\noffer simple access to reading and writing data to persistent storage via\n[Deno KV](/kv), our popular KV store.\n\nWith surprisingly little code, you can begin managing data in a persistent data store:\n\n``` js\nconst kv = await Deno.openKv();\n\n// set some preferences data for a user called Ada\nconst result = await kv.set([\"preferences\", \"ada\"], {\n  username: \"ada\",\n  theme: \"dark\",\n  language: \"en-US\",\n});\n\n// get the data\nconst entry = await kv.get([\"preferences\", \"ada\"]);\n```\n\nWhen deployed to Deno Deploy, we now ask you\n[to create and associate a KV store\nwith your application](https://docs.deno.com/deploy/reference/deno_kv/). As your\napp grows, this makes it easy to move to a full data layer, like Postgres.\n\nPostgres and more\n\ntl;dr:Deploy organises your databases to prevent data pollution between environments\n\nWe’ve made it simple\n[to link and provision databases](https://docs.deno.com/deploy/reference/databases/#getting-started)\nfrom third-party database providers to your applications in ways that make sense\nfor how developers work with code.\n\nOur database integrations do some work behind the scenes to create database\ninstances for each of your development and production contexts. That means that\nyou can provision or allocate a database to one of your applications, and\n[get\nseparate databases for each environment](https://docs.deno.com/deploy/reference/databases/#connecting-an-app-to-a-database).\n\nIt’s very helpful to know that the data in your development or staging environments will not pollute the data in your production environment. Deno Deploy just handles that for you. I love it!\n\nThis also means that your application code can remain the same in all contexts.\n[Environment variables managed automatically](https://docs.deno.com/deploy/reference/databases/#automatic-environment-variables)\nby Deno Deploy in different contexts take care of all the scoping and targeting\nfor you:\n\n``` js\nimport { Pool } from \"npm:pg\";\n\n// No configuration needed - Deno Deploy handles this automatically\nconst pool = new Pool();\n\nDeno.serve(async () => {\n  // Use the database\n  const result = await pool.query(\"SELECT * FROM users WHERE id = $1\", [123]);\n\n  return new Response(JSON.stringify(result.rows), {\n    headers: { \"content-type\": \"application/json\" },\n  });\n});\n```\n\nWe’ve partnered with Prisma to provision new databases for free. Again, all from the Deno Deploy console. It’s an incredibly convenient way of adding databases to your applications.\n\nWe even have\n[tooling for schema migrations](https://docs.deno.com/deploy/reference/databases/#migration-and-schema-management)\nto help as your applications grow.\n\n*Do you want to see a specific database supported? Let us know on\nsocial\nmedia or in\nDiscord.*\n\nSee your data\n\nIt’s also simple to visualize your data right there in the Deno Deploy console. The database explorer lets you poke around and query your data, across any of the contexts where your databases live.\n\nMetrics\n\ntl;dr:All apps get useful data and analytics, out of the box\n\nSpeaking of data, Deno Deploy surfaces a variety of metrics and analytics for every application. You don’t need to do anything to enable this beyond deploying your application.\n\nDeploy’s metrics are easy to explore with the interactive charting and a variety of presets and custom timeframes.\n\nI also like getting access to the automatic 404 logging. The concise little 404 report which groups the 404s by path and orders them by frequency is very handy for catching routes that need handling.\n\nWhether you are serving a static site or a dynamic app, there are useful metrics available here, including CPU time, memory usage, V8 garbage collection time, and allocated heap size.\n\nFind all of these in the console for your applications.\n\nAutomatic observability with OTel\n\ntl;dr:Easily observe and instrument your code with built-in support for OpenTelemetry\n\nFor more complex and critical applications, rich telemetry is vital. The\n[built-in support for OpenTelemetry](https://docs.deno.com/runtime/fundamentals/open_telemetry/)\nmakes it simple for developers to observe what is happening in their\napplications.\n\nAny project hosted on Deno Deploy (even if there isn’t specific telemetry instrumentation code) will automatically show logs, traces, and metrics in the application console. But you can go further by connecting these to your own OTel service along with whatever additional instrumentation you specify in your code.\n\nWe shipped support for\n[auto-instrumented observability and telemetry in Deno 2.2](https://deno.com/blog/v2.2#built-in-opentelemetry-integration),\nand by hosting your project in Deno Deploy, the job of connecting your\napplication to a tool like Grafana becomes very straight forward.\n\nThere is\n[auto-instrumentation](https://docs.deno.com/runtime/fundamentals/open_telemetry/#auto-instrumentation)\nassociated with incoming and outgoing HTTP requests.\n\nOur examples have a number of\n[tutorials on OTel](https://docs.deno.com/examples/#opentelemetry) to explore,\nincluding:\n\nApplication settings and env vars\n\ntl;dr:You can tune the infrastructure for your applications and manage things centrally\n\nWhen creating a new application, you can choose to tune it as a dynamic app or a static site. This will shape the server configuration and caching behaviours with some sensible defaults.\n\nI really like this control. I’m a big advocate in keeping projects as simple as possible, so being able to serve static files and add server logic only when needed, all in one product, feels like a huge win.\n\nYou can also\n[manage environment variables and secrets](https://docs.deno.com/deploy/reference/env_vars_and_contexts/#adding%2C-editing-and-removing-environment-variables)\nat an application level, and at the org level to help share them across all the\napplications in your organisation.\n\nYou’ll find controls in the console to manage these along with the ability to\nimport the contents of a `.env`\n\nfile, and you can also do this from the command\nline.\n\nAt your command line\n\ntl;dr:The`deno`\n\nCLI now includes commands to work with Deno Deploy\n\nDeploy Classic has the\n[ deployctl](https://docs.deno.com/deploy/classic/deployctl/) utility to\nperform a variety of admin tasks, but the new iteration of Deno Deploy brings\nthings closer to the\n\n`deno`\n\nruntime so there is no need to install additional\ntools.Now, just by having the\n[Deno CLI installed](https://docs.deno.com/runtime/getting_started/installation/),\nyou’ll have commands like\n[ deno deploy](https://docs.deno.com/runtime/reference/cli/deploy/) at your\nfingertips which lets you… well… deploy to Deno Deploy among other things.\n\nYou can also use this to manage your project’s environment variables and other\nconfigurations, push code to preview builds or the production environment,\n[and more](https://docs.deno.com/runtime/reference/cli/deploy/).\n\nConnect environments with `tunnel`\n\ntl;dr:You can close the gap between your local and production environments\n\nOne goal of the recent evolutions to Deno Deploy has been to improve the development efficiency on projects. A huge part of that can come from reducing the friction when developing locally, and closing the perceived logical gap between local and production environments.\n\nIn short, please, please let my local work be a good facsimile of what happens in staging and production environments!\n\nThe [ --tunnel](https://x.com/deno_land/status/1976281146184040625) flag\nconnects your local environment to your application in Deno Deploy to enable a\nfew handy things:\n\n- Access the centrally managed environment variable, which eliminates the need to distribute these to the team in order for them to get their local builds working\n- Serve your local version on a public URL for easier sharing, reviewing, and debugging\n- Stream logs and traces directly back to your local terminal for easier observability during development\n\nThe `--tunnel`\n\noption is available to the `run`\n\nand `task`\n\ncommands. Over time,\nyou can expect it to become even more powerful as more utilities are added.\n\nConnect your apps to AWS and GCP\n\ntl;dr:Cloud Connect simplifies your code when connecting to different cloud services\n\nOften we have to use resources in AWS and GCP, but it can be a pain to manually juggle credentials and configurations.\n\nWith our new\n[Cloud Connections](https://docs.deno.com/deploy/reference/cloud-connections/),\nyou can configure an\n[OIDC connection](https://docs.deno.com/deploy/reference/oidc/) with your\nprovider, then use them more simply in your code. This is another example of\nways the platform can remove friction for developers, and make it easier to\nmanage and reason about external services.\n\n``` js\nconst BUCKET_NAME = \"dry-pheasant-52\";\nconst s3 = new S3Client({\n  region: \"us-east-2\",\n});\n```\n\nPlaygrounds\n\ntl;dr:Play with code and explore the results in the browser. Our Playgrounds got better!\n\nThere have been some big power-ups to playgrounds in their new incarnation.\n[Playgrounds](https://docs.deno.com/deploy/reference/playgrounds/) offer an\nin-browser code editor which deploys every time you save your changes. Now they\nsupport multiple files, and have become a simple way to explore a concept, test\nsome code, and inspect the results all without leaving your browser tab.\n\nPlaygrounds get built and deployed to Deno Deploy and give you the same logs and\ntraces as your regular Deno applications, and also provide\n[an HTTP explorer](https://docs.deno.com/deploy/reference/playgrounds/#using-the-http-explorer)\nto help you test your projects.\n\nI find it a very handy way to test APIs that I’m experimenting with. The ability to test different HTTP methods and control HTTP headers from the built-in HTTP explorer is so useful.\n\nPlaygrounds are now moved under the Applications tab in the\n[console](https://console.deno.com), and I happen to know that there are more\ninteresting developments coming to Playgrounds before too long which will make\nthem even more useful. I recommend you watch out for those!\n\nMaking it easier to try Deno Deploy\n\ntl;dr:Deploy automatically applies integrations and presets according to your project code\n\nWe also want to make it simple to get a project onto Deno Deploy. Whether you are just exploring to see what the fuss is about, starting a new project, or migrating from somewhere else.\n\nWhen linking your repo to setup a new application in Deno Deploy, it will\ninspect that code\n[to detect major tools and frameworks](https://docs.deno.com/deploy/reference/frameworks/)\nand optimise the environment accordingly. We have a variety of integrations and\noptimisations to help set things up smoothly and get the best from the\nenvironment for your application.\n\nIt’s also easy to create starter templates for your organisation or create an\napplication from an existing code repo with\n[Deploy buttons](https://docs.deno.com/deploy/reference/button/). These are just\nhyperlinks to our app creation page with some configuration parameters.\n\nTry one for yourself above to get a simple example site started, or see how you\ncould create a set of project scaffolds for your team to use for bootstrapping\nprojects by taking a look at the\n[docs for our Deploy Button](https://docs.deno.com/deploy/reference/button/).\n\nWhat’s next?\n\nThis is just a small sampling of what is available on Deno Deploy. The best way\nto get a real feel for how the platform is evolving is to [try it](/deploy/).\n\nDeploying one of the\n[simple starter templates above](#making-it-easier-to-try-deno-deploy) can be an\neasy way to get a little application up and running so you have something to\nexplore. You can sign up, create an orgnization and some apps, and start\ndeploying things for free.\n\nThere are lots more things coming soon to the platform to help you build, deploy, and manage your web applications. I’m pretty excited about the developments happening under the surface to support some great new tools and ways for you to run code as part of your web stack.\n\n*What are you building with Deno? Let us know on\nTwitter,\nBluesky, or\nDiscord!*", "url": "https://wpnews.pro/news/my-highlights-from-the-new-deno-deploy", "canonical_source": "https://deno.com/blog/deno-deploy-highlights", "published_at": "2025-10-21 12:00:00+00:00", "updated_at": "2026-05-22 12:23:07.325645+00:00", "lang": "en", "topics": ["developer-tools", "cloud-computing", "open-source"], "entities": ["Deno", "Deno Deploy", "Netlify", "GitHub Actions"], "alternates": {"html": "https://wpnews.pro/news/my-highlights-from-the-new-deno-deploy", "markdown": "https://wpnews.pro/news/my-highlights-from-the-new-deno-deploy.md", "text": "https://wpnews.pro/news/my-highlights-from-the-new-deno-deploy.txt", "jsonld": "https://wpnews.pro/news/my-highlights-from-the-new-deno-deploy.jsonld"}}