Hugo Campos's Avatar

Hugo Campos

@hugocampos.bsky.social

Senior Software Engineer at the Esri R&D Center in Zurich. Working on the ArcGIS Maps SDK for JavaScript. Typescript, CSS, Web Components, WebGL, GIS. He/Him

370 Followers  |  736 Following  |  99 Posts  |  Joined: 09.11.2024  |  2.6063

Latest posts by hugocampos.bsky.social on Bluesky

Preview
Announcing Vitest 4.0 Vitest 4.0 Release Announcement

Vitest 4 is out!

- Browser Mode is Stable
- Visual Regression Testing
- Improved Debugging
- Pool Stabilization
- New APIs
- Bug Fixes

Stay updated with our blog post:

vitest.dev/blog/vitest-4

22.10.2025 15:43 β€” πŸ‘ 248    πŸ” 56    πŸ’¬ 3    πŸ“Œ 5
Post image

βš“ Oxlint now supports plugins written in JavaScript βš“

Developers can customize and extend Oxlint using JavaScript, but at a speed approaching Rust, due to 'raw transfer' between Rust and JS, and other breakthroughs

Many ESLint plugins can run without any modification.

Read the full postπŸ‘‡

20.10.2025 11:19 β€” πŸ‘ 123    πŸ” 15    πŸ’¬ 6    πŸ“Œ 2

ECMAScript excitement πŸ˜‰

Congrats to proposal champion Dan Minor @mozilla.org on shipping the TC39 Stage 3 Upsert proposal in Firefox 144 πŸŽ‰

let map = new Map();
map.getOrInsert(key, defaultVal);

It lets you set a default value on a map key without overwriting an existing value πŸ‘

14.10.2025 19:06 β€” πŸ‘ 43    πŸ” 3    πŸ’¬ 0    πŸ“Œ 0

inherit() is going to be absolutely huge for working with CSS custom properties. Two big things it'll enable:

Nested indentation:

--indent: calc(inherit(--indent, 0) + 1);

Overridable design token defaults:

--primary-color: inherit(--primary-color, blue);

14.10.2025 14:23 β€” πŸ‘ 61    πŸ” 17    πŸ’¬ 7    πŸ“Œ 0

Just tried the latest beta and, compared with beta 32, bundling our ArcGIS Maps SDK goes from 5s to 4s πŸš€ And watch mode is also working well on Mac. Let’s go!!!

03.10.2025 12:12 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
React 19.2 – React The library for web and native user interfaces

React 19.2 is now available!

This release includes Activity, useEffectEvent, React Performance Tracks, partial pre-rendering, and more:

react.dev/blog/2025/10...

01.10.2025 21:49 β€” πŸ‘ 211    πŸ” 50    πŸ’¬ 4    πŸ“Œ 11
Video thumbnail

I'm very excited to announce the release of the #WebComponents CLI validator! Now you can validate your web components in your build pipelines.

#html #javascript

01.10.2025 13:08 β€” πŸ‘ 30    πŸ” 10    πŸ’¬ 2    πŸ“Œ 0

Huge! Together with screenshot assertions and other things I’ve seen you cooking, it’s shaping up to be an epic release!

01.10.2025 06:50 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Vitest Next generation testing framework powered by Vite

Next version of Browser Mode now also support playwright's trace viewer natively. Just pass down `--browser.trace=on`: main.vitest.dev/guide/browse...

30.09.2025 14:34 β€” πŸ‘ 32    πŸ” 4    πŸ’¬ 3    πŸ“Œ 1
Preview
Specification, speed and (a) schedule 356, 11.16 and a future 0.1.0 ?

New post on big general type-checker improvements. How `specification.md` can be used to test both features and performance. And perhaps what is up for version 0.1.0...

24.09.2025 20:29 β€” πŸ‘ 15    πŸ” 3    πŸ’¬ 1    πŸ“Œ 1
Preview
Quiet UI A UI library for the Web with a focus on accessibility, longevity, performance, and simplicity.

So much for a soft launch…the cat's out of the bag. I just hope it doesn't get my mascot. πŸ˜…

quietui.org 🐭

Built from scratch, I've released my personal creative outlet under a source-available license for folks to use and learn from.

I’d love to hear what you think!

24.09.2025 22:02 β€” πŸ‘ 89    πŸ” 17    πŸ’¬ 6    πŸ“Œ 0
Preview
Whimsical Animations Learn how to create charming interactions and delightful touches using the magic of CSS, JavaScript, SVG, and Canvas. I’m sharing all my tricks in this one!

We’re live!! My brand-new course, β€œWhimsical Animations”, is now available. πŸ₯³πŸŽ‰

whimsy.joshwcomeau.com

I’m so excited to share all of my animation tools and techniques with y’all. πŸ˜„

24.09.2025 14:56 β€” πŸ‘ 305    πŸ” 102    πŸ’¬ 18    πŸ“Œ 41
Preview
Enable `noUncheckedSideEffectImports` by default by RyanCavanaugh Β· Pull Request #62443 Β· microsoft/TypeScript #62442 doesn't seem to be going well Fixes #62421

TypeScript excitement πŸ˜‰

TS 6.0 will enable "noUncheckedSideEffectImports" by default πŸŽ‰

This increases type safety by erroring if you try to import a non-existent file.

Thanks for @arnaud-barre.bsky.social for pitching & @searyanc.dev for manually coding the PR πŸ‘

github.com/microsoft/Ty...

22.09.2025 20:10 β€” πŸ‘ 34    πŸ” 3    πŸ’¬ 0    πŸ“Œ 0

ECMAScript excitement πŸ˜‰

Next week's TC39 meeting has a packed agenda:

πŸ”Ό Amount
πŸ”Ό Array.prototype.pushAll
πŸ”Ά AsyncContext
πŸ”Ά Await Dictionary
πŸ”Ό Import Bytes
πŸ”Ά Intl Era Month Code
πŸ”Ό Iterator Chunking
πŸ”Ά new Global()
πŸ”Ό Non-extensible applies to private
πŸ”Ό Promise Adoption
πŸ”Ό Promise Predicate
πŸ”Ά Temporal

20.09.2025 11:17 β€” πŸ‘ 93    πŸ” 14    πŸ’¬ 8    πŸ“Œ 2

This is incredible! Honestly, sometimes I don’t even point folks to MDN and the like anymore - I just point them to your blog posts πŸ₯‡

18.09.2025 16:41 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

From the latest articles by @una.im & @ishadeed.com on CSS Anchor Positioning, I realized it’s not just for menu and tooltips.

una.im/follow-the-a...
ishadeed.com/article/anch...

It’s more like position: relative across DOM. Like you can make a floating :focus.

15.09.2025 13:11 β€” πŸ‘ 6    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
Preview
Release v5.0.0 Β· sindresorhus/type-fest Breaking This package is now pure ESM. Please read this. Require TypeScript 5.9 b5b0214 Require Node.js 20 cc2b0f2 Reminder: type-fest requires strict: true in your tsconfig. StringKeyOf: Rename t...

type-fest 5 is out! πŸš€

(essential TS types)

Strictness helpers:
- ExtendsStrict
- ExcludeStrict
- ExtractStrict

Checks:
- IsUnion
- IsOptional
- IsNullable

Key-level checks:
- IsOptionalKeyOf
- IsReadonlyKeyOf
- IsRequiredKeyOf
- IsWritableKeyOf

And lots of bug fixes!

github.com/sindresorhus...

13.09.2025 19:33 β€” πŸ‘ 38    πŸ” 2    πŸ’¬ 1    πŸ“Œ 1
Preview
Color Shifting in CSS β€’ Josh W. Comeau A little while ago, I was trying to animate an element’s background color, so that it cycled through the rainbow. Seems easy, but it turns out, browsers have a surprisingly big limitation when it comes to color processing! In this tutorial, we’ll dig into the issue, and I’ll share a couple of strategies you can use to work around this limitation.

A while back, I was building a particle animation, and I ran into some weird issues. The particles were turning grey, mid-animation. And sometimes, they wouldn’t change color at all!

Turns out, there’s a pretty big limitation with color transitions. I share some solutions in my brand-new post!

08.09.2025 19:52 β€” πŸ‘ 57    πŸ” 11    πŸ’¬ 3    πŸ“Œ 3

Rolldown drops CJS support!

From the latest version of @rolldown.rs (1.0.0-beta.36) on, Rolldown will only be released in the ESM format.

The required Node version has also been bumped to align with @vite.dev (20.19+ and 22.12+). Node 18 has been dropped due to being EOL since April.

08.09.2025 12:40 β€” πŸ‘ 85    πŸ” 7    πŸ’¬ 5    πŸ“Œ 2
Video thumbnail

Looks like CesiumJS just released a new Martian data set on Cesium Ion! Controls and rendering work out-of-the-box with 3d-tiles-renderer, as well. Mars rover integration coming... someday? πŸ€–

Demo link below πŸ‘‡

#threejs #webgl #gis #nasajpl #3dtiles

04.09.2025 00:40 β€” πŸ‘ 8    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
An intro to manual slot assignment – Nathan Knowler

Composition with the Shadow DOM is more powerful than you think. You can do a lot with the default named slot assignment, but manual slot assignment is a pathway to many abilities some consider to be… unnatural.</emperor-palpatine>

03.09.2025 20:13 β€” πŸ‘ 33    πŸ” 11    πŸ’¬ 2    πŸ“Œ 0
Post image Post image

About 10 months ago I benchmarked the most popular bundlers to compare build speed and bundle size (tree-shaking + minification).

I just re-ran the tests with the latest versions to see what’s changed πŸ‘‡

25.08.2025 21:40 β€” πŸ‘ 16    πŸ” 1    πŸ’¬ 2    πŸ“Œ 1
Preview
Misconceptions about CSS Specificity To remove some of the confusion, here’s a list of misconceptions about Specificity in CSS …

From the archives: β€œMisconceptions about CSS Specificity”

- Misconception 1: Specificity is a decimal score
- Misconception 2: Using the style attribute (β€œinline styles”) adds Specificity
- Misconception 3: Using !important adds Specificity

bram.us/2024/05/05/m...

26.08.2025 08:03 β€” πŸ‘ 36    πŸ” 7    πŸ’¬ 1    πŸ“Œ 0
Preview
Announcing Rspack 1.5 - Rspack Fast Rust-based web bundler

Rspack v1.5.0 is out! πŸŽ‰

⚑️ Barrel file optimization
⚑️ Faster file system watcher
⚑️ Smaller installation size
πŸ’ͺ Extending Rspack with Rust
πŸ’ͺ Type re-export analysis

And many exciting new features...

Read more in our blog:
rspack.rs/blog/announc...

26.08.2025 11:10 β€” πŸ‘ 37    πŸ” 8    πŸ’¬ 0    πŸ“Œ 2
Preview
a man with curly hair and glasses says uh... what Alt: a man with curly hair and glasses says uh... what
26.08.2025 16:36 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Enable `--strict` mode by default Β· Issue #62333 Β· microsoft/TypeScript Background Almost a decade ago, we began to add certain options beyond --noImplicitAny and --strictNullChecks. Flags like --strictFunctionTypes, --noImplicitThis, and --strictBindCallApply have bee...

Just filed an issue to turn `--strict` on by default in TypeScript.

Maybe it's a little bit ambitious, but I'm excited for us to try this one. πŸ˜„

github.com/microsoft/Ty...

25.08.2025 16:27 β€” πŸ‘ 122    πŸ” 15    πŸ’¬ 9    πŸ“Œ 4

πŸŽ‰ Preact 11 beta is here! After years of thoughtful development, we're delivering major improvements with minimal breaking changes. Better hydration, forward refs by default, and performance upgrades - all while maintaining the stability you love about Preact X.

22.08.2025 13:54 β€” πŸ‘ 88    πŸ” 17    πŸ’¬ 2    πŸ“Œ 1

View Transitions are enabled by default in Firefox Nightly, so they're on their way to stable. Give it a test with your current transitions, and give me a shout if anything doesn't look right.

21.08.2025 08:16 β€” πŸ‘ 239    πŸ” 41    πŸ’¬ 10    πŸ“Œ 6
Preview
The JavaScript Oxidation Compiler A collection of high-performance JavaScript tools written in Rust

Announcing Oxlint Type-Aware Preview

oxc.rs/blog/2025-08...

17.08.2025 04:55 β€” πŸ‘ 145    πŸ” 18    πŸ’¬ 2    πŸ“Œ 7
feat: multithread linting by fasttime Β· Pull Request #19794 Β· eslint/eslint Prerequisites checklist I have read the contributing guidelines. What is the purpose of this pull request? (put an &quot;X&quot; next to an item) [ ] Documentation update [ ] Bug fix (template)...

Why is no one talking about this PR that brings multi-threaded linting to eslint itself 🀯

Tried it out on the @sentry.io codebase and it yields an instant 35% time reduction with `--concurrency=2` in CI πŸ”₯

This is fantastic πŸš€

13.08.2025 11:47 β€” πŸ‘ 126    πŸ” 15    πŸ’¬ 7    πŸ“Œ 1

@hugocampos is following 19 prominent accounts