Ask HN: Any web frontend library that fallbacks to SSR if JavaScript is missing?
What web frontend frameworks/libraries are available that fallbacks to server-side rendering if JavaScript is unavailable on the client-side?
I can think of Unpoly, but are there any other options available?
15 comments
[ 9.1 ms ] story [ 42.6 ms ] threadBut keep in mind a lot of the interactivity won't work the same.
Generally the page is pre-rendered on the server, and then links are hydrated to prevent page refreshes on navigation. If Javascript is off, the browser does a page refresh when the user clicks links, and the server pre-renders those.
In fact, I think a lot of frameworks can do this now: Qwik, Next, etc.
- There is a SvelteKit clone of Wordle that does not need JS[2] with (video introduction[3])
- I built this SvelteKit app to work without JS: https://multi-launch.leftium.com/
It takes a little effort to ensure your app will work without JS, but SvelteKit tries to make it as easy as possible:
- The first render of your page is done on the server[4]. This ensures the first render has access to JS even if the client doesn't. It's also supposed to decrease the time to first render.
- SvelteKit form actions are designed to work without JS, by default[5].
[1]: https://kit.svelte.dev/docs/form-actions#progressive-enhance...
[2]: https://kit-git-sverdle-svelte.vercel.app/sverdle
[3]: https://www.youtube.com/live/A8jkJTWacow?feature=share&t=290...
[4]: https://kit.svelte.dev/docs/seo#out-of-the-box-ssr
[5]: https://kit.svelte.dev/docs/form-actions
I think Sveltekit makes this easier, but at the cost of being more complex to self-host (you might get tied to Vercel which employs Rich Harris and makes all the Sveltekit SSR stuff "just work" in ways that I'm concerned won't just work if you're not using vercel)
And there are several non-Vercel adapters that should just work (Node, Cloudflare Pages, Cloudflare Workers, Netlify, static site generation)[2].
And even more unofficial adapters[3]!
[1]: https://kit.svelte.dev/docs/adapter-vercel#incremental-stati...
[2]: https://kit.svelte.dev/docs/adapters
[3]: https://sveltesociety.dev/components#adapters
https://nextjs.org/docs/pages/building-your-application/data...
What do you think? Is this what you are looking for?
https://www.elegantframework.com/
https://github.com/elegantframework/elegant-cli