2.1 KiB
title | published_at |
---|---|
Re-write it in Deno! | 2025-04-25T15:00:00.000Z |
So... all new site! I use this site as something of an experiment for whatever technology interests me. One recently got my attention:
Deno!
Yes... Deno the friendly re-imagining of Node.js by Ryan Dahl, the the creator of Node.js! Now given my recent dive into Golang and HTMX, this might seem odd. Let me explain:
Built in TSX and Typescript support!
Deno has built in Typescript support, which has been huge for me. Lets table the whole "Bun and new Node can do that too" discussion for now. Its simply magical to have a Typescript codebase without a single tsconfig in sight!
Security!
Look, the secrity model of Deno is incredible. The idea that the runtime will default-deny permissions unless you as the developer enables them is an awesome move.
Imports
Being able to seamlessly pull from JSR and NPM is amazing! Having those two ecosystems work without the frustrating package.json dance is refreshing. I mean, just being able to import directly from URLs? Game changer!
Built-in tooling
The tooling that ships with Deno is first-class! Formatter, linter, test runner,
doc generator... all built right in! No more spending half a day configuring
eslint, prettier, and jest just to get started on a project. Just use
deno fmt
, deno lint
, deno test
and you're good to go.
Web standards first
Fetch, web streams, event listeners and so on all work just like they do in the browser. Coming from Node where you have to remember different APIs between back-end and front-end JS, this is absolutely a breath of fresh air.
What about Golang? GOTH Stack?
I still love Go as a language and will continue to use it for certain things. Its incredibly fast and the concurrency model is awesome, but sometimes you just want to put together a quick web application and JS frameworks are just much easier to reach for.
Whats next?
I'm rebuilding this entire site with Deno Fresh, which is their web framework. It has their island architecture which means minimal JS sent to the client. Will I stick with it? Who knows! All I know is this has definitely been a blast of a re-write.