Julian Cataldo's Avatar

Julian Cataldo

@juliancataldo.com

Web artisan. I do HTML, (S)CSS, JS+TS, Lit, React, Node, Vue, Astro… https://github.com/JulianCataldo

90
Followers
491
Following
48
Posts
14.02.2024
Joined
Posts Following

Latest posts by Julian Cataldo @juliancataldo.com

Preview
GitHub - gracile-web/babel-plugin-jsx-to-literals: A JSX to tagged template literals Babel plugin, with a few helper components and a mapped JSX namespace. A JSX to tagged template literals Babel plugin, with a few helper components and a mapped JSX namespace. - gracile-web/babel-plugin-jsx-to-literals

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/...

12.11.2025 17:32 👍 2 🔁 0 💬 0 📌 0
Gecko: Intent to prototype: CSS Module Scripts Gecko: Intent to prototype: CSS Module Scripts

Gecko: Intent to prototype: CSS Module Scripts

21.08.2025 18:18 👍 19 🔁 5 💬 0 📌 0
Post image

Or

"typescript.tsserver.useSyntaxServer": "never",
"editor.foldingStrategy": "auto",
"editor.linkedEditing": true

in a project settings.json, just to try.

12.08.2025 05:16 👍 0 🔁 0 💬 0 📌 0
Preview
Allow toggling `editor.experimental.preferTreeSitter` at runtime · Issue #227141 · microsoft/vscode Currently: If it's disabled and I enable it, nothing changes. I must reload the window. If it's enabled and I disable it, all colors are gone. Enabling it back again does nothing. I must reload the...

Maybe this? `editor.experimental.preferTreeSitter`
github.com/microsoft/vs...

12.08.2025 05:14 👍 0 🔁 0 💬 1 📌 0

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!

09.08.2025 17:11 👍 33 🔁 7 💬 2 📌 2
Preview
GitHub - gracile-web/functional: Lightweight hooks and context primitives for signal-based render trees. Works anywhere a render function can be scoped, with Lit or similar templating libraries. Uses ... Lightweight hooks and context primitives for signal-based render trees. Works anywhere a render function can be scoped, with Lit or similar templating libraries. Uses the TC39 Signal Proposal for i...

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

07.08.2025 20:38 👍 1 🔁 0 💬 0 📌 0
Preview
GitHub - JulianCataldo/remark-lint-frontmatter-schema: Validate your Markdown frontmatter data against a JSON schema — remark-lint rule plugin Validate your Markdown frontmatter data against a JSON schema — remark-lint rule plugin - JulianCataldo/remark-lint-frontmatter-schema

The ported project:
github.com/JulianCatald...

25.07.2025 21:46 👍 1 🔁 0 💬 0 📌 0
Post image Post image

proof of work

25.07.2025 21:45 👍 0 🔁 0 💬 0 📌 0
Preview
GitHub - JulianCataldo/eslint-plugin-markdown-frontmatter-schema: Validate YAML frontmatter in your Markdown files using JSON Schema — right in ESLint. Validate YAML frontmatter in your Markdown files using JSON Schema — right in ESLint. - JulianCataldo/eslint-plugin-markdown-frontmatter-schema

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...

25.07.2025 21:45 👍 4 🔁 1 💬 2 📌 0
Preview
Announcing TypeScript 5.9 Beta - TypeScript Today we are excited to announce the availability of TypeScript 5.9 Beta. To get started using the beta, you can get it through npm with the following command: npm install -D typescript@beta Let’s tak...

TypeScript 5.9 Beta just went out! Try it in your project and let us know what you think:

devblogs.microsoft.com/typescript/a...

08.07.2025 17:46 👍 98 🔁 22 💬 2 📌 4
Video thumbnail

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

02.07.2025 16:17 👍 4 🔁 0 💬 0 📌 0
Video thumbnail

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

29.06.2025 09:50 👍 2 🔁 0 💬 0 📌 0
Video thumbnail

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

28.06.2025 11:37 👍 3 🔁 0 💬 0 📌 0
Video thumbnail

🧑‍💻 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…

27.06.2025 19:54 👍 4 🔁 0 💬 0 📌 0
Preview
Resilient Import Maps - Better Theme Development and Beyond (2025) - Shopify Import maps are great for both performance and developer experience, but their original limitations made them hard to use, especially at Shopify’s scale. We stepped up and pushed changes across the HT...

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...

29.05.2025 12:58 👍 31 🔁 12 💬 1 📌 1
Preview
Announcing TypeScript Native Previews - TypeScript Previews of the native TypeScript port are now available on npm and for VS Code through the Visual Studio Marketplace!

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!

22.05.2025 15:09 👍 398 🔁 92 💬 10 📌 12

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).

06.05.2025 15:51 👍 3 🔁 0 💬 0 📌 0
Post image

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.

24.04.2025 20:41 👍 32 🔁 5 💬 2 📌 0
Post image

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...

09.04.2025 17:16 👍 6 🔁 2 💬 1 📌 0
Preview
JavaScript Temporal is coming | MDN Blog A new way to handle dates and times is being added to JavaScript. Let's take a look at Temporal, what problems it solves, the current state, and what you'll find in the new documentation about it on M...

JavaScript Temporal is coming 🎉

developer.mozilla.org/en-US/blog/j...

(by @bsmth.de)

24.01.2025 09:34 👍 61 🔁 9 💬 0 📌 0

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

22.12.2024 14:35 👍 2 🔁 0 💬 0 📌 0

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.

22.12.2024 13:17 👍 1 🔁 0 💬 1 📌 0

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.

22.12.2024 13:14 👍 0 🔁 0 💬 0 📌 0

ESLint, Prettier, the TS LSP, etc. are going bananas on huge files :p GH won't even display it. Splitting eases the work on the IDE.
It's more about DX, I admit ^^.

22.12.2024 12:57 👍 0 🔁 0 💬 1 📌 0

All this popups are going more and more insane with each major macOS upgrades.

Sometimes, it feels like a maze. Huge productivity killer IMO. I don't want a Windows Vista computing experience 😒

22.12.2024 12:53 👍 2 🔁 0 💬 0 📌 0

why is it in one huge file? Is there a technical reason for this?

22.12.2024 12:47 👍 0 🔁 0 💬 1 📌 0

IIRC think the header logic is missing (for finer control). Nginx will just send the cached response and recalculate it for next requests, but without spamming it (multiple requests at once get fused into one, no unneeded work)

21.12.2024 19:13 👍 1 🔁 0 💬 0 📌 0
Post image
21.12.2024 19:10 👍 1 🔁 0 💬 0 📌 0
Preview
Gracile | Modes: SPA, MPA, SSG, SSR, CSR MPA / SSR is the base on which Gracile is built. You can transform your project for two types of targets: “Server” and “Static”.

Heya Predaytor! Delightful to find you here :)

I'll try to get my hand on a full working example. Meanwhile, here is a snippet: gracile.js.org/docs/learn/u...

21.12.2024 19:10 👍 1 🔁 0 💬 3 📌 0

Most significant Vite major since Vite 2.0 ⚡️
Kudos to everyone who collaborated to make Vite even more flexible! Cheers to the Vite's ecosystem, contributors, and team. Y'all rock 💜

26.11.2024 14:42 👍 124 🔁 19 💬 7 📌 2