We had a busy month with our new self-serve Deno Subhosting, Deno Cron, and Fresh 1.6. On top of that, we kicked off two new video series — Deno Toolchain and Ryan’s Weekly Recap. Finally, read to the end where we share some upcoming news for Deno 👀.
We’re excited to launch a self-serve version of Deno Subhosting — which powers Netlify Edge Functions. But Subhosting offers more than simply “reselling edge functions”. More and more have extended the functionality of their platform by giving their users the ability to write custom logic, either via automations and integrations (Airtable, Slack, etc.), or an app marketplace (Shopify, HubSpot).
Instead of having to build and maintain your own infrastructure to run untrusted code securely, Deno Subhosting makes it simple through a set of REST APIs and was designed from the ground up with security in mind. And if you don’t want to use REST APIs to manage your Deno Deploy/Subhosting projects, we also released an official Deno Terraform Provider.
Additionally, Deno Subhosting is globally distributed and optimized for latency, which is one of the reasons Deco.cx, Brazil’s top frontend platform, chose Deno. Their e-commerce customers rave about their “amazing developer experience”, “instant deployments”, and “fast page loads”, where a 100 millisecond improvement can increase conversion rates by 8.4%.
We’re working to add more features, such as Layers (shared context between a group of Subhosting deployments) and more. If you want to see a demo, check out this stream where Kevin and Bert go over how Subhosting works.
Read more in our announcement post ⇒
It’s finally here — Deno.cron
, a zero config way to create and manage scheduled jobs. This joins Deno KV and Deno Queues as first class cloud primitives, which simplifies web development by removing boilerplate and configuration.
Deno.cron("Sample cron job", "*/10 * * * *", () => {
console.log("This will run every 10 minutes");
});
You can run Deno.cron
on Deno Deploy, even without a web server. Check out this example using a Deno Playground.
(Is there an easier and faster way to host a cron job in the cloud? Hit reply and let me know.)
Watch the video or read the full announcement ⇒
This release comes with first class TailwindCSS support, which is the exact same npm package you would use in Node (our Twind plugin will soon be deprecated). TailwindCSS is better though, since its actively maintained and even has a performance boost of generating CSS once on deployment vs. on every request with Twind. Here’s how to migrate to TailwindCSS (you will need to use AOT builds, and if you’re on Deno Deploy, this means switching to GitHub Actions).
We’ve also added Partial support for forms and error pages, improved islands bundling strategy, and simplified typings. If you’re curious what’s next for Fresh, check out our December plan.
We kicked off two new video series recently:
deno bench
and deno test
and more is on the way.Thank you all for contributing with your projects to the Deno ecosystem. Here are some of the projects shared in the past month!
For more projects and resources (or if you’d like to share yours), join the Discord’s #showcase channel.
Next week will be a big one for Deno KV. We’re announcing kv.watch
, the ability to watch for changes for any given Deno KV key(s), which will make building realtime applications easier.
We’re also expanding where you can use Deno KV to Node with an official npm module for Deno KV.
We’ve been working hard to improve Node and npm compatibility with Deno. We recently announced “Bring Your Own Node Modules” (BYONM) as of Deno 1.38, and more on that will be shipping soon. We’re confident in the ability to use Deno in Node projects.
To help encourage people to try Deno with Node, starting in mid December, we’re launching a two week #NodeToDenoChallenge, where if you try using Deno to run an existing Node project and share the results on Twitter or in our GitHub issues, you will be eligible to win Deno merch or other prizes.
We hope this not only encourages everyone to try Deno in Node, but also give us good feedback as to where compatibility still needs improvement.