# Deno Ecosystem Field Guide > A task-oriented guide from Node.js migration and full-stack development to edge and AI agents. - [Deno Ecosystem Field Guide](/en/docs/): A practical guide from Node.js migration and full-stack development to edge and AI agents - [About this site](/en/docs/about/): Positioning, fact sources, editorial policy, and versioning for the Deno Ecosystem Field Guide - [AI / Agent entry point](/en/docs/ai/): Complete Deno development tasks safely with minimal context - [Deno agent architecture](/en/docs/ai/agent-loop/): Choose a controlled agent implementation across direct SDKs, MCP, LangChain, and LlamaIndex - [Paste-ready agent rules](/en/docs/ai/agent-rules/): Encode Deno permission, dependency, verification, and destructive-action boundaries in repository instructions - [Build AI applications with Deno](/en/docs/ai/building-ai-apps/): Design streaming, secret permissions, tools, RAG, and observability boundaries - [Build an MCP server with Deno](/en/docs/ai/mcp-server/): Expose a validated MCP tool with the official TypeScript SDK, Zod, and stdio - [Deno + OpenAI](/en/docs/ai/openai/): Build a least-privilege Deno service with the official OpenAI SDK and Responses API - [Deno Sandbox](/en/docs/ai/sandbox/): Isolate agents, plugins, and untrusted code in ephemeral Linux microVMs on Deno Deploy - [Compile to a single-file executable](/en/docs/core/compile/): Distribute single-file apps with deno compile, covering cross-compilation, embedded assets, and selection boundaries - [Debugging and editor setup](/en/docs/core/debugging/): Configure VS Code and deno lsp, debug with --inspect breakpoints, and trace permission and leak issues - [Dependencies, JSR, and npm](/en/docs/core/dependencies/): Manage JSR, npm, Node built-ins, imports, deno.lock, and the cache - [Deno Desktop](/en/docs/core/desktop/): Package web applications as cross-platform desktop programs with deno desktop in Deno 2.9 - [Environment variables and .env](/en/docs/core/env-variables/): Manage configuration and secrets with --env-file, Deno.env, and precise --allow-env grants - [Modules and import maps](/en/docs/core/imports/): Manage clear module boundaries with ESM, JSR, npm, and deno.json imports - [OpenTelemetry observability](/en/docs/core/observability/): Export logs, metrics, traces, and runtime auto-instrumentation with Deno's built-in OpenTelemetry support - [Permissions and security boundaries](/en/docs/core/permissions/): Apply least privilege to files, network, environment, subprocesses, FFI, and dynamic imports - [Runtime and HTTP](/en/docs/core/runtime/): Run TypeScript, use Web APIs, serve HTTP, and manage process lifecycle - [Deno Standard Library](/en/docs/core/standard-library/): Use the independently versioned Deno standard-library packages published on JSR - [Supply-chain security](/en/docs/core/supply-chain/): Reduce dependency risk with deno ci, audit, minimum age, lifecycle approvals, lockfiles, and vendoring - [Testing, mocks, and coverage](/en/docs/core/testing/): Build reliable tests with Deno.test, permissions, filters, coverage, and resource cleanup - [Built-in development tools](/en/docs/core/tooling/): Use fmt, lint, check, doc, bench, compile, and bundle to control project quality - [Built-in TypeScript](/en/docs/core/typescript/): Run TypeScript directly while keeping execution and type checking explicit - [Workspaces and monorepos](/en/docs/core/workspaces/): Organize members, shared dependencies, tasks, and publishing boundaries in deno.json - [Choose a database for Deno](/en/docs/database/): Select among PostgreSQL, SQLite, MongoDB, Redis, Supabase, and Deno KV - [Deno KV](/en/docs/database/kv/): Current status of Deno KV, its API, consistency model, and the migration boundary after Deploy Classic's shutdown - [PostgreSQL and Drizzle CRUD](/en/docs/database/postgres-drizzle/): Build a migratable, testable data layer with Deno, postgres.js, and Drizzle - [SQLite with node:sqlite](/en/docs/database/sqlite/): Using SQLite in Deno via node:sqlite and compatible libraries, with least-privilege and WAL/backup boundaries - [Supabase](/en/docs/database/supabase/): Connect to Supabase Postgres directly or via supabase-js from Deno, covering pooler ports, RLS, Edge Functions, and secret boundaries - [Deployment decisions](/en/docs/deploy/): Choose among Deno Deploy, containers, and general cloud platforms by runtime boundary - [CI/CD in practice](/en/docs/deploy/ci-cd/): Build a reproducible Deno pipeline with setup-deno, deno ci, and layered gates, then ship artifacts to static hosting or Deno Deploy - [Migrate from Deploy Classic](/en/docs/deploy/classic-migration/): Migrate dash.deno.com, deployctl, legacy serve, KV, queues, domains, and Subhosting v1 - [Databases, cron, and timelines](/en/docs/deploy/data-and-cron/): Understand PostgreSQL, Deno KV, cron, environment contexts, and timeline isolation on the new Deno Deploy - [Deno Deploy](/en/docs/deploy/deno-deploy/): Connect a repository to Deno Deploy and verify build, environment, data, and observability boundaries - [Docker and containers](/en/docs/deploy/docker/): Build production containers with official Deno images, a non-root user, cache layers, and least privilege - [Production engineering baseline](/en/docs/deploy/production-baseline/): Constrain Deno services with pinned versions, lockfiles, least privilege, CI, and observability - [Your first Deno project](/en/docs/getting-started/first-project/): Build a small maintainable project with main.ts, deno.json, and a test - [Install Deno](/en/docs/getting-started/installation/): Install, upgrade, and verify Deno on macOS, Linux, and Windows - [Mental model](/en/docs/getting-started/mental-model/): Understand the boundaries among the Deno runtime, permissions, modules, cache, and built-in tools - [5-minute quickstart](/en/docs/getting-started/quickstart/): Install Deno, run a least-privilege TypeScript HTTP service, and execute a test - [What is Deno?](/en/docs/getting-started/what-is-deno/): Understand Deno's origin, design choices, and boundaries against Node.js, Bun, and Workers - [Migrate from Node.js to Deno](/en/docs/migration/): A Deno 2 migration route that preserves rollback and verifies compatibility layer by layer - [Node API mapping](/en/docs/migration/api-mapping/): Make verifiable choices among Node built-ins, Web APIs, and Deno APIs - [Migrate from Node.js](/en/docs/migration/from-node/): Adopt Deno 2 incrementally while preserving package.json and npm dependencies - [npm, package.json, and deno.json](/en/docs/migration/packages-and-config/): Understand Deno 2 installation, lockfiles, and node_modules modes - [Node migration troubleshooting](/en/docs/migration/troubleshooting/): Diagnose module resolution, CommonJS, native addons, permissions, and test differences - [Deno project blueprints](/en/docs/projects/): Structures, milestones, and acceptance checks for four extensible Deno projects - ["Project: Deno cron service"](/en/docs/projects/cron-service/): Write jobs as plain testable functions, trigger them with Deno.cron, and enforce idempotency with a unique execution key - ["Project: Fresh 2 + PostgreSQL + Drizzle blog"](/en/docs/projects/fresh-blog/): Milestone-based build of a post list, detail pages, and a protected create flow, then Markdown, drafts, images, and search - ["Project: image-processing API (Hono + sharp)"](/en/docs/projects/image-api/): A size-limited image transformation service with Hono and npm:sharp, including MIME/pixel validation, object storage, and a native-dependency smoke test - ["Project: Deno MCP server"](/en/docs/projects/mcp-server-project/): Start with stdio and read-only tools, validate arguments with Zod, protocol-test with fixtures, then expand to Streamable HTTP - [CLI and deno.json quick reference](/en/docs/reference/cli-and-config/): Common Deno commands, configuration ownership, tasks, imports, and troubleshooting order - [Deno vs Node.js vs Bun](/en/docs/reference/deno-vs-node-bun/): Compare the three JavaScript runtimes by runtime model, permissions, TypeScript, package management, tooling, and deployment to make a selection decision - [Ecosystem decisions](/en/docs/reference/ecosystem-decisions/): Choose among JSR/npm, native APIs, Fresh, and Node frameworks from explicit constraints - [Common errors and troubleshooting](/en/docs/reference/errors/): Diagnose Deno failures by permission, module, type, Node compatibility, and platform boundary - [Frequently asked questions](/en/docs/reference/faq/): Answers about Deno 2 Node compatibility, TypeScript, security, npm/JSR, and production use - [Publish packages to JSR](/en/docs/reference/publishing-jsr/): Configure exports, verify TypeScript packages, and publish provenance from GitHub Actions OIDC - [Deno 2.x capability matrix](/en/docs/reference/version-matrix/): Separate stable baseline features from version-sensitive and hosted-platform behavior - [Deno web development](/en/docs/web/): Choose among Deno.serve, Fresh, Hono, Oak, and static-site tools - [Full-stack development with Fresh 2](/en/docs/web/fresh/): Use the current Fresh 2 routing, islands, middleware, and deployment model - [Build APIs with Hono](/en/docs/web/hono/): Create a testable Hono REST API on Deno that can move across runtimes - [Building static sites with Lume](/en/docs/web/lume/): Practical Lume 3 setup — init, plugins, _components, and named permissions - [Build backends with Oak](/en/docs/web/oak/): Use Oak's Application, Router, and middleware model for Deno services