Conference speaker and blogger
Typescript, Angular and React Performance
✝️ 4 Children, 2 🐕
👏 @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/ 🔥
@scooper.dev from @ag-grid.bsky.social shares why you should be there!
Our Premium Sponsor @ag-grid.bsky.social offers blazing-fast Charts!
🆓 Free forever
🚀 Built for big data
📊 Financial-ready
🏢 Enterprise features - no trial needed
🔗 ag-grid.com/charts
@scooper.dev from @ag-grid.bsky.social shares why you should be there!
Our Premium Sponsor @ag-grid.bsky.social offers blazing-fast Charts!
🆓 Free forever
🚀 Built for big data
📊 Financial-ready
🏢 Enterprise features - no trial needed
🔗 ag-grid.com/charts
Learn how to avoid common pitfalls in tree-shaking & minification and trim your bundles like a pro. Real tips, real tools, real results. 🚀
📅 Sept 12–13, London
🎟️ angularconnect.com
#AngularConnect
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?
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?
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?
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?
But I haven't thought about that the bundler can mangle the names, because they are private!
All makes sense now... Thank you, @scooper.dev
youtu.be/B8qrGmAbJFU
But I haven't thought about that the bundler can mangle the names, because they are private!
All makes sense now... Thank you, @scooper.dev
youtu.be/B8qrGmAbJFU
Always nice deleting code
Always nice deleting code
And almost always they were saying it via tech support, not via interviews, not via reviews, not via feature-submission forms.
Support == product development
And almost always they were saying it via tech support, not via interviews, not via reviews, not via feature-submission forms.
Support == product development
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...)
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 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-...
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-...
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!
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!
Watch it here⤵️
gitnation.com/contents/wha...
Watch it here⤵️
gitnation.com/contents/wha...
blog.ag-grid.com/whats-new-in...
blog.ag-grid.com/whats-new-in...
tkdodo.eu/blog/ref-cal...
Thank you @gsathya.bsky.social for starting the discussion about this 🙇♂️
Or is this offset by people using deferable components and hydration?
Or is this offset by people using deferable components and hydration?
Validating an Angular 19 app importing AG Grid and get very different bundle size outputs.
Looks like a difference in tree shaking capabilities.
Validating an Angular 19 app importing AG Grid and get very different bundle size outputs.
Looks like a difference in tree shaking capabilities.
🔗 Give it a try stackblitz.com/edit/angular...
🔗 Give it a try stackblitz.com/edit/angular...
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!
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!
What if Angular warns you if you're running change detection too often [configurable] over a given period of time [configurable too] !?
More here 👇
github.com/angular/angu...
#angular
What if Angular warns you if you're running change detection too often [configurable] over a given period of time [configurable too] !?
More here 👇
github.com/angular/angu...
#angular
I dive into different profiling techniques and also look at how Web Vitals Metrics are now available directly in the Chrome Performance Panel.
gitnation.com/contents/per...
I dive into different profiling techniques and also look at how Web Vitals Metrics are now available directly in the Chrome Performance Panel.
gitnation.com/contents/per...
```
const idRef = useRef(null);
const scroller = (node) => {
if (idRef.current === null || idRef.current !== id) {
node?.scrollIntoView({ behavior: "smooth" });
idRef.current = id;
}
};
```
I had to double check it, I hadn't seen this before as part of a framework,
User Types -> Actual Code
I had to double check it, I hadn't seen this before as part of a framework,
User Types -> Actual Code