Deno December Update: Subhosting, Cron, Fresh 1.6, and more
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 👀.
Run your users code securely with Deno Subhosting
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 ⇒
Deno Cron
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 ⇒
Fresh 1.6: tailwind CSS support, expanded plugin APIs, and more
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.
New video series: Ryan’s Weekly Recap and Deno Toolchain
We kicked off two new video series recently:
- Ryan’s Weekly Recap is a casual video where CEO/co-founder Ryan Dahl goes over what he thinks is the most exciting updates from Deno that week. Come for the video, stay for the comments section 😂
- The Deno Toolchain series is another weekly video where Andy digs a little deeper on the ins and outs of various Deno subcommands. We’ve released
deno bench
anddeno test
and more is on the way.
Around the Community
Community #Showcase
Thank you all for contributing with your projects to the Deno ecosystem. Here are some of the projects shared in the past month!
- Lume 2 is released! Lume is a pluggable, composable static site generator built on Deno. Note there are breaking changes, and here is a guide to upgrading.
- UCOD, a visual scripting platform built on Deno, is in early beta. They’re seeking beta testers who can give feedback and are prepared to reward them with gift cards!
- OpenAI announces an official SDK for Deno
- Done, a message queue server built on top of Deno Queues, offers additional functionality such as tracking enqueued messages.
- Are you participating in #AdventOfCode and want to use Deno? Check out this AdventOfDenoCode which will download your daily challenges and run your solutions for you.
For more projects and resources (or if you’d like to share yours), join the Discord’s #showcase channel.
Coming soon 👀
Deno KV
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.
#NodeToDenoChallenge
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.