🌸 April 2024: ESLint 9, React 19 and TS 5.5 Betas, Signals
Hey front end platform fam!
Hope you all had a lovely April. I’m definitely noticing myself getting happier as the days get longer. On the front end platform side of things, I worked on a tooling overview page for the site. You can get a sense of the current ecosystem and browse by category. Check it out here.
Now let’s review what happened this past month.
April Highlights
The next major version of ESLint is here. ESLint v9 makes the new flat config the default. Check out the migration guide for the full list of breaking changes.
The React team released the Beta for React 19. There’s several new hooks and APIs, such as
use
,useOptimistic
,useActionState
, as well as support for Server Components. React 19 also improves existing APIs, e.g. simplifyingforwardRef
and context providers. Check out the React 19 Beta upgrade guide as well as thetypes-react-codemod
repo for codemods. The React team recommends upgrading to 18.3 as an intermediate step, which adds warnings for deprecated APIs.April was a big month for Betas. On top of the React 19 Beta, we also have the TypeScript 5.5 Beta which brings us the much awaited Inferred Type Predicates feature (deep dive on the making of this feature). 5.5 also disables a number of options that were marked as deprecated in 5.0. They will do nothing starting 5.5 and be removed entirely in 6.0.
There’s a new TC39 proposal for JavaScript Signals that aims to provide infrastructure for managing reactive application state. Give it a try in this JS playground.
Tooling Roundup
Biome 1.7 adds the ability to easily migrate from ESLint in a single command.
Bun 1.1 brings support for Windows.
Astro 4.7 brings improvements to the Dev Toolbar API and makes it easier to keep your project up-to-date.
Node released version 22 as well as security updates for 18, 20, and 21.
Cypress adds new accessibility features.
Shadcn adds Lift Mode to Blocks, which makes it easy to lift smaller components from blocks to copy and paste.
pnpm 9.0 improves the lockfile format and resolution of peer dependencies.
There’s an open conversation on changes to configurations for the next major version of typescript-eslint.
Vitest 1.5 is released as well as a new official Vitest VS Code extension.
Stylelint 16.4 adds
no-unknown-custom-media
and updates/fixes several existing rules.React Native 0.74 adds Yoga 3.0, batched
onLayout
updates (New Architecture), and Yarn 3 as the default package manager for new projects.The Tailwind playground now has support for v4.
Deno 1.43 improves language server performance.
Articles and Guides
HTML, Accessibility, and Design Systems
HTML
popover
AttributeDon’t use the maxlength attribute to stop users from exceeding the limit
Managing User Focus with
:focus-visible
Demystifying Screen Readers: Accessible Forms & Best Practices
CSS and Styling
Help Webkit invent CSS Grid Level 3, aka “Masonry” layout and An alternative proposal for CSS masonry
Performance and Testing
Infrastructure and Architecture
Tooling
React
Productivity and Documentation
Miscellaneous
That's all for now, folks! đź‘‹
Got thoughts or questions? I'd love to hear from you. My DMs @fe_platform are open.
Enjoyed what you've read? Do the ultimate good deed – pass it on to a friend who'd love it as much as you did!