Muut, the company behind a hosted forum and comment service, writes about its product and the Riot.js UI library.
HN commenters mention Muut as a Disqus or Facebook comments alternative, and discuss Riot as a small React-like library.
Craft can handle everything you have described with one caveat:
The "few discussion boards."
If it is a very basic setup then you could build something. For example, if it was similar to a comment system, such as the one I'm currently writing on (here at Hacker News), then I think it could be done easily with a comment plugin:
https://github.com/engram-design/Comments (note the threaded commenting and that by adding a few other plugins you could make it more feature rich than even this. Josh (@crawf) is almost always in the Slack channel if you have any questions about any of his plugins.)
If you need something more advanced, with allot more features etc, you'd currently want to look into third party options (since you don't have the time and or resources to build a plugin, I'm sure and one it's currently available.) For example:
Using a third party forum system like Vanilla and setting up SSO via a Craft plugin: https://github.com/nystudio107/vanillaforums
Or a discussion system as a service like: https://muut.com
Craft is new compared to some though, it is going on 4 years old (https://craftcms.com/changelog#build2063). Pixel & Tonic, the company behind Craft, is definitely not new, however. They've been around for along time and built some amazing add-ons for ExpressionEngine before they started Craft. The Matrix being one (https://craftcms.com/features/matrix)
Are you still worried about it being new? Well, consider a different perspective in that this is…
> Now to you: how do you deal with JS fatigue?
If possible, ignore Internet Explorer completely. All the other current browser versions support ES6 (sans modules). A wonderful little utility called Reify allows you to load ES6 modules in node without transpilation:
https://www.npmjs.com/package/reify
For packaging those modules to use in a browser, there's Rollup:
http://rollupjs.org/
Both are fast, even for largish JS projects. Reify allows me to write clean code and tests in Node using bone stock Mocha and Chai configurations. When I need to deploy to the browser, I reach for Rollup.
This method allows me to eliminate a good chunk of the complexity swirling around Babel and its dependents.
As far as React - I found the learning curve quite steep. Once I was comfortable enough with its core concepts, though, I found Riot to be more suitable (and quite a bit simpler) for the medium-sided applications I'm building:
http://riotjs.com/
Keeping with the attempt to promote clean code and avoid transpilation, I don't write Riot "tag files" (Riot's version of JSX) but instead use built-in ES6 template strings:
https://muut.com/i/riot-js/using:the-case-for-not-using-riot
In other words, I strive to base my projects on pure ES6 only. No fancy inline markup. No bleeding-edge ES7 features. Just plain old ES6. When native import/export finally arrives for Node and browsers, there will be almost nothing needed to switch.
I didn't have time before to go through your case study. But after looking at it for a bit, it doesn't look that much different from the mvc example I linked.
It seems that you are leveraging the built-in event system for observers and using the dom for referencing your components. Personally, I don't feel that mvc for the web is inventing a whole lot more, just patterns and some utilities.
Having events that bubble from the child component up to the app component is an interesting approach. It simplifies the code by not having to pass controllers into views, but makes the child components less reusable in other contexts.
Btw, this structure also reminds me of backbone(1) and that riotjs 1kb blog post from ages ago(2).
I love the effort and thank you for making it.
(1) https://backbonejs.org/#View
(2) https://muut.com/blog/technology/riotjs-the-1kb-mvp-framework.html.
I completely agree. There's something really wrong with the approaches.
They're both too complex and too simplistic at the same time. BackBone and Angular in particular demand a lot of code to do simple things and still fall apart in large scale production.
The best I've seen is https://muut.com/riotjs/ which is basically just a collection of JS-objects and a router. But it's far from useable because they've tried to cut corners, and lacks all sorts of documentation.
I've enjoyed working with riot.js (https://muut.com/riotjs/). It's a "minimalist" front end framework, written in vanilla javascript. It's easy to pick up, and it's not super opinionated. You can read/absorb the library in one sitting -- so you'll have a good sense of what's going on under the hood.
Another great resource is You Might Not Need jQuery (http://youmightnotneedjquery.com/). Take what you need, leave the bloat behind!
I don't like it, the forums look like those spam pages that aggregate comments from other pages on the web to get clicks without providing any value (I'm talking about the visual aspect of the forums in the screenshots).
Also, it is too expensive, too expensive for a new product, specially when the field already has experienced competitors offering the same things for less (I'm talking about https://muut.com/).