Jay Freestone
banner
jayfreestone.com
Jay Freestone
@jayfreestone.com
A fullstack software engineer living & working in East London.

jayfreestone.com
Reposted by Jay Freestone
Since people seem to interested in alternative Server Component architectures, might as well publish the source. These documents are rough, basically brain dumps. But I think thanks to Tanstack there is interest.

"Isomorphic First Framework"
hackmd.io/@0u1u3zEAQAO...
Isomorphic First Framework - HackMD
Seeing the reception to SvelteKit Remote functions and Tanstack Start I realize I probably should codify the architecture we designed on stream.
hackmd.io
October 31, 2025 at 8:03 PM
Missed that this was even coming, very neat!

react.dev/reference/re...

Solves a longstanding pain point with `useEffect`.
useEffectEvent – React
The library for web and native user interfaces
react.dev
October 3, 2025 at 6:43 AM
Reposted by Jay Freestone
TIL: the "sync" in @react.dev's useSyncExternalStore isn't for "synchronise", it's for "synchronous".

As: it's not for synchronising against an external store,

It's for synchronously (ie: disabling concurrent features) updating against a store's changes.

h/t @tkdodo.eu 🤯
September 19, 2025 at 2:10 PM
Reposted by Jay Freestone
🚀 Good news, everyone: GraphQL now supports OneOf input objects (aka input unions)!

This long-requested feature is a small change that packs a big return for developers, making schemas more expressive and APIs easier to use. Read all about it 👉
graphql.org/blog/2025-0...
September 4, 2025 at 6:34 PM
Zod’s new Codecs feature looks pretty neat - easy bidirectional transformations:

colinhacks.com/essays/intro...
Introducing Zod Codecs
colinhacks.com
August 25, 2025 at 11:05 AM
This looks pretty great: remix.run/blog/rsc-pre...
React Router RSC Preview
React Router's preview support for React Server Components is now available
remix.run
May 16, 2025 at 5:52 PM
Reposted by Jay Freestone
If you ever wanted to use `sizes=auto` and were bummed out about Safari/Firefox support, Shopify now got a polyfill for ya! github.com/Shopify/auto...
GitHub - Shopify/autosizes: A sizes=auto polyfill
A sizes=auto polyfill. Contribute to Shopify/autosizes development by creating an account on GitHub.
github.com
May 8, 2025 at 10:35 AM
Reposted by Jay Freestone
@danabra.mov just dropped a blog post in the comments where he points out why RSCs effectively solve the problems a number of disparate technologies were created to solve (but can fall short). High quality content.
May 3, 2025 at 4:20 PM
Reposted by Jay Freestone
This is delightful. I was totally expecting it to not work on mobile, but it does!

thirty-five.com/overengineer...
Overengineered anchor links - 35®
Learn about the 'overengineered anchoring' pattern, a technique to improve the user experience of scrollable content.
thirty-five.com
April 3, 2025 at 3:38 PM
Reposted by Jay Freestone
This is my entire life
March 17, 2025 at 1:53 AM
If you’re using React Hook Form, the new lenses addon makes it miles easier to create strongly typed reusable fields:

github.com/react-hook-f...

Got rid of so many generics with this, and everything is still typed properly.
GitHub - react-hook-form/lenses: The library's composable lens operations make it simple to work with deeply nested structures while maintaining type safety, leading to more maintainable and reusable ...
The library's composable lens operations make it simple to work with deeply nested structures while maintaining type safety, leading to more maintainable and reusable form components. - react-h...
github.com
March 15, 2025 at 6:41 AM
Funny considering that Go has the least expressive type system known to man, but this is amazing and unexpected news:

devblogs.microsoft.com/typescript/t...
A 10x Faster TypeScript - TypeScript
Embarking on a native port of the existing TypeScript compiler and toolset to achieve a 10x performance speed-up.
devblogs.microsoft.com
March 11, 2025 at 5:40 PM
Reposted by Jay Freestone
“Introducing command and commandfor” by @keithamus.social

This is one of the most exciting additions to the web platform in a while, in my opinion. Opens many opportunities from the get-go, but also opens many good opportunities in the future.

developer.chrome.com/blog/command...

#html #js #web
Introducing command and commandfor  |  Blog  |  Chrome for Developers
Learn about the new capabilities for declarative behavior on buttons.
developer.chrome.com
March 9, 2025 at 6:23 AM
Reposted by Jay Freestone
This new library does seem interesting.
A more powerful, easily chainable kind of class mixins...?
www.reddit.com/r/typescript...
From the typescript community on Reddit: Introducing Traits-TS: Traits for TypeScript Classes
Explore this post and more from the typescript community
www.reddit.com
March 6, 2025 at 10:25 PM
This is a great tip to avoid having to set ‘as const’ on a thousand separate string inputs in TypeScript:

pawelgrzybek.com/infer-type-o...
Infer type of a function argument as const in TypeScript | pawelgrzybek.com
TypeScript infers literal types from function arguments of primitive types and creates more general types for complex data structures. There may be a situation when you need a stricter type of inferen...
pawelgrzybek.com
March 5, 2025 at 8:00 AM
Didn’t know this:

> For React refresh to work correctly, your file should only export React components.

github.com/vitejs/vite-...

There’s an ESLint rule and everything:
github.com/ArnaudBarre/...
vite-plugin-react/packages/plugin-react at main · vitejs/vite-plugin-react
The all-in-one Vite plugin for React projects. Contribute to vitejs/vite-plugin-react development by creating an account on GitHub.
github.com
March 1, 2025 at 2:10 PM
Reposted by Jay Freestone
Great post today from a former NYT dev who traced the history of the widespread `useIsomorphicLayoutEffect` snippet back through multiple libs...

and identified "a React-Redux maintainer" as the main source that everyone copied.

Uh. Hi. Yes. That'd be me :)

smoores.dev/post/no_such...
smoores.dev - There’s no such thing as an isomorphic layout effect
There’s something off about the most popular approach to quieting React’s warnings about using layout effects during server-side rendering. Let’s break down why the warning exists, and when it really ...
smoores.dev
February 26, 2025 at 2:03 AM
Reposted by Jay Freestone
💡 CSS Tip!

Save this one line of code for the future!

css-tip.com/center-upper...

No more hacky code trying to remove those spaces above and below an uppercase text. You can easily have a perfect centering for the text!

#CSS
February 24, 2025 at 11:49 AM
Reposted by Jay Freestone
📢 We're finally looking to ship Observables in Chrome!! It's been a long time coming—many thanks to all in the community for the great feedback and help along the way!!

Especially @benlesh.bsky.social, @keithamus.social, @domenic.me, @jordan.har.band & more! 🙏

groups.google.com/a/chromium.o...
February 21, 2025 at 9:41 PM
Reposted by Jay Freestone
Got this neat suggestion during the Vitest workshop this week.

Wen can technically use `expect.fail` in "onUnhandledRequest" to make MSW actually fail the tests where unhandled requests happen.

This isn't something I recommend as of now but an interesting idea.
February 20, 2025 at 2:03 PM
Reposted by Jay Freestone
Reposted by Jay Freestone
I’ve avoided `text-align: justify` for years. Do modern #CSS properties unlock its potential? cloudfour.com/thinks/justi...

#Typography #WebDesign #WebDev
Justified Text: Better Than Expected?
Do new CSS properties make justified text with automatic hyphenation more viable?
cloudfour.com
January 14, 2025 at 4:52 PM
Late to the party but this was a fascinating listen:

podcasts.apple.com/gb/podcast/8...

Wild to think that at this scale it was cheaper to just rewrite Webpack in Rust.
860: Module Federation Microfrontends with ByteDance’s Zack Jackson
Podcast Episode · Syntax - Tasty Web Development Treats · 13/12/2024 · 1h 11m
podcasts.apple.com
January 14, 2025 at 8:43 AM
Reposted by Jay Freestone
🌠 A long-requested CSS feature is the ability to transition height between a known value (`height: 20rem`) and a derived one (`height: auto`).

A new global CSS property makes this possible now. 😄

html {
interpolate-size: allow-keywords;
}

More info in thread 🧵
January 7, 2025 at 4:09 PM