Stephen Cooper

@scooper.dev

Senior Developer AG Grid @ag-grid.bsky.social Conference speaker and blogger Typescript, Angular and React Performance ✝️ 4 Children, 2 🐕

🤔 What if there were a conference without talks? Just hanging out with OSS maintainers & builders, seeing what they’re working on, and learning cool stuff by actually talking to people. 🤯 What if hallway track turned into the whole event! 💡 @tannerlinsley.com is exploring it. Interested? ⬇️

Web Forge Conf - A new kind of web developer conference

A community funded, not for profit event built for creators and the developers who use their work. Less stage. More story. All signal.

webforgeconf.com

It was a pleasure to be able to speak and share what I had learnt while reducing the bundle size of AG Grid.

Angular Connect@angularconnect.com · 11mo ago

A huge thank you to our Premium Sponsor @ag-grid.bsky.social for powering Angular Connect 2025! 🚀 👏 @scooper.dev inspired us with his talk “A Practical Guide to Reducing Bundle Size” 👏 James Swinton-Bland impressed with the power of AG-Charts at the booth Check out 👉 www.ag-grid.com/charts/ 🔥

With an Angular app that includes an Angular lib I am seeing different bundle sizes based on changes in the versions used. Lib 17 + app 19 smaller than lib 18 + app 19 But lib 20 + app 20 is significantly smaller than both. No code changes, just package.json Is this expected / known about?

I am in the process of evaluating the changes in React performance between v18 and v19. Prod fairly stable. Dev 19 is significantly slower. I know we should never measure performance in Dev but in reality a lot of developers are doing just that! Has anyone else noticed this?

Does anyone know of a tool that can run over a Typescript code base and suggest possibly unused public methods? What to automate the process of finding unused methods following code changes with the aim of minimal bundle size. (I don't fancy doing find for 500 that are marked public...)

I am relieved to see this view point expressed from a testing authority as this is what we have started telling people in support. I can't imagine the time that has been lost to unexpected test failures, especially when "it works fine in my browser" www.epicweb.dev/why-i-won-t-...

Why I Won’t Use JSDOM

Explore how JSDOM's browser simulation works, and learn front-end testing approaches using Vitest Browser Mode for direct browser testing and native APIs

epicweb.dev

I spent yesterday converting a load of AG Grid Angular examples to use signals. I love the DX and how easy it has become to enable OnPush with confidence. computed - the way you can just use signals and let Angular take care of the dependency updates is 🔥! Good work @angular.dev team!

Anyone experienced a different bundle size output with the new Angular esbuild builder as opposed to the webpack one? Validating an Angular 19 app importing AG Grid and get very different bundle size outputs. Looks like a difference in tree shaking capabilities.

Busy writing codemods for the next major release of AG Grid so that we can land some of the biggest changes in a major yet. And when I say biggest, these changes will enable some of the smallest bundle sizes yet. Looking like a possible 40% reduction based on the features actually used!

Today I learnt that @vuejs.org can, (what feels like magic) take a Typescript interface and turn that into property coercions for a component's properties! I had to double check it, I hadn't seen this before as part of a framework, User Types -> Actual Code