I’m looking for a meteor performance expert to help with some slow load times for my partner’s website as a birthday present for her - her birthday is April 13th.
My partner spent the past few weeks improving the performance of her application and has made big improvements but she still has some work to do. Here’s the current performance score according to Lighthouse and prior to the recent work she did her Lighthouse performance score was ~18.
To improve the score (from the previous score ~18 to the current score of 40) she worked on SSR and reducing the bundle size but she’s still not happy with how long it takes to load her app, especially on mobile connections.
Ideally I’d like to get her approximately three hours of consulting with a meteor performance expert so that she can get some high level tips on how to make the app faster. My budget is $300-$500, depending on the experience and hourly rate.
Long time to interactive is largely due to loading/parsing large JS bundle, so you most likely need to use bundle visualizer and dynamic imports to split the main JS file.
Maybe just to plug some prerendering with prerender.io would help a lot with barely no work (but a small monthly cost). Her SSR is not too efficient yet if you look at the chrome console.
Also she should use much more compressed images (not as big, compressed), ideally cache them (cloudflare free plan)
If you use Blaze I can help you squeeze your client bundle to ~1MB maybe below and get scores around the 90s.
My strategy is mostly
- delay loading of pages/routes to the point where the router actually needs them (load via dynamic imports), note that your Router needs to be able to handle that
- get rid of node stubs
- adding service worker and minimal pwa compatibility
- use exact code splitting to remove unused code from client bundle
- import only partial code from packages to reduce bundle size
- build scalable i18n to prevent huge translation files to be loaded (article coming soon!)
If you think this could be a fit DM me.
I don’t think Nicole uses Blaze for her frontend - she uses react and it seems from the Blaze docs that Blaze and React fill the same need.
That being said, I suspect your strategies might work without Blaze as well but I’m not anywhere close to an expert in client side performance. If your strategies apply to non-Blaze applications, I’d love to go into more detail with you. I tried to figure out how to DM you but couldn’t figure it out - I can’t find the logo on your profile which I think is how I’m supposed to initiate a private conversation:
Maybe I don’t have enough karma on this site to initiate DMs?
Side by side: First Load (in Safari - left) and Refresh (second load) in Chrome - right hand side.
On the first visit, you don’t get the whole content and on the next visit I think the content is provided from the cacheing done by a web worker.
These images should be under 100kb. They are huge. They could be the main reason for your low score.
I do not see a Meteor bundle and I suspect this is a Next.js project so you probably don’t need a Meteor solution.