Could you please list the boxes that you were ticking?
For example, how many boxes would the following tick:
- Preact with htm (tiny, looks very similar to ficus) [0]
- LitElement (tiny, very close to native web components) [1]
- Svelte (the darling of many since recently) [2]
[0] - https://github.com/developit/htm[1] - https://lit-element.polymer-project.org/
[2] - https://svelte.dev/
- https://modern-web.dev/docs/dev-server/overview/
- Which would allow testing and builds (if go that route)
- Seems that you can use any renderer (uhtml, lit-html,htm, Preact), so what-ever I learn will be useable outside the Ficus eco-system
- Event Bus: Use this model in another project and worked well.
- Stores: not sold on the whole redux pattern, but want to learn abit more about global stores to update components
- Was in analysis paralysis before finding Ficus and the more I learned the more confused on what I should try next.
- Mostly needed to make a decision as I want to dabble with Web-Components but seems starting from scratch is too low level so pick something just a tad higher than that.
Thanks for helping me understand my own decision.Generally, I think an import specifier rewriting dev server like Web Dev Server is the way to go since it'll work with so many other libraries out there.
https://github.com/unrelentingtech/es-module-devserver
which is a tiny middleware that uses regexps to accomplish the task instead of dragging in a JS parser :)
1. Works more or less out of the box. You'll maybe need to set 5 or 6 CLI arguments but that's it
2. It's super speedy (sub-second in our case)
I can see the argument for JSX being more flexible, given that you can store little bits of JSX in js expressions, something you typically cannot do with the other component frameworks. But tools like svelte have their own DX improvements that make things like state management / reactivity arguably a lot easier than React.
Right that’s the DSL part. But TypeScript understands it out of the box, and you can write the same expressions without the DSL by calling the pragma function directly (which I’ll often do for some tooling code that needs to run without a build step).
> But tools like svelte have their own DX improvements that make things like state management / reactivity arguably a lot easier than React.
Part of the reason I mentioned JSX rather than React. There are great libraries with similar state and reactivity facilities that work with JSX (for example Solid). The cool thing about JSX is that it’s not tightly coupled to any particular implementation.
No typescript then, eh?
Edit: ... if you're getting serious about standard web components per se.
Overall it's done a good job but I still find the build system somewhat esoteric (there are a number of different approaches and it took some effort to figure out the right one for our use case).
I have noticed development has slowed down over the past couple months: https://github.com/ionic-team/stencil/graphs/commit-activity
Hoping it's more a case of it approaching maturity as opposed to it being neglected...