I had the idea of using Astro to pre-render as much content as possible (like the entire homepage), and keep using Lit for any dynamic content. The biggest advantage of this is speed (and search engine indexing). Users that go to the homepage will only get a small static page, instead of the entire JS bundle for the SPA. Other pages will also see a speed increase and bundle decrease as more content is statically rendered.
Xander mentioned something important I had missed, which is that the repositories page has a slug for the route. Because of this we can't do fully static Astro rendering, but this can be solved by using Astro server-side rendering.
With this, most content and pages will still be statically rendered (with interactive elements), and the repositories page will have some server-side rendering to create the page dynamically
I had the idea of using Astro to pre-render as much content as possible (like the entire homepage), and keep using Lit for any dynamic content. The biggest advantage of this is speed (and search engine indexing). Users that go to the homepage will only get a small static page, instead of the entire JS bundle for the SPA. Other pages will also see a speed increase and bundle decrease as more content is statically rendered.
Xander mentioned something important I had missed, which is that the repositories page has a slug for the route. Because of this we can't do fully static Astro rendering, but this can be solved by using Astro server-side rendering.
With this, most content and pages will still be statically rendered (with interactive elements), and the repositories page will have some server-side rendering to create the page dynamically