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

推荐订阅源

Recent Announcements
Recent Announcements
J
Java Code Geeks
U
Unit 42
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
L
LangChain Blog
D
Docker
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
罗磊的独立博客
I
InfoQ
The Cloudflare Blog
小众软件
小众软件
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Engineering at Meta
Engineering at Meta
S
SegmentFault 最新的问题
爱范儿
爱范儿
Hugging Face - Blog
Hugging Face - Blog
P
Proofpoint News Feed
V
V2EX
月光博客
月光博客
Martin Fowler
Martin Fowler

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
How Slack used Deno to save months of engineering effort ...
Andy Jiang · 2024-04-29 · via Deno

In 2022, Slack launched a new development platform using the Deno runtime, to provide developers a more modular, composable, and secure way to build Slack apps. Learn how Deno helped save Slack's platform engineering team months of development with its simple, modern, all-in-one JavaScript runtime.

The challenge

Slack launched its first developer platform in 2015, and it was such a success that it brought “chatbots” into the mainstream. (It even led to the creation of a new, buzzy, albeit temporary VC investment category.) By 2020, this platform saw millions of active developers each week.

However, developers voiced friction points around having to rebuild each Slack app from scratch, which required sifting through a lot of config and boilerplate. Developers also expressed concerns around needing to deliver apps with enterprise-grade security, a requirement that most web developers hadn’t had to meet prior.

To solve this, Slack’s platform team considered building a home grown runtime to offer a modern, easy-to-use, and secure JavaScript development experience, which would take months. Fortunately, they came across Deno, a secure-by-default, performant, JavaScript and TypeScript runtime, which would become the basis of running customer code in their new development platform.

The solution

Slack chose to use the Deno runtime in their next generation platform for the following reasons:

  • Ease of getting started: Deno offers native TypeScript support and web standards APIs in a portable, self-executable binary

  • Security: Deno is secure-by-default, offering developers the ability to create enterprise-grade security from the start

  • Performant: Deno, built with V8 and Rust, is optimized for running complex JavaScript and TypeScript applications

Slack recognized developer ergonomics as paramount to the success of their next generation platform. TypeScript, which is emerging as an industry standard for improving JavaScript development and built right into Deno, offers Slack’s developers a familiar path forward for building apps that are easier to scale and manage. Additionally, Deno being a portable self-executable binary meant Slack could include it in its install script to further simplify local development.

“Working with Deno was a natural choice since we’ve been able to address [developer productivity] head on,” Jim Ray says. The modular architecture also saw the creation of new resources for developers to quickly dive in and be productive.

Slack’s enterprise focus means apps also must have enterprise-level security, but without sacrificing productivity. Deno’s secure-by-default permissions model gave Slack confidence in running third-party untrusted code on their infrastructure. It also gave Slack admins visibility into the API calls their apps are making via the outgoing domains permission. “What stood out first and foremost to our team was their laser focus on security,” Jim Ray says. “We know this definitely makes Slack admins happy — they can let developers do what they do best, while also relying on built-in guardrails to protect their data.”

Integrating Deno’s runtime into Slack’s new development platform was straightforward. Building with Deno saved Slack’s platform engineering team months of having to build it in house and allowed them to onboard their developers sooner. “We firmly believe it’s our responsibility to ensure whatever developers build on top of is set at a high bar and secure by design,” says Jim Ray.