# Deno Documentation - Summary > A compact, LLM-friendly overview of the Deno docs. For a full index, use llms.txt. For full content, use llms-full.txt. ## Runtime Documentation Documentation for the Deno CLI and runtime environment, including installation, configuration, and core concepts. - [Welcome to Deno](https://docs.deno.com/runtime/): Learn the basics of Deno, a secure JavaScript, TypeScript, and WebAssembly runtime. - [Contributing and support](https://docs.deno.com/runtime/contributing/): Guide to contributing to the Deno project and ecosystem. Learn about different Deno repositories, contribution guidelines, and how to submit effective pull requests. - [Deno CLI Subcommands](https://docs.deno.com/runtime/reference/cli/): The Deno CLI (Command Line Interface) allows you to interact with the Deno runtime environment from your terminal or command prompt. The CLI has a number of subcommands that can be used to perform different tasks, check the links below for more information on each subcommand. - [Standard Library (@std)](https://docs.deno.com/runtime/reference/std/): An introduction to Deno's Standard Library. Learn about TypeScript-first modules, cross-platform compatibility, versioning, package management, and how to use standard modules in your Deno projects. - [Command line interface](https://docs.deno.com/runtime/getting_started/command_line_interface): A comprehensive guide to using Deno's command-line interface (CLI). Learn about running scripts, managing permissions, using watch mode, and configuring Deno's runtime behavior through command-line flags and options. - [Installation](https://docs.deno.com/runtime/getting_started/installation): A Guide to installing Deno on different operating systems. Includes instructions for Windows, macOS, and Linux using various package managers, manual installation methods, and Docker containers. - [Making a Deno project](https://docs.deno.com/runtime/getting_started/first_project): Step-by-step guide to creating your first Deno project. Learn how to initialize a project, understand the basic file structure, run TypeScript code, and execute tests using Deno's built-in test runner. - [Set up your environment](https://docs.deno.com/runtime/getting_started/setup_your_environment): A guide to setting up your development environment for Deno. Learn how to configure popular editors like VS Code, set up language server support, and enable shell completions for better productivity. - [Debugging](https://docs.deno.com/runtime/fundamentals/debugging): Complete guide to debugging Deno applications. Learn to use Chrome DevTools, VS Code debugger, and other debugging techniques for TypeScript/JavaScript code in Deno. - [deno.json and package.json](https://docs.deno.com/runtime/fundamentals/configuration): The guide to configuring your Deno projects. Learn about TypeScript settings, tasks, dependencies, formatting, linting, and how to use both deno.json and/or package.json effectively. - [Foreign Function Interface (FFI)](https://docs.deno.com/runtime/fundamentals/ffi): Learn how to use Deno's Foreign Function Interface (FFI) to call native libraries directly from JavaScript or TypeScript. Includes examples, best practices, and security considerations. - [Linting and formatting](https://docs.deno.com/runtime/fundamentals/linting_and_formatting): A guide to Deno's built-in code quality tools. Learn how to use deno lint and deno fmt commands, configure rules, integrate with CI/CD pipelines, and maintain consistent code style across your projects. - [Modules and dependencies](https://docs.deno.com/runtime/fundamentals/modules): A guide to managing modules and dependencies in Deno. Learn about ECMAScript modules, third-party packages, import maps, dependency management, versioning, and how to publish your own modules. - [Node and npm Compatibility](https://docs.deno.com/runtime/fundamentals/node): Guide to using Node.js modules and npm packages in Deno. Learn about compatibility features, importing npm packages, and differences between Node.js and Deno environments. - [OpenTelemetry](https://docs.deno.com/runtime/fundamentals/open_telemetry): Learn how to implement observability in Deno applications using OpenTelemetry. Covers tracing, metrics collection, and integration with monitoring systems. - [Security and permissions](https://docs.deno.com/runtime/fundamentals/security): A guide to Deno's security model and permissions system. Learn about secure defaults, permission flags, runtime prompts, and how to safely execute code with granular access controls. - [Stability and releases](https://docs.deno.com/runtime/fundamentals/stability_and_releases): Guide to Deno's stability guarantees and release process. Covering release channels, long-term support (LTS), unstable features, versioning policy, and how Deno maintains backward compatibility. - [Testing](https://docs.deno.com/runtime/fundamentals/testing): A guide to Deno's testing capabilities. Learn about the built-in test runner, assertions, mocking, coverage reporting, snapshot testing, and how to write effective tests for your Deno applications. - [TypeScript support](https://docs.deno.com/runtime/fundamentals/typescript): Learn how to use TypeScript with Deno. Covers configuration options, type checking, and best practices for writing type-safe Deno applications. - [Web development](https://docs.deno.com/runtime/fundamentals/web_dev): A guide to web development with Deno. Learn about supported frameworks like Fresh, Next.js, and Astro, along with built-in features for building modern web applications. - [Workspaces and monorepos](https://docs.deno.com/runtime/fundamentals/workspaces): A guide to managing workspaces and monorepos in Deno. Learn about workspace configuration, package management, dependency resolution, and how to structure multi-package projects effectively. - [Writing an HTTP Server](https://docs.deno.com/runtime/fundamentals/http_server): A guide to creating HTTP servers in Deno. Learn about the Deno.serve API, request handling, WebSocket support, response streaming, and how to build production-ready HTTP/HTTPS servers with automatic compression. - [Where to get help](https://docs.deno.com/runtime/help): Guide to getting help with Deno. Find community resources, support channels, discussion forums, and how to engage with the Deno community for troubleshooting and assistance. - [Architecture Overview](https://docs.deno.com/runtime/contributing/architecture): Deep dive into Deno's internal architecture, explaining core components like the runtime, compiler, and security sandbox. Learn how Deno processes requests and executes JavaScript/TypeScript code. - [Contributing an example](https://docs.deno.com/runtime/contributing/examples): Learn how to create and contribute meaningful examples to the Deno docs. - [Deno Style Guide](https://docs.deno.com/runtime/contributing/style_guide): Comprehensive style guide for contributing to Deno's internal runtime code and standard library. Covers coding conventions, documentation standards, testing requirements, and best practices for TypeScript and Rust development. ## Deploy Documentation Documentation for Deno Deploy, a serverless platform for deploying JavaScript to a global edge network. - [About Deno Deploy](https://docs.deno.com/deploy/): Guide to Deno Deploy features, comparison with Deploy Classic, and getting started instructions for deployment. - [Deno KV Quick Start](https://docs.deno.com/deploy/kv/): Deno KV is a [key-value database](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) built directly into the Deno runtime, available in the [`Deno.Kv` namespace](https://docs.deno.com/api/deno/~/Deno.Kv). It can be used for many kinds of data storage use cases, but excels at storing simple data structures that benefit from very fast reads and writes. Deno KV is available in the Deno CLI and on [Deno Deploy](/deploy/reference/deno_kv/). - [Deploy Classic](https://docs.deno.com/deploy/classic/): :::info Legacy Documentation - [Support and Feedback](https://docs.deno.com/deploy/support/): If you have any questions or feedback about Deno Deploy, please reach out to us on the [Deno Discord](https://discord.gg/deno) in the `#deploy` channel or send an email to support@deno.com. - [API Reference](https://docs.deno.com/deploy/classic/api/): :::info Legacy Documentation - [Acceptable use policy](https://docs.deno.com/deploy/acceptable_use_policy): What constitutes acceptable use of Deno Deploy Classic. - [Deno Deploy changelog](https://docs.deno.com/deploy/changelog): Listing notable progress in the development and evolution of Deno Deploy - [Deno Deploy Usage Guidelines](https://docs.deno.com/deploy/usage): Important limitations, service level expectations, and terms of use for Deno Deploy. - [Fulfillment Policy](https://docs.deno.com/deploy/fulfillment_policy): Our policies regarding refunds and cancellations for Deno Deploy. - [Getting started](https://docs.deno.com/deploy/getting_started): Step-by-step guide to creating and configuring your first Deno Deploy application, including organization setup, build configuration, environment variables, and deployment monitoring. - [Pricing and limitations](https://docs.deno.com/deploy/pricing_and_limits): Important limitations, service level expectations, and terms of use for Deno Deploy. - [Privacy Policy](https://docs.deno.com/deploy/privacy_policy): Deno's Privacy Policy - [Security and responsible disclosure](https://docs.deno.com/deploy/security): How to report security vulnerabilities in Deno Deploy. - [Terms and Conditions](https://docs.deno.com/deploy/terms_and_conditions): Deno Terms and Conditions - [Application logging](https://docs.deno.com/deploy/classic/logs): :::info Legacy Documentation - [Backups](https://docs.deno.com/deploy/kv/backup): KV databases hosted on Deno Deploy can be continuously backed up to your own S3-compatible storage buckets. This is in addition to the replication and backups that we internally perform for all data stored in hosted Deno KV databases to ensure high availability and data durability. - [CI and GitHub Actions](https://docs.deno.com/deploy/classic/ci_github): :::info Legacy Documentation - [Connect to DynamoDB](https://docs.deno.com/deploy/classic/dynamodb): :::info Legacy Documentation - [Connect to Firebase](https://docs.deno.com/deploy/classic/firebase): :::info Legacy Documentation - [Connect to Neon Postgres](https://docs.deno.com/deploy/classic/neon-postgres): :::info Legacy Documentation - [Connect to Postgres](https://docs.deno.com/deploy/classic/postgres): :::info Legacy Documentation - [Connect to Prisma Postgres](https://docs.deno.com/deploy/classic/prisma-postgres): :::info Legacy Documentation - [Custom domains](https://docs.deno.com/deploy/classic/custom-domains): :::info Legacy Documentation - [Data Modeling in TypeScript](https://docs.deno.com/deploy/kv/data_modeling_typescript): In TypeScript applications, it is usually desirable to create strongly-typed, well-documented objects to contain the data that your application operates on. Using [interfaces](https://www.typescriptlang.org/docs/handbook/2/objects.html) or [classes](https://www.typescriptlang.org/docs/handbook/2/classes.html), you can describe both the shape and behavior of objects in your programs. - [Deploy with GitHub integration](https://docs.deno.com/deploy/classic/how-to-deploy): :::info Legacy Documentation - [Deployments](https://docs.deno.com/deploy/classic/deployments): :::info Legacy Documentation ## Sandbox Documentation Documentation for Deno Sandbox, ephemeral Linux microVMs for running untrusted code safely. - [Deno Sandbox](https://docs.deno.com/sandbox/): Overview of the Deno Sandbox microVM platform on Deploy, including capabilities, security model, and ideal use cases. - [Create a Deno Sandbox](https://docs.deno.com/sandbox/create): Learn how to provision a sandbox with the static Sandbox.create() method and configure runtime, network, and lifecycle options. - [Expose HTTP](https://docs.deno.com/sandbox/expose_http): Learn how to expose HTTP endpoints from Deno Sandbox, enabling you to run web servers, APIs, and preview environments at the edge. - [Getting started](https://docs.deno.com/sandbox/getting_started): Step-by-step walkthrough for enabling Deno Sandbox, creating your first microVM, running commands, exposing services, and managing secrets. - [Management via CLI](https://docs.deno.com/sandbox/cli): How to manage Deno Sandbox with the Deno CLI. - [Programmatic management of Deno Deploy Apps](https://docs.deno.com/sandbox/apps): Use the @deno/sandbox Client to create, list, update, and delete Deno Deploy apps programmatically. - [Promote Deno Sandbox to Deploy Apps](https://docs.deno.com/sandbox/promote): Learn how to promote a sandbox to a full Deno Deploy app for production use. - [Sandbox Timeouts](https://docs.deno.com/sandbox/timeouts): Understand how long Deno Sandbox stays alive, how to extend or reconnect to them, and when to promote work to a Deno Deploy app. - [Security](https://docs.deno.com/sandbox/security): Understand the defense-in-depth model behind Deno Sandbox: isolation, secrets, network controls, and auditing. - [SSH](https://docs.deno.com/sandbox/ssh): How to open secure SSH access into a sandbox for interactive debugging, editor sessions, or long-running processes. - [Volumes & Snapshots](https://docs.deno.com/sandbox/volumes): Persistent storage and bootable images for Deno Sandbox ## Examples Documentation Code examples and tutorials demonstrating how to build applications with Deno. - [Behavior-Driven Development (BDD)](https://docs.deno.com/examples/bdd_tutorial/): Implementing Behavior-Driven Development with Deno's Standard Library's BDD module. Create readable, well organised tests with effective assertions. - [Better debugging with the console API](https://docs.deno.com/examples/debugging_with_console_tutorial/): An in-depth guide to advanced console debugging in Deno. Learn about console.table, timers, counters, tracers, and how to leverage the full console API beyond basic logging for better debugging workflows. - [Build a Database App with Drizzle ORM and Deno](https://docs.deno.com/examples/drizzle_tutorial/): Step-by-step guide to building database applications with Drizzle ORM and Deno. Learn about schema management, type-safe queries, PostgreSQL integration, migrations, and how to implement CRUD operations. - [Build a Fresh App](https://docs.deno.com/examples/fresh_tutorial/): Complete guide to building Full-stack applications with Fresh and Deno. Learn how to set up a project, implement server-side rendering with islands architecture, add API routes, and deploy your TypeScript application. - [Build a Next.js App](https://docs.deno.com/examples/next_tutorial/): Walkthrough guide to building a Next.js application with Deno. Learn how to set up a project, create API routes, implement server-side rendering, and build a full-stack TypeScript application. - [Build a Nuxt app with Deno](https://docs.deno.com/examples/nuxt_tutorial/): Step-by-step guide to building Nuxt applications with Deno. Learn how to create a full-stack Vue.js app, implement server-side rendering, add Tailwind styling, and deploy your application. - [Build a Real-time LLM Chat App with Deno](https://docs.deno.com/examples/llm_tutorial/): Learn how to integrate Large Language Models (LLM) with Deno to create an interactive roleplay chat application with AI characters using OpenAI or Anthropic APIs. - [Build a SolidJS app with Deno](https://docs.deno.com/examples/solidjs_tutorial/): Build a SolidJS application with Deno. Learn how to set up a project, implement reactive components, handle routing, create API endpoints with Hono, and build a full-stack TypeScript application. - [Build a SvelteKit App](https://docs.deno.com/examples/svelte_tutorial/): A tutorial on building SvelteKit applications with Deno. Learn how to set up a SvelteKit project, implement file-based routing, manage state with load functions, and create a full-stack TypeScript application. - [Build a Typesafe API with tRPC and Deno](https://docs.deno.com/examples/trpc_tutorial/): A guide to building type-safe APIs with tRPC and Deno. Learn how to set up endpoints, implement RPC procedures, handle data validation, and create efficient client-server applications. - [Build a Vue.js App](https://docs.deno.com/examples/vue_tutorial/): A tutorial on building Vue.js applications with Deno. Learn how to set up a Vite project, implement component architecture, add routing, manage state, and create a full-stack TypeScript application. - [Build an app with Tanstack and Deno](https://docs.deno.com/examples/tanstack_tutorial/): Complete guide to building applications with Tanstack and Deno. Learn how to implement Query for data fetching, Router for navigation, manage server state, and create type-safe full-stack applications. - [Build Astro with Deno](https://docs.deno.com/examples/astro_tutorial/): Step-by-step tutorial on building web applications with Astro and Deno. Learn how to scaffold projects, create dynamic pages, implement SSR, and deploy your Astro sites using Deno's Node.js compatibility. - [Build Qwik with Deno](https://docs.deno.com/examples/qwik_tutorial/): Step-by-step guide to building Qwik applications with Deno. Learn about resumability, server-side rendering, route handling, and how to create fast, modern web applications with zero client-side JavaScript by default. - [Building a SvelteKit app with sv and Deno](https://docs.deno.com/examples/sveltekit_tutorial/): SvelteKit has been a stable popular vote since its launch and with Svelte version 5 releasing recently, as of time of writing, there isn't a better time to show off running it with Deno! - [Building a word finder app with Deno](https://docs.deno.com/examples/word_finder_tutorial/): A tutorial on creating a word search application with Deno. Learn how to build a web server, implement pattern matching, handle HTTP requests, and create an interactive web interface using Oak framework. - [Chat application with WebSockets](https://docs.deno.com/examples/chat_app_tutorial/): A tutorial on building a real-time chat app using Deno WebSockets. Learn how to create a WebSocket server with Oak, handle multiple client connections, manage state, and build an interactive chat interface with HTML, CSS, and JavaScript. - [Connect a Database to your local dev](https://docs.deno.com/examples/tunnel_database_tutorial/): Connect a Postgres database to your local development server with Deno Deploy and Deno's tunnel feature - [Connecting to databases](https://docs.deno.com/examples/connecting_to_databases_tutorial/): A guide to database connectivity in Deno. Learn how to use MySQL, PostgreSQL, MongoDB, SQLite, Firebase, Supabase, and popular ORMs to build data-driven applications with TypeScript. - [Creating a subprocess](https://docs.deno.com/examples/subprocess_tutorial/): A guide to working with subprocesses in Deno. Learn how to spawn processes, handle input/output streams, manage process lifecycles, and implement inter-process communication patterns safely. - [Deno Sandbox Snapshots Tutorial](https://docs.deno.com/examples/snapshots_tutorial/): Use read only images to create isolated and reproducible environments. - [Deno Sandbox Volumes Tutorial](https://docs.deno.com/examples/volumes_tutorial/): Add read-write block storage to your Deno sandbox. - [Deploy an app with Deno Deploy](https://docs.deno.com/examples/deno_deploy_tutorial/): A step-by-step tutorial for deploying your first Deno application to Deno Deploy. - [Deploy an app with the deno deploy command](https://docs.deno.com/examples/deploy_command_tutorial/): Step-by-step tutorial for using the deno deploy CLI command to create and deploy your first application to Deno Deploy. - [Deploy Deno to Amazon Lightsail](https://docs.deno.com/examples/aws_lightsail_tutorial/): Step-by-step tutorial on deploying Deno applications to AWS Lightsail. Learn about Docker containers, GitHub Actions automation, continuous deployment, and how to set up cost-effective cloud hosting for Deno apps. ## Subhosting Documentation Documentation for Deno Subhosting, a platform for securely running code written by customers. - [subhosting/index.md](https://docs.deno.com/subhosting/) - [About Subhosting](https://docs.deno.com/subhosting/manual/): Deno Subhosting is a robust platform designed to allow Software as a Service (SaaS) providers to securely run code written by their customers. The Subhosting API allows you to deploy untrusted code programmatically and at scale. - [Subhosting Resources](https://docs.deno.com/subhosting/api/): To build Subhosting with Deno Deploy, it helps to understand some key resources within the system. These resources are also represented in the [REST API](../api/index.md). - [Acceptable use policy](https://docs.deno.com/subhosting/manual/acceptable_use_policy): The Deno Subhosting service includes resources (CPU time, request counts) that are subject to this Acceptable Use policy. This document can give a rough estimate to what we consider as "Acceptable Use", and what we do not. - [Deployment events](https://docs.deno.com/subhosting/manual/events): During the lifetime of a deployment execution, several events are recorded into its execution logs. Using the [deployment logs API](https://apidocs.deno.com/#get-/deployments/-deploymentId-/app_logs), these event logs can be used to understand and monitor the behavior of your deployments. - [Planning your implementation](https://docs.deno.com/subhosting/manual/planning_your_implementation): Let's say, for example, that you are building a SaaS CRM platform like Salesforce. You want to empower your customers to write JavaScript code that would be executed every time a new lead was captured. - [Pricing and Limits](https://docs.deno.com/subhosting/manual/pricing_and_limits): Overview of Deno Subhosting pricing plans, resource limits, deployment restrictions, and performance constraints for your applications. - [Subhosting Quick Start](https://docs.deno.com/subhosting/manual/quick_start): Looking for the smallest possible example that shows how to deploy code to Deno's isolate cloud? We've got you covered below, or you can skip to the [more detailed getting started guide](#getting-started-with-subhosting). - [Authentication](https://docs.deno.com/subhosting/api/authentication): Developers can provision projects, domains, KV databases, and other resources using the Subhosting REST API. ## Lint Documentation Documentation for Deno's built-in linter and formatter, including available rules and configuration. - [lint/rules/adjacent-overload-signatures.md](https://docs.deno.com/lint/rules/adjacent-overload-signatures): Requires overload signatures to be adjacent to each other. - [lint/rules/ban-ts-comment.md](https://docs.deno.com/lint/rules/ban-ts-comment): Disallows the use of Typescript directives without a comment. - [lint/rules/ban-types.md](https://docs.deno.com/lint/rules/ban-types): Bans the use of primitive wrapper objects (e.g. `String` the object is a wrapper of `string` the primitive) in addition to the non-explicit `Function` type and the misunderstood `Object` type. - [lint/rules/ban-unknown-rule-code.md](https://docs.deno.com/lint/rules/ban-unknown-rule-code): Warns the usage of unknown rule codes in ignore directives. - [lint/rules/ban-untagged-ignore.md](https://docs.deno.com/lint/rules/ban-untagged-ignore): Requires `deno-lint-ignore` to be annotated with one or more rule names. - [lint/rules/ban-untagged-todo.md](https://docs.deno.com/lint/rules/ban-untagged-todo): Requires TODOs to be annotated with either a user tag (`@user`) or an issue reference (`#issue`). - [lint/rules/ban-unused-ignore.md](https://docs.deno.com/lint/rules/ban-unused-ignore): Warns unused ignore directives. - [lint/rules/camelcase.md](https://docs.deno.com/lint/rules/camelcase): Enforces the use of camelCase in variable names. - [lint/rules/constructor-super.md](https://docs.deno.com/lint/rules/constructor-super): Verifies the correct usage of constructors and calls to `super()`. - [lint/rules/default-param-last.md](https://docs.deno.com/lint/rules/default-param-last): Enforces default parameter(s) to be last in the function signature. - [lint/rules/eqeqeq.md](https://docs.deno.com/lint/rules/eqeqeq): Enforces the use of type-safe equality operators `===` and `!==` instead of the more error prone `==` and `!=` operators. - [lint/rules/explicit-function-return-type.md](https://docs.deno.com/lint/rules/explicit-function-return-type): Requires all functions to have explicit return types. - [lint/rules/explicit-module-boundary-types.md](https://docs.deno.com/lint/rules/explicit-module-boundary-types): Requires all module exports to have fully typed declarations. - [lint/rules/for-direction.md](https://docs.deno.com/lint/rules/for-direction): Requires `for` loop control variables to increment in the correct direction. - [lint/rules/fresh-handler-export.md](https://docs.deno.com/lint/rules/fresh-handler-export): Checks correct naming for named fresh middleware export. - [lint/rules/fresh-server-event-handlers.md](https://docs.deno.com/lint/rules/fresh-server-event-handlers): Disallows event handlers in fresh server components. - [lint/rules/getter-return.md](https://docs.deno.com/lint/rules/getter-return): Requires all property getter functions to return a value. - [lint/rules/guard-for-in.md](https://docs.deno.com/lint/rules/guard-for-in): Require `for-in` loops to include an `if` statement. - [lint/rules/jsx-boolean-value.md](https://docs.deno.com/lint/rules/jsx-boolean-value): Enforce a consistent JSX boolean value style. Passing `true` as the boolean value can be omitted with the shorthand syntax. - [lint/rules/jsx-button-has-type.md](https://docs.deno.com/lint/rules/jsx-button-has-type): Enforce `` elements to have a `type` attribute. If a `` is placed inside a `` element it will act as a submit button by default which can be unexpected. - [lint/rules/jsx-curly-braces.md](https://docs.deno.com/lint/rules/jsx-curly-braces): Ensure consistent use of curly braces around JSX expressions. - [lint/rules/jsx-key.md](https://docs.deno.com/lint/rules/jsx-key): Ensure the `key` attribute is present when passing iterables into JSX. It allows frameworks to optimize checking the order of elements. - [lint/rules/jsx-no-children-prop.md](https://docs.deno.com/lint/rules/jsx-no-children-prop): Pass children as JSX children instead of as an attribute. - [lint/rules/jsx-no-comment-text-nodes.md](https://docs.deno.com/lint/rules/jsx-no-comment-text-nodes): JavaScript comments inside text nodes are rendered as plain text in JSX. This is often unexpected. - [lint/rules/jsx-no-duplicate-props.md](https://docs.deno.com/lint/rules/jsx-no-duplicate-props): Disallow duplicated JSX props. Later props will always overwrite earlier props often leading to unexpected results. ## Optional - [Contribution Guidelines](https://docs.deno.com/runtime/contributing): How to contribute to Deno - [Style Guide](https://docs.deno.com/runtime/contributing/style_guide): Coding style guidelines for Deno - [Release Schedule](https://docs.deno.com/runtime/contributing/release_schedule): Deno's release cadence and versioning - [Deno LLM Skills](https://github.com/denoland/skills): Skills and playbooks for LLMs and AI agents working with Deno