Nmn's Avatar

Nmn

@nmn.sh.bsky.social

1,261 Followers  |  276 Following  |  990 Posts  |  Joined: 03.05.2023  |  2.1078

Latest posts by nmn.sh on Bluesky

I miss this from Flow all the time. Typescript is such a big downgrade for this reason alone. And I hate it the most because the type system could support it easily, but JSX has shitty typedefs.

11.02.2026 03:29 โ€” ๐Ÿ‘ 7    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Lol

07.02.2026 05:36 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image 05.02.2026 21:38 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Link Area Delegation (Explainer) | Open UI Open UI

Hereโ€™s a proposal to make this easier:

open-ui.org/components/l...

05.02.2026 21:36 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Intrigued if it can help me work on @stylexjs.bsky.social while spending less time.

04.02.2026 22:21 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

If youโ€™d like to chat more about this or otherwise Iโ€™d be happy to.

DMs always open!

04.02.2026 19:48 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

The TLDR is that setState in React is usually asynchronous. So you need some kind of hook to detect when React is done applying the changes.

The slightly longer issue is that with Suspense and Transitions, you sometimes want to wait for async operations.

Doing all this in userland is very tricky.

04.02.2026 19:48 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

You *can* make โ€ฆ.

(Really wish bsky had editable posts!)

04.02.2026 19:44 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Thatโ€™s the main thing I noticed too!

04.02.2026 19:40 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I think trying to advertise changing the handle to their domain as something desirable.

โ€œMove from yourhandle.bsky.social to yourhandle.eurosky.social !!!โ€

I donโ€™t know why someone would want to, but that seems to be what theyโ€™re selling.

04.02.2026 19:34 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

One argument could be that custom domains are not free. But a subdomain is.

04.02.2026 19:25 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

@chriscoyier.net I would have be happy to chat and explain why view transitions donโ€™t work reliably without using the <ViewTransition> component.

You make things work slightly better by waiting for a layoutEffect (and resolving a promise) but even that has its limits.

04.02.2026 19:18 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0
Preview
Google Cloudโ€™s customer chief returns to Microsoft as head of security Hayete Gallot previously spent nearly 16 years at Microsoft in senior leadership roles across engineering and sales.

Google Cloudโ€™s customer chief returns to Microsoft as head of security. Hayete Gallot previously spent nearly 16 years at Microsoft. She's taking over from Charlie Bell, who Satya Nadella has asked to take on a new role. Details ๐Ÿ‘‡ www.theverge.com/news/873930/...

04.02.2026 17:29 โ€” ๐Ÿ‘ 29    ๐Ÿ” 4    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Why should reach for grid when flex does the job?

I grid when I need it but default to flexbox when both could work.

04.02.2026 02:12 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

BlueSky probably uses Flexbox intentionally so it works with React Native that only recently added support for grid layouts.

04.02.2026 02:08 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Yeah that might work.

<style id=โ€œall-cssโ€>
@import atomic from โ€œ/global.cssโ€;
</style>

<template>
<style>
@import โ€œ#all-cssโ€;
</style>
</template>

Do we even need @sheet for this if I just want all the same CSS? All we need is the ability to @import an ID.

02.02.2026 20:40 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I think thatโ€™s just how the video is.

02.02.2026 18:57 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

If there was a way to import all css from root, maybe that would work.

Or if the ID could be used to importing where the id is on a link tag itself.

02.02.2026 17:41 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

I donโ€™t think @sheet helps with my gripes.

One issue is that bundlers like Vite will add a hash to the name of the css file and update the <link> tag in the HTML file but not in the various shadow doms which may even be rendered dynamically.

@sheet is cool for other use-cases, sure.

02.02.2026 17:41 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

bsky.app/profile/nmn....

02.02.2026 05:05 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

bsky.app/profile/nmn....

02.02.2026 05:04 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I wrote about what I think is wrong or missing with the web component APIs.

Thereโ€™s probably many more nice-to-haves that could be added, but I wanted to focus on what feels like the most obvious issues.

nmn.sh/blog/2026-02...

02.02.2026 05:04 โ€” ๐Ÿ‘ 8    ๐Ÿ” 0    ๐Ÿ’ฌ 6    ๐Ÿ“Œ 2

Fair.

01.02.2026 22:08 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

The web component APIs are some of the worst web APIs added within the last decade. Sharp edges. Surprising behaviour. You can tell them were rushed.

Maybe Iโ€™ll write an article with a list of changes I think could make them usable without significant downsides.

01.02.2026 21:49 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 1

"who cares if it's slop it works code doesn't matter" isn't a good way to sell ai

im producing cleaner codebases than ever because of ai

now i can actually refactor everything when we find a better way of doing something

before shitty code just lingered forever

01.02.2026 20:00 โ€” ๐Ÿ‘ 97    ๐Ÿ” 6    ๐Ÿ’ฌ 6    ๐Ÿ“Œ 1
Video thumbnail

Still the greatest video ever made. Sorry. I don't make the rules...

29.01.2026 22:19 โ€” ๐Ÿ‘ 757    ๐Ÿ” 307    ๐Ÿ’ฌ 23    ๐Ÿ“Œ 33
Inside Out

Inside Out

30.01.2026 06:11 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

โ€œAgentic Webโ€ is a BS term. Itโ€™s just agents using the web. Itโ€™s not some new kind of web.

29.01.2026 23:07 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

โ€œUgliest of allโ€

29.01.2026 17:44 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I have a 16E for work and it lasts almost a week between charges! Again mostly because I barely use it.

27.01.2026 06:27 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@nmn.sh is following 19 prominent accounts