Tom Sherman
banner
tom.sherman.is
Tom Sherman
@tom.sherman.is
Software Engineer in Norwich. he/him

Working on @frontpage.fyi

https://tom-sherman.com
I'm actually on the other panel
November 4, 2025 at 7:44 PM
It's been real
October 31, 2025 at 11:41 PM
woah discover runs on graze????
October 22, 2025 at 2:37 PM
My top 10 if anyone was asking

@jakearchibald.com
October 20, 2025 at 11:28 AM
This is a worse failure mode than anything that exists in React today. I can't even compose things without worrying about when they call update
October 15, 2025 at 5:59 PM
On the other hand this is potentially the worst UX in all of Bluesky right now
October 14, 2025 at 8:41 PM
Yeah I wasn't creating a new abort controller and setting it in the ref, I also wasn't discarding the result of getCities when the transition was aborted

Still left with a TODO which made me realise you can't totally abstract this pattern away, what you show on abort is specific to each use case
October 14, 2025 at 2:15 PM
Hmmmm, yeah you're right I don't think uAS is doing anything for me here

I reached for it to solve the out of order completion bug but the abort controller itself solves that I think. Just using startTransition and useRef(AbortController) is much simpler
October 14, 2025 at 8:35 AM
@lakshikag.bsky.social FYI your profile appears to be entirely broken, might be some messed up timestamps in some of your posts?
October 10, 2025 at 11:16 AM
@ricky.fm what are you thoughts on this useAbortableAction hook?

useActionState runs the actions in sequence, this allows you to call abort syncronously before calling the action in a transition
October 9, 2025 at 5:32 PM
40ms per poast
October 6, 2025 at 3:59 PM
Certified loser just ordered the loser shoe
September 26, 2025 at 8:47 PM
DIDs don't have multiple identities, they can have multiple handles. The DID is the identity, a handle is like an alias. Sorry this is kinda a nitpick!

As for your question, the spec basically says that apps should ignore all handles except the first one lists in the DID doc.
September 26, 2025 at 12:42 PM
Hmm, maybe I'm holding wrong but this just gives me "RPC session was shut down by disposing the main stub" when i do a second RPC on the client

Or maybe it's a deno-specific issue 🤔
September 26, 2025 at 9:28 AM
So instead, could the gateway multiplex many sessions over a single socket connection to the downstream services?

I have the thing on the left running, could the right design be possible?
September 25, 2025 at 8:42 PM
Looks like something like that can work! The types don't like it but it works at runtime

Requires spinning up many websockets which doesn't feel ideal, especially as they need to be created per client

Between the gateway and services it'd be better to have a single websocket per service somehow
September 25, 2025 at 2:32 PM
It's incredibly easy to wire up in a deno server
September 25, 2025 at 10:25 AM
imagine not supporting these types in the big 2025. common react flight w
September 25, 2025 at 10:00 AM
Might just start posting all of my skate clips here, this game is so good
September 23, 2025 at 9:53 PM
Does anyone know of a JS library that can parse the package.json#repository field and give me a URL?

The thing shown under "repository" in the npm UI
July 22, 2025 at 4:31 PM
This is not normal???
July 17, 2025 at 7:13 PM
@graze.social Pretty sure you can ask the bsky API for this now, think it requires oauth
June 6, 2025 at 11:43 AM
If you weren't aware of FedCM, IMO this would be such a good UX for atproto login. No entering handles (after the first time)
May 17, 2025 at 8:02 PM
I seem to use this pattern a lot with React form actions so thought I'd suggest adding it to the docs

github.com/reactjs/react.de…
April 30, 2025 at 2:13 PM
Just shipped some UX improvements to @frontpage.fyi login ✨

Those in the mycosphere can login without typing anything

Self hosters can login by entering their PDS URL

Also allows signups! You can signup to any (open) PDS (including bsky.social) without creating a Bluesky profile
April 28, 2025 at 7:49 PM