Earlier quoted context omitted.
Thanks a lot! Here's the basic stack: • Rails API • Vue SPA w/ ViteJS • MySQL • K8s on Digital Ocean • Cloudflare worker + caching • Bento for emails • Algolia for search / filters I wouldn't recommend using a client-side rendered application for a project like this though... that was a mistake. Tons of headaches with SEO, social media sharing etc.
Can you explain more about these headaches? So far i'm still convinced of client side SPAs :D
Google does this (but it's still not ideal). Most other crawlers don't. That means they won't see your rendered content.
This becomes an issue with sharing on social media, because your meta tags won't be read properly. If you share a blog post on Twitter for example, it won't be able to fetch your og:image, title etc so it won't look good.
To fix that, you have to use prerendering or server-side rendering. I'm doing hacky stuff with prerendering inside a Cloudflare worker where it detects that it's a crawler and prerenders the page if so.
SPAs also tend to have slow initial load times, which is becoming increasingly important for SEO. You can't avoid at least one additional network call after loading the initial HTML, and if you're not careful you can end up with chained requests for different components etc.
For sites like mine that rely on SEO and social media, it's a pretty big annoyance.