Pacem JS is a CustomElements-v1 based ecosystem for
reusable web components.
It is meant to run in a web page inside a browser. More precisely, a ES2015 compliant browser (i.e. Chrome, Firefox, Opera, Edge, ...). No, IE11 is not supported.
It follows the MVVM Pattern and has its own binding syntax.
It is built with TypeScript.
Furthermore, it does not need to be "fully componentized" (i.e. no all-inclusive root node) in order to work: it comes with on-the-fly bindings and autonomous bootstrap.
First of all, I (Cristian Merighi) have no more time to spend switching from a technology trend to another, then to another other, and so on and so forth...
definitely out of jQuery, and having learned to love the MVVM pattern years before (with WPF and Silverlight), I stumbled upon KnockoutJS, which was good and I built a piece of my client-side "world" on top of that.
Then came AngularJS, which was better and I rebuilt my previous world plus many others on top of that.
Then came Angular (2+), which was even better and cool having TypeScript as a default programming language, and I rebuilt (took me 1 whole month to learn it and to migrate the code) my whole uninverse on top of that.
That was it!
Furthermore, I (always me) couldn't find anything perfectly fitting my desiderata.
My main concerns are lately about the bloat of dependencies that JS frameworks usually rely on.
Pacem JS has
Imperative bootstrapping imperatively was another discomfort I felt: I wanted it to be automatic.
I then needed something respectful of browsers' standards and close to their native capabilities. Experimenting was another big push and the discovery of TypeScript helped a lot in taking the decision to start.
Please note that:
Pacem JS doesn't want to be adopted, it aims to demonstrate that you can build up your own.
It is not perfect: current v0 stands for that. Born as a prototype, it is still paying for that legacy.
Looks however promising to me, and worthy to play upon.
This documentation site is itself a SPA (and PWA) built with Pacem JS.
inline-styles(almost) impossible to avoid;