Hello,<p>I want to find enthusiastic OSS frontend developers for my JSON data store project[1], which is able to retain the full revision history of a database resource (binary JSON) through small sized copy-on-write snapshots of the main index tree of tries and a novel sliding snapshot algorithm.<p>As I'm a fan of compilers (http://brackit.io) I think either working on the current frontend with Svelte[2], which is currently really dated and uses Sapper or a new frontend using SolidJS would be great.<p>What are the advantages/disadvantages of both frameworks in your opinion? I'm a backend software engineer, but maybe SolidJS is more familiar to frontend devs because of JSX and at least in benchmarks it seems to be faster. But maybe the differences except for the different syntaxes aren't that big.<p>I envision visualizations for comparing revisions of resources or subtrees therein and also to visualize time travel queries. A screenshot of the old frontend: https://github.com/sirixdb/sirix/blob/master/Screenshot%20from%202020-09-28%2018-50-58.png<p>Let me know which framework you'd prefer for the task at hand and what are the advantages/disadvantages in your opinion for both of them in general.<p>If you want to help, it's even better. Let me know :-)<p>[1] https://sirix.io || https://github.com/sirixdb/sirix
[2] https://github.com/sirixdb/sirix-svelte-frontend
I have used Svelte but not SolidJS. I am also interested in this question. I looked at the SolidJS docs, and it seems like the Svelte docs/tutorial (<a href="https://svelte.dev/tutorial/basics" rel="nofollow">https://svelte.dev/tutorial/basics</a>) is more clear and focused.
Svelte has been a dream for me:<p>— Styles are included so you don't need a whole other library for doing styling. Automatic component-scoped CSS is great. You can also include whatever your favorite compile-to-css language is.<p>- It's faster than React because there's no virtual dom. I've run into performance issues a lot with React and not much with Svelte. Never used Solid though.<p>- Less boilerplate. According to this talk, React components translated into Svelte components have around 40% fewer characters: <a href="https://www.youtube.com/watch?v=BzX4aTRPzno" rel="nofollow">https://www.youtube.com/watch?v=BzX4aTRPzno</a> I've definitely noticed writing less code.<p>- Less JS bloat!* The actual Svelte library gets compiled away so you don't need to include e.g. the entire React runtime. *(There _is_ a crossover point when you have many many Svelte components where the bundle size will be more because each components has self-contained duplicated code, but my understanding is that it's pretty high).<p>- Use the HTML/CSS/JS/TS I already know. There's a little "magic" in the compiled reactivity system, but I've found it to be very minimal and easily understandable. I don't have to learn much to be very productive in Svelte.<p>- The interactive documentation. It's stellar. VERY clear and I can change all the examples they give and play around with things to test my understanding. The REPL is also super useful when asking questions to other devs about Svelte: <a href="https://svelte.dev/repl/" rel="nofollow">https://svelte.dev/repl/</a><p>- Batteries included — Styles, animations, transitions, stores... all of these work really well together and I rarely have to go outside of Svelte itself.<p>And SvelteKit is taking all this to the next level with making Svelte available throughout the full stack. Heck, I'm making a SaaS boilerplate built on top of SvelteKit because I love it so much: <a href="https://sveltesaas.com/" rel="nofollow">https://sveltesaas.com/</a><p>Some drawbacks to Svelte:<p>- It's not as popular as React so you're not as well supported when developing.<p>- The reactivity system can be a little magic (for example you can't do array.push() to trigger a reactive update).<p><pre><code> - You have to learn the templating system instead of just using the JS you already know. A little unfortunate, but I honestly kind of like using templates — I don't enjoy JSX at all. I found it only takes like a half hour to learn Svelte's templating anyway.</code></pre>