Using the Svelte JS library (https://svelte.technology) you can have both: server-side rendered components [1] and compile to web components (custom elements) [2]
Another advantage is that the components compile to vanilla JavaScript, so we don't rely on a runtime library to run the application.