惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
V2EX - 技术
V2EX - 技术
Jina AI
Jina AI
有赞技术团队
有赞技术团队
美团技术团队
月光博客
月光博客
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 三生石上(FineUI控件)
V
V2EX
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
人人都是产品经理
人人都是产品经理
Security Latest
Security Latest
C
CERT Recently Published Vulnerability Notes
P
Privacy International News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
宝玉的分享
宝玉的分享
罗磊的独立博客
J
Java Code Geeks
博客园 - Franky
V
Vulnerabilities – Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
小众软件
小众软件
P
Privacy & Cybersecurity Law Blog
量子位
T
Threatpost
T
Tailwind CSS Blog
V
Visual Studio Blog
C
Cisco Blogs
雷峰网
雷峰网
博客园 - 【当耐特】
T
Tor Project blog
T
The Exploit Database - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园_首页
H
Heimdal Security Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
博客园 - 聂微东
爱范儿
爱范儿
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hugging Face - Blog
Hugging Face - Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Threat Research - Cisco Blogs
T
Troy Hunt's Blog
H
Hacker News: Front Page
T
Tenable Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint

Deno

Deno 2.8 | Deno Claw Patrol: an open-source security firewall for agents | Deno Fresh 2.3: Zero JS by default, View Transitions, and Temporal support | Deno Deno 2.7: Temporal API, Windows ARM, and npm overrides | Deno Build a dinosaur runner game with Deno, pt. 6 | Deno Build a dinosaur runner game with Deno, pt. 5 | Deno Deno Deploy is Generally Available | Deno Introducing Deno Sandbox | Deno Build a dinosaur runner game with Deno, pt. 4 | Deno Build a dinosaur runner game with Deno, pt. 3 | Deno Build a dinosaur runner game with Deno, pt. 2 | Deno React / Next.js Denial-of-Service Vulnerability: Deno Deploy users protected | Deno Deno 2.6: dx is the new npx | Deno Build a dinosaur runner game with Deno, pt. 1 | Deno React Server Functions / Next.js Vulnerability: Deno Deploy users protected | Deno My highlights from the new Deno Deploy | Deno Deno's Other Open Source Projects | Deno How Deno protects against npm exploits | Deno Help Us Raise $200k to Free JavaScript from Oracle | Deno Deno 2.5: Permissions in the config file | Deno Fresh 2.0 Graduates to Beta, Adds Vite Support | Deno Deno 2.4: deno bundle is back | Deno JavaScript™ Trademark Update | Deno What's coming to JavaScript | Deno A brief history of JavaScript | Deno Reports of Deno's Demise Have Been Greatly Exaggerated | Deno An Update on Fresh | Deno How Plaid migrated 100 services to a new database platform 5x faster with Deno | Deno Deno 2.3: Improved deno compile, local npm packages, and more | Deno Add JSR packages with pnpm and Yarn | Deno Zero-config Debugging with Deno and OpenTelemetry | Deno Exploring Art with TypeScript, Jupyter, Polars, and Observable Plot | Deno Deno v Oracle Update 3: Fighting the JavaScript Trademark | Deno Build a custom RAG AI agent in TypeScript and Jupyter | Deno How to get deep traces in your Node.js backend with OTel and Deno | Deno toranoana.deno #20 登録受付中(2025年3月14日) | Deno Node just added TypeScript support. What does that mean for Deno? | Deno The Dino 🦕, the Llama 🦙, and the Whale 🐋 | Deno Publish a lint rule, get a prize | Deno Deno 2.2: OpenTelemetry, Lint Plugins, node:sqlite | Deno If you're not using npm specifiers, you're doing it wrong | Deno How Deno's documentation is evolving | Deno Oracle justified its JavaScript trademark with Node.js—now it wants that ignored | Deno Introducing the JSR open governance board | Deno Intro to Wasm in Deno | Deno Announcing OpenAI on JSR | Deno Deno in 2024 | Deno Goodbye WinterCG, welcome WinterTC | Deno Build a SolidJS app with Deno | Deno Run your Next.js SSR app on Deno Deploy | Deno Solve Advent of Code 2024 with Deno and Win Prizes! | Deno Deno v. Oracle: Canceling the JavaScript Trademark | Deno Deno 2.1: Wasm Imports and other enhancements | Deno Build a Typesafe API with tRPC and Deno | Deno Self-contained Executable Programs with Deno Compile | Deno Build a Database App with Drizzle ORM and Deno | Deno Introducing your new JavaScript package manager: Deno | Deno Announcing Growthbook on JSR | Deno Build an Astro site with Deno | Deno How to convert CommonJS to ESM | Deno Announcing Deno 2 | Deno The Final Touches: What’s New In v2.0.0-rc.10 | Deno Announcing Stable V8 Bindings for Rust | Deno Deno 2.0 Release Candidate | Deno Secure, efficient private npm registries with Cloudsmith and Deno | Deno Painting the Plane as We Fly It: Designing JSR | Deno Introducing Web Cache API support on Deno Deploy | Deno Deno 1.46: The Last 1.x Release | Deno Protect your cloud spend with new Deno Deploy spend limits | Deno What we got wrong about HTTP imports | Deno Benchmarking AWS Lambda Cold Starts Across JavaScript Runtimes | Deno Announcing Supabase on JSR | Deno Deno 1.45: Workspace and Monorepo Support | Deno Introducing KV Backup for Deno Subhosting | Deno A Gentle Intro to TypeScript | Deno Announcing Hono on JSR | Deno How We Made the Deno Language Server Ten Times Faster | Deno How the Guardian uses Deno to audit accessibility and performance across their 2.7 million articles | Deno Introducing More Flexible Domain Association for Deno Subhosting | Deno The stabilization process of the Standard Library has begun | Deno Deno 1.44: Private npm registries, improved Node.js compat, and performance boosts | Deno How we built a secure, performant, multi-tenant cloud platform to run untrusted code | Deno The Deno Standard Library is now available on JSR | Deno How to document your JavaScript package | Deno Your Low Code Solution Needs an Escape Hatch | Deno Deno 1.43: Improved Language Server performance | Deno How Slack used Deno to save months of engineering effort in launching their new platform | Deno JSR Is Not Another Package Manager | Deno Announcing the Hookdeck SDK on JSR | Deno Announcing the Neon Serverless Driver on JSR | Deno An intro to TSConfig for JavaScript Developers | Deno How we built JSR | Deno How Netlify used Deno Subhosting to build a successful edge functions product | Deno Introducing Simpler Project Creation in Deno Deploy | Deno Deno 1.42: Better dependency management with JSR | Deno Introducing deployctl, the command line interface for Deno Deploy | Deno Introducing JSR - the JavaScript Registry | Deno How to add Monaco to a Next.js app and securely run untrusted user code | Deno Survey Results and Roadmap | Deno Deno 1.41: smaller deno compile binaries | Deno
Deno Subhosting: the easiest and most secure way to run untrusted multi-tenant code | Deno
2023-11-15 · via Deno

Today, we’re excited to launch a self-serve version of Deno Subhosting – a platform that enables companies to securely run untrusted JavaScript code written by their users. Getting to this point was a long journey that began almost two years ago with a partnership to power Netlify’s edge functions product. Since then, our subhosting infrastructure has evolved to process tens of billions of requests monthly. With this new launch, anyone can add lightning-fast hosting capabilities to their product with just a few lines of code.

Why Subhosting?

Since launching Deno Deploy (our cloud hosting solution) in 2021, we’ve been surprised at the number of companies that reached out with an ask like the following:

Hey Deno team, would it be possible to get access to the APIs that you use to run your hosting product? We’d like to give our users the ability to write some custom logic within our app, but setting this up in our public cloud presents some security concerns and a lot of extra work. Especially if we want it to run fast and serverless. Ideally we’d use a combo of Deno’s runtime for secure sandboxing plus automated deployment to Deno’s cloud infra – in the same way Deno powers Netlify edge functions.

After fielding dozens of requests like this, we realized that there was an opportunity for subhosting to solve a widespread need. Enabling companies to quickly and securely run custom code written by their users – without having to staff and maintain a dedicated engineering team to do it.

Why run untrusted code?

If you look at most major B2B SaaS companies, you’ll find that a very large percentage already give their users the ability to write some custom logic within their products. There are two major reasons for this – both of which drive significant benefits to conversion and retention:

  1. Extending product functionality & customization. For example, companies like Airtable, Atlassian, Slack and Zoom all allow their users to create custom workflows, automations and integrations via code. Rather than trying to individually satisfy the long tail of feature requests from major customers, these companies empowered their customers to create a perfect solution for their own needs.

  2. Creating a marketplace for third-party applications. For example, companies like Shopify, HubSpot and Salesforce have been very successful at building a marketplace of custom-coded third-party applications. This marketplace not only extends the functionality of the core product seamlessly, but also deepens partner investment in the ecosystem.

Although these capabilities are more common among the largest B2B SaaS companies, their appeal is much broader. Early and mid-stage startups are increasingly looking to offer these same tools to their customers as a way to differentiate and provide value, especially when developers are among the main buyers. The problem is that safely running untrusted code often requires a significant investment that’s difficult to prioritize with limited engineering resources.

Common engineering and business roadblocks

In our conversations with companies ranging from small startups to large enterprises, we’ve heard a few major challenges surfaced up repeatedly when it comes to running untrusted code. Often these led to projects being continually punted or blocked when the full cost of implementation was taken into account. Those challenges included:

  1. Running code securely: Businesses are understandably cautious about running user-written code on their infrastructure to prevent granting unintended access to internal systems or data from other users, or for fear the code could be used maliciously in other ways (e.g. sending spam). Deno provides comprehensive security countermeasures to these concerns.

  2. Preserving user experience: In offering users the ability to enhance your product through coding, it’s crucial they don’t have to face steep learning curves or unnecessary hurdles like writing a bunch of boilerplate. Deno uses the most widely known programming language, furnishes an extensive standard library, supports all relevant modern web standards, and is compatible with 2M+ NPM packages.

  3. Infrastructure management and scaling: Supervising infrastructure running user-created code in public cloud environments presents several challenges. For example, using the same VM or container for different customers makes it difficult to isolate properly. Using different VMs or containers per customer balloons cost. Deno Subhosting was engineered to solve these problems, as well as others associated with upgrading and scaling.

  4. Usage-based customer billing: Frequently, businesses aim to bill customers using the code as part of a paid feature or based on usage. However, when hosting on a public cloud provider, it can be very difficult to attribute usage or cost to the customer that incurred them. Attributing costs to customers on Deno Subhosting is easy and straightforward.

Check out Deno Subhosting

We built Deno Subhosting to be a simple way to provide all the benefits of running untrusted user code, while solving all of the major challenges. For users who are new to Deno Deploy, check out our new Subhosting product page or get started with a free Subhosting account (no credit card required).

If you already have a Deno Deploy account, you can check out Subhosting by logging in and creating a new organization, then choosing “Subhosting” in the next screen.

Checking out Deno Subhosting