Sebastian Markbåge
@sebmarkbage.calyptus.eu
React · Next.js · Vercel
I moved to Bluesky for higher quality content that I’m more aligned with which is true to some extent. However I realized what I really like about it is *less* content and that I like zero even better. So I think I’m getting off of Bluesky as well. I didn’t need better social media but none.
April 24, 2025 at 5:56 AM
I moved to Bluesky for higher quality content that I’m more aligned with which is true to some extent. However I realized what I really like about it is *less* content and that I like zero even better. So I think I’m getting off of Bluesky as well. I didn’t need better social media but none.
Tbh, I like the AI DJ voice on Spotify trained on Xavier Jernigan. It adds value over just randomly playing tracks.
April 2, 2025 at 11:29 PM
Tbh, I like the AI DJ voice on Spotify trained on Xavier Jernigan. It adds value over just randomly playing tracks.
Reposted by Sebastian Markbåge
React 19.1 enables Server Components in Parcel with React Stable (not only canary)! Just released Parcel v2.14.3 with the corresponding update. 🥳
March 29, 2025 at 4:22 AM
React 19.1 enables Server Components in Parcel with React Stable (not only canary)! Just released Parcel v2.14.3 with the corresponding update. 🥳
You can pass sub-classed Promises to React such as in use() with the fields status and value or reason.
This allows React synchronously read the value without waiting on a microtask. This is much faster but it also ensures compat when someone needs flushSync().
Microtasks are bad, mkay.
This allows React synchronously read the value without waiting on a microtask. This is much faster but it also ensures compat when someone needs flushSync().
Microtasks are bad, mkay.
March 21, 2025 at 2:49 AM
You can pass sub-classed Promises to React such as in use() with the fields status and value or reason.
This allows React synchronously read the value without waiting on a microtask. This is much faster but it also ensures compat when someone needs flushSync().
Microtasks are bad, mkay.
This allows React synchronously read the value without waiting on a microtask. This is much faster but it also ensures compat when someone needs flushSync().
Microtasks are bad, mkay.
New York, New York, New York so good they named it thrice+.
New York County is Manhattan.
New York City is larger than the county and includes the five boroughs.
New York State includes all of them.
The city is Manhattan, i.e. New York County.
The Tri-State area is the New York metropolitan area.
New York County is Manhattan.
New York City is larger than the county and includes the five boroughs.
New York State includes all of them.
The city is Manhattan, i.e. New York County.
The Tri-State area is the New York metropolitan area.
March 14, 2025 at 2:54 PM
New York, New York, New York so good they named it thrice+.
New York County is Manhattan.
New York City is larger than the county and includes the five boroughs.
New York State includes all of them.
The city is Manhattan, i.e. New York County.
The Tri-State area is the New York metropolitan area.
New York County is Manhattan.
New York City is larger than the county and includes the five boroughs.
New York State includes all of them.
The city is Manhattan, i.e. New York County.
The Tri-State area is the New York metropolitan area.
Man, I love mainstream health science so much. It’s just so simple when you ignore all the made up stuff from influencers.
March 8, 2025 at 3:05 AM
Man, I love mainstream health science so much. It’s just so simple when you ignore all the made up stuff from influencers.
I've been working through a lot of browser bugs lately but tbh I wouldn't trade it for less ambitious work from browser vendors.
I can do a lot more with a buggy API than no API at all.
I can do a lot more with a buggy API than no API at all.
March 7, 2025 at 2:55 AM
I've been working through a lot of browser bugs lately but tbh I wouldn't trade it for less ambitious work from browser vendors.
I can do a lot more with a buggy API than no API at all.
I can do a lot more with a buggy API than no API at all.
Asking an AI "Are you sure?" to get a better result is this generation's "Millennial pause".
February 28, 2025 at 9:53 PM
Asking an AI "Are you sure?" to get a better result is this generation's "Millennial pause".
The new iOS 18.4 Beta is the first on-device build that has working Scroll-Driven Animations on iPhone. It's not on by default there yet.
Unfortunately, it feels a little jittery. Like the frame-rate isn't quite right or something it getting rounded to integers.
bsky.app/profile/bram...
Unfortunately, it feels a little jittery. Like the frame-rate isn't quite right or something it getting rounded to integers.
bsky.app/profile/bram...
🤩 Scroll-Driven Animations got switched on by default in WebKit!
github.com/WebKit/WebKi...
This means that the next Safari Technolgy Preview release should have it, and that a stable release might follow soon 🤤
ℹ️ Learn all about SDA over at scroll-driven-animations.style
github.com/WebKit/WebKi...
This means that the next Safari Technolgy Preview release should have it, and that a stable release might follow soon 🤤
ℹ️ Learn all about SDA over at scroll-driven-animations.style
Turn on Scroll Driven Animations by default by nmoucht · Pull Request #40646 · WebKit/WebKit
c5b7f26
Turn on Scroll Driven Animations by default
https://bugs.webkit.org/show_bug.cgi?id=287733
rdar://144887859
Reviewed by Antoine Quint.
Turn on Scroll Driven Animations by default.
* Sour...
github.com
February 24, 2025 at 8:45 PM
The new iOS 18.4 Beta is the first on-device build that has working Scroll-Driven Animations on iPhone. It's not on by default there yet.
Unfortunately, it feels a little jittery. Like the frame-rate isn't quite right or something it getting rounded to integers.
bsky.app/profile/bram...
Unfortunately, it feels a little jittery. Like the frame-rate isn't quite right or something it getting rounded to integers.
bsky.app/profile/bram...
Chrome DevTools is now going to ignore list `node:` by default.
github.com/ChromeDevToo...
This is great news for using Chrome Inspector to inspect servers (like the Next.js server). If you've added custom rules and moved away from the default. I recommend adding ^node: to your ignore list.
github.com/ChromeDevToo...
This is great news for using Chrome Inspector to inspect servers (like the Next.js server). If you've added custom rules and moved away from the default. I recommend adding ^node: to your ignore list.
Ignore node internals by default, remove bower_components · ChromeDevTools/devtools-frontend@326c069
Bug: 382453615
Change-Id: Ib1625fb44e25ab32a09080276edabe6cb951389e
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6175018
Commit-Queue: Eric Leese <leese@c...
github.com
January 15, 2025 at 4:31 PM
Chrome DevTools is now going to ignore list `node:` by default.
github.com/ChromeDevToo...
This is great news for using Chrome Inspector to inspect servers (like the Next.js server). If you've added custom rules and moved away from the default. I recommend adding ^node: to your ignore list.
github.com/ChromeDevToo...
This is great news for using Chrome Inspector to inspect servers (like the Next.js server). If you've added custom rules and moved away from the default. I recommend adding ^node: to your ignore list.
View Transitions are basically magic. Not in the sense that it just works. It's trying to model showmanship in a way that breaks the physics of the rendering engine. It's like semi-transparent ghosts walking through walls. That's why it has to break out of the normal layout and painting flow.
🪄
🪄
January 9, 2025 at 5:21 PM
View Transitions are basically magic. Not in the sense that it just works. It's trying to model showmanship in a way that breaks the physics of the rendering engine. It's like semi-transparent ghosts walking through walls. That's why it has to break out of the normal layout and painting flow.
🪄
🪄
Now that the dust has settled on the funny naming of the experimental Taint APIs. Have you tried them? Did you find them useful? Did they help protect against any mistakes?
react.dev/reference/re...
react.dev/reference/re...
en.wikipedia.org/wiki/Taint_c...
react.dev/reference/re...
react.dev/reference/re...
en.wikipedia.org/wiki/Taint_c...
December 13, 2024 at 5:51 PM
Now that the dust has settled on the funny naming of the experimental Taint APIs. Have you tried them? Did you find them useful? Did they help protect against any mistakes?
react.dev/reference/re...
react.dev/reference/re...
en.wikipedia.org/wiki/Taint_c...
react.dev/reference/re...
react.dev/reference/re...
en.wikipedia.org/wiki/Taint_c...
I'm working on built-in profiling of both Client and Server Components in Chrome DevTools Performance tab. Thanks to the new performance.measure() extensions. h/t Andrés Olivares
This works in any RSC environment. In fact, this screenshot is running RSC for Parcel. h/t @devongovett.bsky.social
This works in any RSC environment. In fact, this screenshot is running RSC for Parcel. h/t @devongovett.bsky.social
December 12, 2024 at 4:25 AM
I'm working on built-in profiling of both Client and Server Components in Chrome DevTools Performance tab. Thanks to the new performance.measure() extensions. h/t Andrés Olivares
This works in any RSC environment. In fact, this screenshot is running RSC for Parcel. h/t @devongovett.bsky.social
This works in any RSC environment. In fact, this screenshot is running RSC for Parcel. h/t @devongovett.bsky.social
If you use auth with refresh tokens that have automatic reuse detection. I.e. if an auth token is expired, you can request a new one using the refresh token only once. How do YOU on your site deal with the race condition where opening multiple tabs/requests at once logs the user out? Not at all?
November 10, 2024 at 4:54 AM
If you use auth with refresh tokens that have automatic reuse detection. I.e. if an auth token is expired, you can request a new one using the refresh token only once. How do YOU on your site deal with the race condition where opening multiple tabs/requests at once logs the user out? Not at all?
Catch the gotcha?
This cache entry is specific to only a specific user because it uses the current user to compute its output. It means the current user must be part of the cache key otherwise this cache entry could leak between users.
"use cache" handles this automatically for closures.
This cache entry is specific to only a specific user because it uses the current user to compute its output. It means the current user must be part of the cache key otherwise this cache entry could leak between users.
"use cache" handles this automatically for closures.
November 1, 2024 at 2:57 PM
Catch the gotcha?
This cache entry is specific to only a specific user because it uses the current user to compute its output. It means the current user must be part of the cache key otherwise this cache entry could leak between users.
"use cache" handles this automatically for closures.
This cache entry is specific to only a specific user because it uses the current user to compute its output. It means the current user must be part of the cache key otherwise this cache entry could leak between users.
"use cache" handles this automatically for closures.
Don't sleep on this.
While we do have some static parameterization for storage location. We don't actually want dynamic parameterization in the cache directive. That would be too early. It should be able to parameterize it using the content of the function and only that.
nextjs.org/blog/our-jou...
While we do have some static parameterization for storage location. We don't actually want dynamic parameterization in the cache directive. That would be too early. It should be able to parameterize it using the content of the function and only that.
nextjs.org/blog/our-jou...
November 1, 2024 at 2:41 PM
Don't sleep on this.
While we do have some static parameterization for storage location. We don't actually want dynamic parameterization in the cache directive. That would be too early. It should be able to parameterize it using the content of the function and only that.
nextjs.org/blog/our-jou...
While we do have some static parameterization for storage location. We don't actually want dynamic parameterization in the cache directive. That would be too early. It should be able to parameterize it using the content of the function and only that.
nextjs.org/blog/our-jou...
I missed having 90% @danabra.mov in my feed.
October 31, 2024 at 3:09 PM
I missed having 90% @danabra.mov in my feed.