Awesome 😄
I learned so much on TS parsing, minification constraints, magic string, etc. when forking ~2 years ago,… thanks!!
Of course, I keep my mind open to novel ideas and refinements for this handy toolkit ☺️
Posts by Julian Cataldo
Next (unpublished) version uses the OXC parser (included in @rolldown.rs, so it's free) in place of the TypeScript one.
Lightning CSS too is a "free" peer dep of @vite.dev. It will possibly be embedded in Rolldown too, in the future
Compress CSS/HTML literals.
Based on Elizabeth Mitchell's work (@asyncliz.com)
- Modernized deps (lightning css, html-minifier-next…)
- Now supports <${interpolatedTag}>
- Strip types in <script lang="ts"…
- Dropped CSS interpolation support
npmx.dev/package/@lit...
npmx.dev/package/@lit...
Totally redesigned.
Uses oxc-parser, via Vite 8 rolldown/utils or standalone for Vite <= 7 / Rollup.
import styles from './my-element.css' with { type: 'css' };
npmx.dev/package/vite...
We're announcing two things:
node:vfs, a Virtual File System landing in Node.js core (PR #61478, ~14,000 lines across 66 files)
@platformatic/vfs, a userland package you can use today on Node.js 22+
blog.platformatic.dev/why-nodejs-n...
Whenever I switch to other languages, I am quickly reminded how good we have in it JavaScript when it comes to the ecosystem. You can laugh at the syntax or runtime oddities, but you cannot ignore the breadth and quality of tools we have.
A graph from npmtrends.com of lit downloads over the last 5 years, showing growth from 0 to 5,000,000
I just noticed that @lit.dev crossed the 5M downloads/week mark on npm! 🎉
That's more than 2x in the last year, and 6x in the last three years 🚀
Ever felt the need to author HTML literals in JS, but using JSX?
All that by burning a substantial amount of pesky, boilerplate-y helpers?
You can read my experience seeking this Graal and try the code if you like living on the edge 😏.
Just open sourced this experiment:
github.com/gracile-web/...
Or
"typescript.tsserver.useSyntaxServer": "never",
"editor.foldingStrategy": "auto",
"editor.linkedEditing": true
in a project settings.json, just to try.
Now importNode and cloneNode have the same performance in Chrome: issues.chromium.org/issues/37124...
I'm happy frameworks can get simpler, but also because Lit, which always uses importNode, probably just got faster too.
Filing issues for browser implementation bugs is a good thing for everyone!
Experimenting with an hybrid Hooks x Signals reactive API.
I poked around as a total profane, assisted by ChatGPT, to emulate Functional Components ergonomics in Lit-ish runtimes, because why not?
Lit (TC39 Proposal) Signals opened the breach, it's now possible to explore new exciting pathways :D
proof of work
I'm about to release this port of my remark-lint rule plugin for validating YAML markdown frontmatter with JSON schemas.
The recent addition of Markdown to official ESLint parsers is a blast!
Was silky smooth to build, freeing time to add improvements to the old code
github.com/JulianCatald...
TypeScript 5.9 Beta just went out! Try it in your project and let us know what you think:
devblogs.microsoft.com/typescript/a...
Rizzed DX for Custom & Standard HTML Elements in @solidjs.com JSX:
👉 Always fresh MDN for Standard Tag/Attr/Event
👉 attr:/bool:/prop:/on:/on proxy
👉 Attr/Prop/Event (TS, JSDoc, Completion, Go-to-Def,…)
👉 Slots Completion
👉 Unknown Tag, Excess Attr (even w. hyphen)
👉 Custom/Standard Props for Style
Seamless @vuejs.org/Custom Element integration🧩
💡 Hover Quick Info
👉 Tag
👉 Standard attr
👉 Attr
👉 Prop
👉 Custom CSS prop
👉 Std. event binding
👉 Event binding
👉 Method binding override
👉 Ref binding
🧩 Auto complete
👉 Custom CSS prop
🔍 Semantic Diagnostic
👉 Std. attr
👉 Attr
👉 Prop
👉 Custom CSS prop
Custom HTML Elements + Svelte = 💕 Realtime DX
💡 Hover Quick Info
👉 Standard attr
👉 Attr
👉 Prop
👉 Standard event binding
👉 Event binding
👉 Reference binding
🧩 Auto Completion
👉 Tag
👉 Attr
👉 Custom CSS prop
🔍 Semantic Diagnostic
👉 Unknown attr
👉 Attr
👉 Prop
🧑💻 Realtime analysis enabling these language features in @astro.build files:
💡 Hover Quick Info
👉 Custom element tag
👉 CE standard attribute
👉 CE attr
👉 CE custom CSS property
🔍 Semantic Diagnostic
👉 CE unknown attr
👉 CE attr
👉 CE custom CSS prop
👉 CE unknown custom CSS prop
More details to come…
Import maps are a great way to minimize cache invalidation in your module tree. But up until recently, they had a ton of sharp edges. So we fixed them!!
shopify.engineering/resilient-im...
Today we're announcing previews of the native port of TypeScript! These nightly previews will be available on npm and the VS Code marketplace!
npm install -D @typescript/native-preview
npx tsgo --version
Read up more on our blog!
Node 24 (LTS) is out! With URLPattern built-in support.
That's one less dependency for HTTP server routers that use the URLPattern (like the Gracile one).
Here's a nice Lit tip 💡:
Let's say you want to hide some DOM but preserve component state. You can do this with the cache() directive:
Here when showView is toggled from true to false back to true, the DOM fragment for the expression is extracted, saved, and restored - preserving all the state.
been working on this proof of concept, it's a node based UI library (à-la React Flow), with Custom Elements and TC39 standard signals (Lit signals and signal-utils).
Comes with a built-in theme, based on WebAwesome/Shoelace, and a handful of demo nodes to play with ^^
github.com/JulianCatald...
You’re right. It’s all about choices! In my case, light mode in high luminosity environments, and dark when it’s not. Otherwise it’s blindening 😎
Thanks for the reading
Same thing with Dark Mode.
It was an accessibility must for a long time, then it became some sort of "cool trend", but somehow a dispensable bonus.
I forgot one thing that had bitten me in the past : Syntax highlighting, in VSCode, is more prone to break on huge, complicated files. Breaking them up can help pinpoint oddities.
Often I don't get what's triggering colours weirdness.