Oliver Ash
oliverjash.me
Oliver Ash
@oliverjash.me
Head of Web at Unsplash
Reposted by Oliver Ash
Cannot think of even one single time I've ever wanted to "paste with formatting"
November 21, 2025 at 4:38 PM
How do you do local storage in React in 2025?

All of the examples I've found so far either break the rules of React (e.g. impure state initializers) or use `useSyncExternalStore` which has poor performance and doesn't interop well with transitions.
November 21, 2025 at 11:51 AM
Reposted by Oliver Ash
The GitHub PR “N hidden items, Load more…” UI is one of the *most* annoying things about its interface—and that says something! When I am working with a large, long-running PR (and yes, there are valid reasons for those!) I’d like to just be able to read the whole dang thing, please and thank you!
November 20, 2025 at 12:54 PM
Reposted by Oliver Ash
My #BazelCon 2025 talk about how Canva used isolatedDeclarations to greatly improve typecheck performance
youtu.be/26CoMExb6FE
Improving Bazel TypeScript Type-Checks With IsolatedDeclarations - Brad Zacher, Canva
YouTube video by BazelCon
youtu.be
November 14, 2025 at 8:48 PM
Reposted by Oliver Ash
Out-of-order HTML patching, another proposal from TPAC, lets HTML be presented non-linearly, and a single file can update multiple parts of the page.

Would this feature be useful to you?
November 19, 2025 at 4:10 PM
Reposted by Oliver Ash
My favorite thing about infinite scroll is when your connection hiccups and nothing else will load so you have to reload the entire page and scroll a dozen times just to get to where you were so you can start the fuck over and hope your connection doesn’t hiccup again.
November 18, 2025 at 9:36 PM
Reposted by Oliver Ash
Down detector is down because it can't verify that I'm human because Cloudflare is down
November 18, 2025 at 11:52 AM
I have a spare ticket up for grabs to see the brilliant Beans on Toast tonight in Bedford. Any takers?

open.spotify.com/artist/6fVeX...
Beans on Toast
open.spotify.com
November 12, 2025 at 5:19 PM
Reposted by Oliver Ash
VS Code pro-tip: check the `@id:chat.disableAIFeatures` setting.

(It’s more getting in the way than helping me, so better to just get rid of it all together)
November 6, 2025 at 3:54 PM
Reposted by Oliver Ash
Some birdy (thanks @tunetheweb.com) told me that Chrome supports split views behind a flag. 😲 Good stuff!

chrome://flags#side-by-side
November 2, 2025 at 3:16 PM
Reposted by Oliver Ash
#PerfNow request throttling is behind a flag in Canary right now, you can enable it in chrome://flags. But please be aware it's not fully feature complete yet and still being worked on! However it is coming to Chrome stable in the future 🙂
October 30, 2025 at 2:44 PM
Reposted by Oliver Ash
I am looking for a full-time job.

Being independent in open source for 3.5+ years has been wonderful. I've gotten done most of the high-level goals I wanted to, and miss having people & structure around me.

If you know of a role for a staff-level TypeScript+web developer, let me know! 🙂
October 30, 2025 at 2:40 PM
Reposted by Oliver Ash
There’s a new type of CSS scroll-state query coming: “scrolled”.

This one remembers the last direction you scrolled into, which you can use to build “hidey bars”: when scrolling down (or having scrolled down), the hidey bar hides itself. When then scrolling back up, the hidey bar reveals itself.
October 22, 2025 at 4:48 PM
Reposted by Oliver Ash
Yeah everyone is hearing about AI in the workplace right now, and everyone has coworkers or bosses that have fallen for the hype of AI

Take a moment to realize how little it’s actually changed the work that needs to be done. How things are progressing largely at the same pace they always have
October 25, 2025 at 5:50 PM
Reposted by Oliver Ash
I think we all know better than to use an accessibility overlay because they are complete rubbish, but that doesn’t stop stakeholders asking to cheat with one.

This fact sheet will give you the facts to rightly, fight back.

overlayfactsheet.com/en/
Overlay Fact Sheet
An open letter about accessibility overlays.
overlayfactsheet.com
October 21, 2025 at 3:04 PM
Reposted by Oliver Ash
✨ New post

There is a lot of chatter about the CSS resets recently. Here is my take. Enjoy 🫶

“The CSS Reset, again”

pawelgrzybek.com/the-css-rese...

#css
The CSS Reset, again | pawelgrzybek.com
Apparently you are not a real CSS dev if you don’t maintain your own CSS reset. Challenge accepted! Not a typical reset, but for sure a bunch of opinions.
pawelgrzybek.com
October 18, 2025 at 1:00 PM
Reposted by Oliver Ash
⚛️ReactConf once again mentioned concurrent stores. What if I tell you, we have concurrent external stores today? (kinda)

My latest blog post explains:
👉 How to to pair `useSyncExternalStore` with `useDeferredValue` (and `useMemo`)
⚡ Why this can improve UX & INP during hydration
October 17, 2025 at 4:15 PM
Can anyone explain this behaviour with `useEffectEvent`? I'm seeing stale closures which I thought should never happen?

stackblitz.com/edit/github-...
Remix-run - React Router Templates - StackBlitz
Run React Router Templates Minimal created by Remix Run on StackBlitz
stackblitz.com
October 11, 2025 at 8:07 PM
@ricky.fm 👋 Hey Ricky, loved your talk! Is there somewhere I can find the demo code to play around?
October 11, 2025 at 1:34 PM
Reposted by Oliver Ash
AI coding sucks

CJ just one-shotted a 15 min rant and it's incredibly refreshing.

www.youtube.com/watch?v=0ZUk...
AI Coding Sucks
YouTube video by Syntax
www.youtube.com
October 9, 2025 at 4:33 PM
Reposted by Oliver Ash
We’ll get there 😂
October 9, 2025 at 12:53 PM
@en-js.bsky.social 👋 Do you know what changed between babel-plugin-react-compiler 19.1.0-rc.3 and 1.0.0? I can't find a changelog anywhere… I'm asking because our bundle size has increased again and I'd like to understand why (presumably better memoization).
October 9, 2025 at 12:22 PM
I'm trying to combine React Actions + useOptimistic + React Query but I'm seeing some odd behaviour. What's going on here?

I suspect it's because React Query uses useSyncExternalStore. Does that mean it's incompatible with Actions?

codesandbox.io/p/sandbox/re...

cc @tkdodo.eu @ricky.fm
October 8, 2025 at 11:42 PM
Reposted by Oliver Ash
Reposted by Oliver Ash
Last week, I had the immense honor of speaking at one of my favorite events, @beyondtellerrand.com. (🤯)

My talk “Painting With the Web” is now available on YouTube. I hope you like it! 🤗💚

www.youtube.com/watch?v=1Pq7...
Matthias Ott – Painting With the Web – beyond tellerrand Düsseldorf 20025
YouTube video by beyond tellerrand
www.youtube.com
May 16, 2025 at 11:52 AM