Craig Morrison
@craigmorrison.dev
👨🏻💻 Software Engineer
🏴 Glasgow, UK
🏴 Glasgow, UK
Reposted by Craig Morrison
This will probably lead to poor outcomes. For one thing they should be emphasising good html over aria. For another, focusing on aria for llms without considering the actual experience for disabled people, especially if devs are inexperienced, will lead to poor experiences for disabled people
It's neat to see them encourage developers to add ARIA tags to pages though, an "agent" can be thought of as effectively another form of assistive technology
October 23, 2025 at 10:37 AM
This will probably lead to poor outcomes. For one thing they should be emphasising good html over aria. For another, focusing on aria for llms without considering the actual experience for disabled people, especially if devs are inexperienced, will lead to poor experiences for disabled people
Reposted by Craig Morrison
The next version of Storybook will only have one significant breaking change:
Storybook 10 is ESM-only.
Storybook 10 is ESM-only.
September 9, 2025 at 3:48 PM
The next version of Storybook will only have one significant breaking change:
Storybook 10 is ESM-only.
Storybook 10 is ESM-only.
Reposted by Craig Morrison
a common thing i've run into this week:
packages which exhaustively try to cover every possible edge case. but it turns out almost no consumer calls it in a way that would hit those cases
some are 1/4 of the size when you cut those out. sometimes its ok to just... not support things
packages which exhaustively try to cover every possible edge case. but it turns out almost no consumer calls it in a way that would hit those cases
some are 1/4 of the size when you cut those out. sometimes its ok to just... not support things
August 4, 2025 at 8:30 PM
a common thing i've run into this week:
packages which exhaustively try to cover every possible edge case. but it turns out almost no consumer calls it in a way that would hit those cases
some are 1/4 of the size when you cut those out. sometimes its ok to just... not support things
packages which exhaustively try to cover every possible edge case. but it turns out almost no consumer calls it in a way that would hit those cases
some are 1/4 of the size when you cut those out. sometimes its ok to just... not support things
Reposted by Craig Morrison
People *without* executive dysfunction are finding that using chatgpt buries them under multitasking: they have to expend more effort and attention in more tasks to check that it hasn't outputted *absolute fucking nonsense*
May 26, 2025 at 8:09 AM
People *without* executive dysfunction are finding that using chatgpt buries them under multitasking: they have to expend more effort and attention in more tasks to check that it hasn't outputted *absolute fucking nonsense*
Reposted by Craig Morrison
The plugin system is coming soon to Gunshi 🚀! We will also give a completion plugin. Demo is here.
Completion plugin powered by bombshell-dev/tab, Thank you, @bomb.sh team 💚
Completion plugin powered by bombshell-dev/tab, Thank you, @bomb.sh team 💚
July 16, 2025 at 6:47 AM
The plugin system is coming soon to Gunshi 🚀! We will also give a completion plugin. Demo is here.
Completion plugin powered by bombshell-dev/tab, Thank you, @bomb.sh team 💚
Completion plugin powered by bombshell-dev/tab, Thank you, @bomb.sh team 💚
Reposted by Craig Morrison
🚀 Rspack v1.4.8 is out!
We've implemented a Rust watcher to replace the original watchpack package, making HMR ~10% faster.
Combined with lazy compilation for lightning-fast dev experience ⚡
We've implemented a Rust watcher to replace the original watchpack package, making HMR ~10% faster.
Combined with lazy compilation for lightning-fast dev experience ⚡
July 16, 2025 at 6:34 AM
🚀 Rspack v1.4.8 is out!
We've implemented a Rust watcher to replace the original watchpack package, making HMR ~10% faster.
Combined with lazy compilation for lightning-fast dev experience ⚡
We've implemented a Rust watcher to replace the original watchpack package, making HMR ~10% faster.
Combined with lazy compilation for lightning-fast dev experience ⚡
Reposted by Craig Morrison
The Pragmatic Engineer 2025 Survey results are out!
In it:
- Most loved (and hated) tools
- Most-used AI tools
- IDEs and terminals
- Version control, CI/CD
Devs LOVE VS Code, JetBrains IDEs and... Cursor! (and tend to hate JIRA)
Read it here: newsletter.pragmaticengineer.com/p/the-pragma...
In it:
- Most loved (and hated) tools
- Most-used AI tools
- IDEs and terminals
- Version control, CI/CD
Devs LOVE VS Code, JetBrains IDEs and... Cursor! (and tend to hate JIRA)
Read it here: newsletter.pragmaticengineer.com/p/the-pragma...
July 15, 2025 at 4:41 PM
The Pragmatic Engineer 2025 Survey results are out!
In it:
- Most loved (and hated) tools
- Most-used AI tools
- IDEs and terminals
- Version control, CI/CD
Devs LOVE VS Code, JetBrains IDEs and... Cursor! (and tend to hate JIRA)
Read it here: newsletter.pragmaticengineer.com/p/the-pragma...
In it:
- Most loved (and hated) tools
- Most-used AI tools
- IDEs and terminals
- Version control, CI/CD
Devs LOVE VS Code, JetBrains IDEs and... Cursor! (and tend to hate JIRA)
Read it here: newsletter.pragmaticengineer.com/p/the-pragma...
Reposted by Craig Morrison
Spent 7 years in the GraphQL ecosystem. Here's what we got wrong:
❌ POST'ing documents as default
❌ Selling "versionless" APIs as realistic
❌ Ignoring HTTP caching entirely
❌ Making it complex for beginners
✅ The tech is solid. The guidance needs work.
www.jovidecroock.com/blog/graphql...
❌ POST'ing documents as default
❌ Selling "versionless" APIs as realistic
❌ Ignoring HTTP caching entirely
❌ Making it complex for beginners
✅ The tech is solid. The guidance needs work.
www.jovidecroock.com/blog/graphql...
The GraphQL Asterisk Problem: When Benefits Come with Caveats
An exploration of the trade-offs and considerations when using GraphQL and its alternatives.
www.jovidecroock.com
June 30, 2025 at 2:56 PM
Spent 7 years in the GraphQL ecosystem. Here's what we got wrong:
❌ POST'ing documents as default
❌ Selling "versionless" APIs as realistic
❌ Ignoring HTTP caching entirely
❌ Making it complex for beginners
✅ The tech is solid. The guidance needs work.
www.jovidecroock.com/blog/graphql...
❌ POST'ing documents as default
❌ Selling "versionless" APIs as realistic
❌ Ignoring HTTP caching entirely
❌ Making it complex for beginners
✅ The tech is solid. The guidance needs work.
www.jovidecroock.com/blog/graphql...
Reposted by Craig Morrison
Ecma International approves ECMAScript 2025: What’s new?
2ality.com/2025/06/ecma...
#JavaScript #ECMAScript #2ality
2ality.com/2025/06/ecma...
#JavaScript #ECMAScript #2ality
Ecma International approves ECMAScript 2025: What’s new?
On 25 June 2025, the 129th Ecma General Assembly approved the ECMAScript 2025 language specification (press release), which means that it’s officially a standard now. This blog post explains what’s ne...
2ality.com
June 26, 2025 at 1:56 PM
Ecma International approves ECMAScript 2025: What’s new?
2ality.com/2025/06/ecma...
#JavaScript #ECMAScript #2ality
2ality.com/2025/06/ecma...
#JavaScript #ECMAScript #2ality
Reposted by Craig Morrison
After months of polishing, Rspack's incremental build is now stable ⚡️
It's already enabled by default in Rsbuild and and will also be enabled by default in @rspack/core v1.4.
Here's the feedback we just received:
It's already enabled by default in Rsbuild and and will also be enabled by default in @rspack/core v1.4.
Here's the feedback we just received:
June 6, 2025 at 9:51 AM
After months of polishing, Rspack's incremental build is now stable ⚡️
It's already enabled by default in Rsbuild and and will also be enabled by default in @rspack/core v1.4.
Here's the feedback we just received:
It's already enabled by default in Rsbuild and and will also be enabled by default in @rspack/core v1.4.
Here's the feedback we just received:
Reposted by Craig Morrison
Today, I'm excited to announce msw/playwright!
This is a designated integration package for MSW to provide a better developer experience when mocking APIs in Playwright. Check it out.
github.com/mswjs/playw...
This is a designated integration package for MSW to provide a better developer experience when mocking APIs in Playwright. Check it out.
github.com/mswjs/playw...
GitHub - mswjs/playwright: Mock Service Worker binding for Playwright.
Mock Service Worker binding for Playwright. Contribute to mswjs/playwright development by creating an account on GitHub.
github.com
June 5, 2025 at 4:04 PM
Today, I'm excited to announce msw/playwright!
This is a designated integration package for MSW to provide a better developer experience when mocking APIs in Playwright. Check it out.
github.com/mswjs/playw...
This is a designated integration package for MSW to provide a better developer experience when mocking APIs in Playwright. Check it out.
github.com/mswjs/playw...
Reposted by Craig Morrison
when the AI bubble pops and corporations stop forcing AI down our throats i'll miss stuff like this
May 31, 2025 at 2:10 AM
when the AI bubble pops and corporations stop forcing AI down our throats i'll miss stuff like this
Reposted by Craig Morrison
Reading Sahil Lavingia's blog post about working for DOGE and it's just painful how little any of them bothered to learn anything about civic tech. Silicon Valley types thinking they're the first people to name problems and solve them
sahillavingia.com/doge
sahillavingia.com/doge
DOGE Days
My experience joining the United States DOGE Service as a software engineer, and what I learned along the way.
sahillavingia.com
May 29, 2025 at 1:08 AM
Reading Sahil Lavingia's blog post about working for DOGE and it's just painful how little any of them bothered to learn anything about civic tech. Silicon Valley types thinking they're the first people to name problems and solve them
sahillavingia.com/doge
sahillavingia.com/doge
Reposted by Craig Morrison
You won’t find these on the shelf. Newspapers print an AI-generated reading list with fake books. www.niemanlab.org/2025/05/you-...
You won’t find these on the shelf. Newspapers print an AI-generated reading list with fake books.
Ah, summer. The perfect time to get lost in a romantasy — or finally pick up Proust or Middlemarch. The Chicago Sun-Times, the city's second-biggest newspaper, recommended some summer books to its…
www.niemanlab.org
May 24, 2025 at 6:06 PM
You won’t find these on the shelf. Newspapers print an AI-generated reading list with fake books. www.niemanlab.org/2025/05/you-...
Reposted by Craig Morrison
Visual Studio Code Now Supports Baseline: https://web.dev/blog/baseline-vscode
Visual Studio Code now supports Baseline | Blog | web.dev
Learn about the new Baseline support in VS Code
web.dev
May 21, 2025 at 7:44 PM
Visual Studio Code Now Supports Baseline: https://web.dev/blog/baseline-vscode
Reposted by Craig Morrison
As always the problem with AI is that having it work the way anyone wants requires lots of other things to happen that won’t simply just happen
May 19, 2025 at 6:11 PM
As always the problem with AI is that having it work the way anyone wants requires lots of other things to happen that won’t simply just happen
Reposted by Craig Morrison
I came across SO many misconceptions around testing over the years it's eye-opening. No wonder so many devs find themselves lost and then missing the point of testing altogether.
You DON'T need 100% code coverage. You DON'T have to do TDD. You DON'T have fill in the pyramid.
You DON'T need 100% code coverage. You DON'T have to do TDD. You DON'T have fill in the pyramid.
May 18, 2025 at 10:04 PM
I came across SO many misconceptions around testing over the years it's eye-opening. No wonder so many devs find themselves lost and then missing the point of testing altogether.
You DON'T need 100% code coverage. You DON'T have to do TDD. You DON'T have fill in the pyramid.
You DON'T need 100% code coverage. You DON'T have to do TDD. You DON'T have fill in the pyramid.
Imagine waking up to this every day, and how that could shape your view of the world. He’s voluntarily trapped himself in a filler bubble, the fact that he owns the bubble only seems to be making it worse.
www.nytimes.com/interactive/...
www.nytimes.com/interactive/...
What Elon Musk’s X Feed Looks Like (Gift Article)
The New York Times tracked 1,109 accounts that Mr. Musk follows on X to recreate his news feed.
www.nytimes.com
May 16, 2025 at 8:00 AM
Imagine waking up to this every day, and how that could shape your view of the world. He’s voluntarily trapped himself in a filler bubble, the fact that he owns the bubble only seems to be making it worse.
www.nytimes.com/interactive/...
www.nytimes.com/interactive/...
Reposted by Craig Morrison
It was about time, wasn't it? 😅 👇
But now, with Firefox 138 all major browser engines support import attributes to import JSON from within your ECMAScript modules. 👇
✅ Chromium: 123+
✅ Safari: 17.2+
✅ Firefox: 138+ (released 2w ago)
PS. This syntax works in modern Node.js, too!
But now, with Firefox 138 all major browser engines support import attributes to import JSON from within your ECMAScript modules. 👇
✅ Chromium: 123+
✅ Safari: 17.2+
✅ Firefox: 138+ (released 2w ago)
PS. This syntax works in modern Node.js, too!
May 15, 2025 at 10:46 AM
It was about time, wasn't it? 😅 👇
But now, with Firefox 138 all major browser engines support import attributes to import JSON from within your ECMAScript modules. 👇
✅ Chromium: 123+
✅ Safari: 17.2+
✅ Firefox: 138+ (released 2w ago)
PS. This syntax works in modern Node.js, too!
But now, with Firefox 138 all major browser engines support import attributes to import JSON from within your ECMAScript modules. 👇
✅ Chromium: 123+
✅ Safari: 17.2+
✅ Firefox: 138+ (released 2w ago)
PS. This syntax works in modern Node.js, too!
Reposted by Craig Morrison
FOLKS WE DID IT
✅ I'm typing this on @aviva.gay's deer.social
✅ which posted to @alnkq.bsky.social's AppViewLite
✅ which is listening to the @blacksky.app atproto.africa relay
✅ I'm typing this on @aviva.gay's deer.social
✅ which posted to @alnkq.bsky.social's AppViewLite
✅ which is listening to the @blacksky.app atproto.africa relay
May 4, 2025 at 3:52 PM
FOLKS WE DID IT
✅ I'm typing this on @aviva.gay's deer.social
✅ which posted to @alnkq.bsky.social's AppViewLite
✅ which is listening to the @blacksky.app atproto.africa relay
✅ I'm typing this on @aviva.gay's deer.social
✅ which posted to @alnkq.bsky.social's AppViewLite
✅ which is listening to the @blacksky.app atproto.africa relay
Reposted by Craig Morrison
Storybook 9 is now in beta!
It’s ready for you to try today.
Let’s see what’s inside…
It’s ready for you to try today.
Let’s see what’s inside…
Storybook 9 is now in beta
Try the future of UI testing today
storybook.js.org
April 24, 2025 at 8:03 PM
Storybook 9 is now in beta!
It’s ready for you to try today.
Let’s see what’s inside…
It’s ready for you to try today.
Let’s see what’s inside…
Great comparison between two different approaches to CSS.
My thoughts:
1. Performance gaps are often smaller than we think; they either magnify at scale or cancel out like this.
2. The factors affecting results aren't always obvious.
3. Performance matters but it's not the only consideration.
My thoughts:
1. Performance gaps are often smaller than we think; they either magnify at scale or cancel out like this.
2. The factors affecting results aren't always obvious.
3. Performance matters but it's not the only consideration.
New #react #performance investigation, anyone? This time, trying to answer a very existential question 🙈
What is better from the performance perspective: Tailwind or Linaria? 🤔
www.developerway.com/posts/tailwi...
What is better from the performance perspective: Tailwind or Linaria? 🤔
www.developerway.com/posts/tailwi...
Tailwind vs Linaria: Performance Investigation
Investigating performance of Tailwind vs Linaria frameworks, with a focus on initial load and interaction performance.
www.developerway.com
April 23, 2025 at 10:17 PM
Great comparison between two different approaches to CSS.
My thoughts:
1. Performance gaps are often smaller than we think; they either magnify at scale or cancel out like this.
2. The factors affecting results aren't always obvious.
3. Performance matters but it's not the only consideration.
My thoughts:
1. Performance gaps are often smaller than we think; they either magnify at scale or cancel out like this.
2. The factors affecting results aren't always obvious.
3. Performance matters but it's not the only consideration.
Reposted by Craig Morrison
Do the images in your GitHub README look weird in dark mode or light mode? 😬
Here's how to make your Markdown images display perfectly in any theme. 🌓
Here's how to make your Markdown images display perfectly in any theme. 🌓
How to make your images in Markdown on GitHub adjust for dark mode and light mode
When you want your images to look good in Markdown on GitHub, you might have to adjust for the UI around them.
github.blog
April 23, 2025 at 9:01 PM
Do the images in your GitHub README look weird in dark mode or light mode? 😬
Here's how to make your Markdown images display perfectly in any theme. 🌓
Here's how to make your Markdown images display perfectly in any theme. 🌓
I've just seen the X iOS app for the first time in about 2 years. I'm shocked, though I shouldn't be, by how ugly and janky it's become. They've squandered everything Twitter built despite having a userbase large enough to be sticky.
April 23, 2025 at 8:08 PM
I've just seen the X iOS app for the first time in about 2 years. I'm shocked, though I shouldn't be, by how ugly and janky it's become. They've squandered everything Twitter built despite having a userbase large enough to be sticky.
Reposted by Craig Morrison
Today we're sharing that View Transitions and Activity are ready to try in the experimental channel, along with docs and updates on other areas we're actively working on:
react.dev/blog/2025/04...
react.dev/blog/2025/04...
React Labs: View Transitions, Activity, and more – React
The library for web and native user interfaces
react.dev
April 23, 2025 at 3:45 PM
Today we're sharing that View Transitions and Activity are ready to try in the experimental channel, along with docs and updates on other areas we're actively working on:
react.dev/blog/2025/04...
react.dev/blog/2025/04...