Sebastian Markbåge

@sebmarkbage.calyptus.eu

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

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.

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.

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

Bramus@bram.us · last yr.

🤩 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

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.

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

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

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.

export default async function Posts({ posts }) {
  const user = await getUser((await cookies()).token)
  const getPost = async (postID) => {
    "use cache"
    const post = await loadPost(postID)
    return <div>
      {post.title}
      {post.author.id === user.id ? <Edit id={post.id} /> : ' by ' + post.author.name}
    </div>
  }
  return posts.map(getPost)
}