esm.sh's Avatar

esm.sh

@esm.sh.bsky.social

A nobuild content delivery network(CDN) for modern web development. https://esm.sh

517 Followers  |  0 Following  |  45 Posts  |  Joined: 03.11.2024  |  1.7239

Latest posts by esm.sh on Bluesky

Post image

Introducing modern-monaco, a modern version of Monaco Editor built by @microsoft.com , which also powsers @vscode.dev and its forks.

- no `MonacoEnvironment` & loader needed
- highlighting using @shiki.style with tons of grammars/themes @antfu.me
- Lazy loading
- Workspace
- SSR
- and more

02.08.2025 19:03 β€” πŸ‘ 15    πŸ” 3    πŸ’¬ 2    πŸ“Œ 0

Thank you sir 🫑

01.07.2025 06:28 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

πŸ†• mono-jsx 0.6.0 is released with builtin router(SPA mode), and lazy rendering.

02.06.2025 04:59 β€” πŸ‘ 4    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Post image

mono-jsx 0.5.0 is out with🚦Signals!

19.05.2025 08:47 β€” πŸ‘ 6    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0

Thank you Anthony!!!!

06.05.2025 15:30 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

mono-jsx 0.4.0 has been published to NPM. It now supports async components defined by an async generator function. This is useful for streaming rendering of LLM tokens.

06.05.2025 06:41 β€” πŸ‘ 9    πŸ” 1    πŸ’¬ 1    πŸ“Œ 1

Just added a `Context` API for mono-jsx:

github.com/ije/mono-jsx...

28.04.2025 05:09 β€” πŸ‘ 8    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
Post image

Introducing mono-jsx, a server-side jsx runtime renders `<html>` to a `Response`.

πŸš€ No build step needed
πŸ¦‹ Lightweight(8KB gzipped), zero dependencies
πŸ”« Minimal state runtime
🚨 Full Web API types
⏳ Streaming rendering
🌎 Works in Node.js, Deno, Bun, Cloudflare Workers, etc.

26.04.2025 14:33 β€” πŸ‘ 21    πŸ” 1    πŸ’¬ 1    πŸ“Œ 1

πŸ’š

05.04.2025 11:13 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Anthony Fu Fund Redistribution, March 2025 - Anthony Fu Fund Sponsor open-source work across the ecosystem around Anthony's work. The funds raised in this collective will mainly be forwarded to dependencies on Anthony's choices.

πŸ’– In March, we have forwarded our Open Collective fund to support maintainers:
@thealexlichter.com @43081j.com

Recurring to projects:
@esm.sh @pnpm.io @cyberalien.dev

Join us to show appreciation to our dependencies and help them be sustainable!

opencollective.com/antfu/update...

04.04.2025 07:57 β€” πŸ‘ 54    πŸ” 4    πŸ’¬ 1    πŸ“Œ 1

I love using @esm.sh for browser importmaps!

- Handles npm, jsr and GitHub registries
- Checks the User-Agent to serve the right ES version (es2022, etc) – no bloat!
- Supports tree-shaking, so you can import just what you need

28.03.2025 16:24 β€” πŸ‘ 6    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Preview
esm.sh status esm.sh status page.

esm.instatus.com

23.03.2025 18:31 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
ESM>CDN A fast, smart & global CDN for modern(es2015+) web development.

esm.sh was down for about 1 hour caused by DNS resolving via IPV6. Now it's back!

23.03.2025 18:30 β€” πŸ‘ 5    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
ESM>CDN A fast, smart & global CDN for modern(es2015+) web development.

did you know:

esm.sh can transform tsx/vue/svelte to JS via
<esm\.sh/https\://example.com/src/app.tsx>

- tsx: esm.sh/https://ije.github.io/esmshx-demo/react/main.tsx
- vue: esm.sh/https://ije.github.io/esmshx-demo/vue/App.vue
- svelte: esm.sh/https://ije.github.io/esmshx-demo/svelte/App.svelte

11.03.2025 04:14 β€” πŸ‘ 8    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Thank you for your support! 🫑 πŸ’š

02.03.2025 08:37 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
GitHub - esm-dev/cjs-module-lexer: A lexer for detecting the module.exports of a CJS module. A lexer for detecting the module.exports of a CJS module. - esm-dev/cjs-module-lexer

nice, btw you can also use github.com/esm-dev/cjs-... for cjs named exports resolving

28.02.2025 13:20 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

oh, so fast! i will look into it. thanks πŸ™

22.02.2025 13:04 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Use `deno.json(c)` on `/gh/*` pattern by ije Β· Pull Request #1085 Β· esm-dev/esm.sh use deno.json(c) (if have one) on /gh/* pattern resolve jsr: specifier (close Resolving JSR imports when importing from githubΒ #1084) this allows you to import a WIP package without publishing it ...

esm.sh now uses `deno.json(c)` for module resolving when importing modules from Github, which allows you to import a WIP package without publishing it to @jsr.io

Example: esm.sh/gh/dsherret/dax@6aed9b0
PR: github.com/esm-dev/esm.sh/pull/1085

22.02.2025 12:32 β€” πŸ‘ 6    πŸ” 3    πŸ’¬ 1    πŸ“Œ 0
screenshot of a webpage that says "who up importing from jsr in the browser" and then demonstrates using @luca/flag, @std/cbor, @std/encoding, and @std/streams

screenshot of a webpage that says "who up importing from jsr in the browser" and then demonstrates using @luca/flag, @std/cbor, @std/encoding, and @std/streams

chat i got jsr imports working 100% in the browser (no server side transforms like esm.sh, unless you import npm: specifiers, those are esm.sh)
easrng.github.io/jsr-loader/

03.02.2025 20:07 β€” πŸ‘ 22    πŸ” 2    πŸ’¬ 2    πŸ“Œ 2

Check esm.sh/gh/gnlow/pla...

02.02.2025 17:57 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image Post image

y'n, you can just host a static site with typescript via esm.sh ✨
#nobuild

02.02.2025 17:57 β€” πŸ‘ 17    πŸ” 5    πŸ’¬ 1    πŸ“Œ 0
Post image Post image

Thanks to latest @esm.sh release, I found a new way to embed a full-stack app like @excalidraw.com into a single @jsr.io import:

Try it out at excalidraw.smallweb.run

27.01.2025 20:39 β€” πŸ‘ 16    πŸ” 3    πŸ’¬ 1    πŸ“Œ 1
import { pipe } from 'https://esm.sh/effect';

with tooltip reading:

(alias) function pipe<A>(a: A): A (+19 overloads)
import pipe

import { pipe } from 'https://esm.sh/effect'; with tooltip reading: (alias) function pipe<A>(a: A): A (+19 overloads) import pipe

Managed to get typescript types resolving in a Codemirror editor based on X-Typescript-Types headers from @esm.sh using @val.town's codemirror-ts extension with a bit of help from Claude to glue things together. Gotta love standing on the shoulders of giants.

21.01.2025 23:48 β€” πŸ‘ 13    πŸ” 3    πŸ’¬ 0    πŸ“Œ 0

esm.sh πŸ’š jsr.io

25.01.2025 04:48 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
ESM>CDN A fast, smart & global CDN for modern(es2015+) web development.

and with @antfu.me's support, esm.sh now experimentally transforms `.vue` and `.svelte` on the fly, for example esm.sh/gh/phosphor-...

24.01.2025 03:22 β€” πŸ‘ 19    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
Preview
Releases Β· esm-dev/esm.sh A no-build CDN for modern web development. Contribute to esm-dev/esm.sh development by creating an account on GitHub.

esm.sh v136 has been deployed with
- builtin @jsr.io (h/t @lcas.dev ) and pkg.pk.new (h/t @aslemammad.bsky.social @amirsakhravi.bsky.social) registries.
- more stable package version resolving
- use @pi0.io's github.com/unjs/unenv
- and more β†ͺ github.com/esm-dev/esm....

24.01.2025 03:17 β€” πŸ‘ 49    πŸ” 9    πŸ’¬ 1    πŸ“Œ 2
Post image

idea: get package with version closest to a provided timestamp or date

21.01.2025 11:16 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

however i have to admit using `?deps` and "?external" is a bit annoying, this is why we are working on the better sub-modules bundling algorithm and semantic versioning support. and a new CLI tool and vscode extension like jspm generator is going to be released in next publish.

26.12.2024 19:52 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

you can use `?deps` to specify the dep version, for example "lib_a?deps=lib_c@^2.0.0", you also can use `?external` with import maps to fix he duplicated issue:
{
"lib_a": "https://esm.sh/lib_a?external=lib_c"
"lib_b": "https://esm.sh/lib_b?external=lib_c"
"lib_c": "..."
}

26.12.2024 19:52 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

esm.sh does bundle sub-modules of a package if the `exports` field is not found, but it doesn't bundle deps by deafult. i think the duplicate issue is about semantic versioning, i.e. lib_a imports lib_c@^1.0.0, lib_b imports lib_c@^2.0.0, in this case, lib_c is duplicated

26.12.2024 19:52 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0