console icon indicating copy to clipboard operation
console copied to clipboard

🚀 Feature: improve login page core web vitals

Open benmccann opened this issue 1 year ago • 1 comments

🔖 Feature description

Prerender the login page for improved core web vitals

🎤 Pitch

While investigating SvelteKit applications in the wild, I found that AppWrite consoles are written in SvelteKit and fail core web vitals. E.g. here's one such URL: https://auth.lucas-cm.com.br/login

A big contributor to this is that SSR is disabled, so just a blank page loads initially.

This could best be avoided by prerendering the login page.

(Alternately, the largest image on the page could be preloaded and you could render some image, background image, or text while the JavaScript is being fetched rather than leaving the page blank, but this would be more work, a worse user experience, and probably still worse on core web vitals)

👀 Have you spent some time to check if this issue has been raised before?

  • [X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

benmccann avatar Jan 13 '24 02:01 benmccann

If we prerender we'll need to replace the usage of $page.search with something like new URL(location).searchParams

It appears to me that this is deployed using Docker, so the best solution is probably to switch to adapter-node and remove ssr = false. Running adapter-node would probably be much more lightweight than running something like Apache or nginx inside the Docker container.

@TorstenDittmann I see ssr = false was added in https://github.com/appwrite/console/commit/c8065121fdb72095a44daf66c12c0c89fc208b4f, but I'm not sure why. Do you see any issues with removing ssr = false and switching to adapter-node?

benmccann avatar Jan 21 '24 16:01 benmccann