's Avatar

@souporserious.com

design / systems / compilers / react founder https://www.renoun.dev/

481
Followers
23
Following
41
Posts
04.05.2023
Joined
Posts Following

Latest posts by @souporserious.com

Thank you! LLMs definitely helped a lot, but there were still some tricky edge cases that took a few sleepless nights πŸ˜„

10.01.2026 18:10 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
@renoun/screenshot - Pixel-Perfect CSS Screenshots The screenshot library that actually works. Capture any element with pixel-perfect accuracy including transforms, gradients, clipping, filters, and everything in between.

Play around with the examples below or get started by installing @​renoun/screenshot on NPM www.renoun.dev/screenshot

06.01.2026 16:25 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

Introducing @​renoun/screenshot πŸ“Έ

Capture any HTML element as an image with pixel-perfect accuracy, including modern CSS features.

06.01.2026 16:25 πŸ‘ 1 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0
Preview
Always Accurate Documentation by Travis Arnold As a designer and engineer, I've faced challenges with outdated documentation causing friction and trust erosion. Documentation drift arises from scattered sources and lack of a single reference, lead...

My talk is out! Keeping documentation in sync has always been hard, but now this is crucial to implement as LLMs produce more code that needs to be validated, and it's a lot easier than you think. gitnation.com/contents/com...

01.01.2026 21:38 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

By helping facilitate that everything is derived from actual source code. For example, you can point to code on disk e.g. <CodeBlock path="components/Button.tsx" /> or if you have code snippets within MDX they will all be type-checked based on the closest tsconfig.

10.12.2025 18:53 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

My talk is starting right now! Learn how to use React Server Components to always keep your documentation in sync πŸ”„

01.12.2025 16:52 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
preview of the renoun presentation template

preview of the renoun presentation template

Turning 35 today πŸŽ‰ so I’m shipping something a little early to celebrate.

A premium Next.js + MDX slide deck template for renoun 50% off for a limited time: buy.polar.sh/polar_cl_tLG...

- Record your talk in-browser (camera + slides)
- Convert to MP4
- Keep everything local

26.11.2025 19:13 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Join the souporserious Discord Server! Check out the souporserious community on Discord - hang out with 8 other members and enjoy free voice and text chat.

Join us on Discord if you have any questions discord.com/invite/7Mf4x...

16.10.2025 18:31 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

It's a culmination and testament to React's ability to schedule work efficiently. You can now install one package and start writing accurate, high-quality documentation with a best-in-class developer and user experience.

16.10.2025 18:23 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
import { Directory } from 'renoun'

const posts = new Directory({
  path: 'posts',
  filter: '*.mdx',
})

export async function Page({ slug }: { slug: string }) {
  const post = await posts.getFile(slug, 'mdx')
  const Content = await post.getContent()
  return <Content />
}

import { Directory } from 'renoun' const posts = new Directory({ path: 'posts', filter: '*.mdx', }) export async function Page({ slug }: { slug: string }) { const post = await posts.getFile(slug, 'mdx') const Content = await post.getContent() return <Content /> }

It's been almost five years since React Server Components were announced and three years since we could practically use them.

I could not have built www.renoun.dev without React.

16.10.2025 18:23 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
The following source text with "warn" highlighted in yellow and "error" highlighted in red: console.warn('Warning') console.error('Error')

The following source text with "warn" highlighted in yellow and "error" highlighted in red: console.warn('Warning') console.error('Error')

import { CodeBlock } from 'renoun'

export function Annotations() {
  return (
    <CodeBlock
      language="ts"
      annotations={{
        highlight: ({ children, color }) => (
          <span
            style={{
              padding: '0 0.05em',
              borderRadius: '0.25rem',
              backgroundColor: color,
            }}
          >
            {children}
          </span>
        ),
      }}
    >
      {`
        console./* <highlight color='rgba(255,213,0,0.35)'> */warn/* </highlight> */('Warning')
        console./* <highlight color='rgba(255,0,0,0.35)' /> */error('Error')
      `}
    </CodeBlock>
  )
}

import { CodeBlock } from 'renoun' export function Annotations() { return ( <CodeBlock language="ts" annotations={{ highlight: ({ children, color }) => ( <span style={{ padding: '0 0.05em', borderRadius: '0.25rem', backgroundColor: color, }} > {children} </span> ), }} > {` console./* <highlight color='rgba(255,213,0,0.35)'> */warn/* </highlight> */('Warning') console./* <highlight color='rgba(255,0,0,0.35)' /> */error('Error') `} </CodeBlock> ) }

Annotations for code blocks usually require writing regexes to target specific source code and don't stay in sync easily. Working on something new using inline JSX comments. Highly flexible, declarative, and exposes annotations as renderers you can do whatever you want with.

12.10.2025 20:27 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
renoun - The Documentation Toolkit for React The renoun toolkit uses your React framework to keep documentation polished, in sync, and on brand.

renoun has taken a long time to build because I run into every single issue it's trying to solve for the documentation site. It feels good to finally talk about now though, I'm really happy with where the API is. The changelog is quite the history of where it has been so far πŸ˜„ renoun.dev/changelog

10.10.2025 21:50 πŸ‘ 4 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

It's fully composable through React Server components that work with any bundler and ships everything you need in one package: syntax highlighting, support for multiple themes, advanced API references, table of contents, and a full-featured file system utility that works with each component.

10.10.2025 20:22 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Thank you, Josh! 😊

08.10.2025 22:31 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
renoun - The Documentation Toolkit for React The renoun toolkit uses your React framework to keep documentation polished, in sync, and on brand.

Excited to officially launch renoun.dev πŸš€

This has been years in the making to deliver a focused set of components, hooks, and utilities in React for building great documentation exactly to your standards that always stay in sync.

08.10.2025 17:50 πŸ‘ 20 πŸ” 3 πŸ’¬ 2 πŸ“Œ 1

Is Promise.all necessary when returning an array of promises as children or will Suspense/SuspenseList essentially optimize this?

I also noticed iterator maps work as well which is so nice! Would be great to document this as well.

31.07.2025 21:41 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Documenting inversion of control could help here instead of baking it in:
const transition = useTransition()
<Button transition={transition}>...</Button>

Then if it's not defined the Button works as normal.

31.07.2025 21:36 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Yeah, it's super limited and tedious to manage this way. Hopefully we'll get first-class support for classes and more advanced overloading someday.

16.07.2025 18:38 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
TS Playground - An online editor for exploring TypeScript and JavaScript The Playground lets you write TypeScript or JavaScript online in a safe and sharable way.

You can kind of accomplish this using assertions on getters and then "this" parameter for methods www.typescriptlang.org/play/#code/M...

16.07.2025 00:28 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

This will be a much nicer onboarding experience overall, thank you for contributing all of these fixes! πŸ™

25.06.2025 20:06 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

So exciting! I felt like this was always a huge hinderance to adopting MDX in App Router.

24.06.2025 21:41 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Mastery Hides Labor At clarity, effort vanishes. Friction is gone. Genius looks obvious. That invisibility is the work.

Reminds me of this vv.xyz/ideas/12b00e...

28.05.2025 16:10 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
GitHub - souporserious/packlink: A simple and reliable way to test pnpm packages locally without publishing. A simple and reliable way to test pnpm packages locally without publishing. - souporserious/packlink

Made a small CLI that does exactly this that makes it a little easier github.com/souporseriou...

25.05.2025 17:56 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Waaaaaaaah!!! Chinese American Bear Β· EP Β· 2025 Β· 6 songs

The new Chinese American Bear EP. It's slowed down versions of their previous songs, but it's good. open.spotify.com/album/0rCKf5...

23.05.2025 23:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I don't think that's exclusive to RSC, we've always needed to guard those calls with something like "typeof document !== undefined" if it is initially server rendered.

22.05.2025 16:49 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
GitHub - souporserious/renoun: The Documentation Toolkit for React The Documentation Toolkit for React. Contribute to souporserious/renoun development by creating an account on GitHub.

github.com/souporseriou...

22.05.2025 00:16 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Love this! I've wanted to explore variants for posts like a free version and then more in-depth paid version. It's more work obviously, but thinking there would be more incentive to go deeper.

11.04.2025 07:38 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Just implemented this on one of my projects and it cleaned up so much, thank you!

25.03.2025 02:36 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
ts-morph - Structures

More on structures here ts-morph.com/manipulation...

25.03.2025 02:34 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
ts-morph navigation - StackBlitz Starter project for Node.js, a JavaScript runtime built on Chrome&#39;s V8 JavaScript engine

Yeah, sorry tsxmod isn't really helpful yet. You can code golf with a chat app, but if I understand what you're after you probably want to use structures and prune out any info you don't care about. Whipped up something to start with here stackblitz.com/edit/stackbl...

25.03.2025 02:32 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0