Founder's Log #6: Thoughts on fullstack frameworks

Published on: | by Billy Lapatas

Recently we had to build a couple of small web apps for our startup and I tried using Next.js for a simple proof of concept and SvelteKit for a bit more complex console app.

I am very familiar with React and SolidJS so initially I thought Next.js would be a straightforward choice, but it turned out to have some quirks that made me question my decision.

The main problem I encountered is a very well known one with Next.js: separation of concerns. It is not clear at all how the server-side and client-side code is split and the most annoying thing with Next.js is that you cannot have client components underneath a server component. I would expect it to be way more straightforward especially with all my React background but it felt like I was hitting a brick wall every step of the way.

On the contrary, SvelteKit made things much simpler and easier for me. The separation of concerns is very clear from the get-go and you can have client components wherever you want without any restrictions. The server-side code is clearly separated in its own *.server.js files which was like a breath of fresh air after dealing with Next.js.

Another thing that was a very good surprise was that SvelteKit requires almost no boilerplate code in order to work. You just have the bare minumum JS logic to go along with your component and you are good to go. No need for complex state managers, loaders, hydration concerns etc etc.

I have yet to see how the app will look as we introduce more complexity but I have to say so far I am very happily surprised by SvelteKit and I look forward to work more with it.