Hamilton, On 🇨🇦
@wesbos on 𝕏, gram, tok, tube and suits
syntax.fm × @syntaxfm × sentry
Server Side JavaScript
Engines + APIS === Runtime
V8 → 
Spider Monkey → 
JavaScriptCore → 
[Deno Deploy, Netlify Edge, Supabase Edge]
[Workerd]
*experimental*
maybe. You should care about the standards
Why do we have so many runtimes?
well, ya. But also no.
TC39
Async + Await, esm, const, arrow functions
W3C
WebRTC, Streams API, Web Components
WHATWG
Fetch, Service Workers, Resize Observer
JS is JS
We don't need different ways to do the same thing
Let's look at some of those standards
Web Request + Web Response are life
Not Native, But:
Hono.js, H3, @whatwg-node/server, Fastify Plugin, Next.js Routes, Sveltekit, Astro + more
Blow Chunks as you have em
Listen for events on anything!
Really cool new API
The tooling is standardizing on standards
Deno, Bun, Cloudflare, Node
Think of these as standards based Express that can run anywhere.
HMR, Routing, Middlware, Caching, Web Sockets, Assets
Any JS LIb + Standard Server = Metaframework
Client: Vite, Tanstack Query, Tanstack Router
Server: Vinxi → Nitro → H3 → srvx
JSDom Alternative. Works everywhere
At least not yet...
Future Server JS isn't about making it work everywhere.
It's about building with standards, enjoying the huge ecosystem's best tools and having the choice for it to run anywhere.
@wesbos