This is cool AF... combined with Context, you could pretty much replace redux and react-redux... although there's a huge third party ecosystem around the two now. It's nice to see these options in the box, and especially working with functional components.
I would also suggest posting this in /r/javascript since it's likely to be seen by more people.
- I would suggest updating the codebase to use ES6 module conventions and use rollup for your build process over gulp+browserify
- Add a youtube-link that generates an appropriate embed option
- Add wrapper components for Angular, Vue and React
Aside: I'm not sure how much draw you will see for a "pro" version, but good luck to you.
I really wanted to like ngrx, it just felt like too much for the common use case... similar to redux-saga and similar combined effects. The simpler angular redux adapters are a lot easier to use imho. That said, I also generally feel vitriolic hate towards Angular, so avoid it as much as possible. Love react, like vue.
In general, my suggestion is via webpack+babel to do two build configurations. One for "modern" browsers (async/await support an higher) and one for "legacy" browsers (everywhere else). Modern ones are fairly easy to detect server-side and inject the correct entry point(s) into your html delivery.
In the top of my "modern" entry, I do a test for async/await, and if it fails, will set a cookie and `location.reload()`. This forces legacy should it not have detected properly. In the end, without most of the polyfills or the corejs bits there's a huge savings in overall size, and load.
My current work is mostly internal applications, where I don't have to work around supporting legacy browsers fortunately. Even keeping firefox + chrome happy is enough work in some cases.
It's likely converting the strings to regex under the covers. Also, if you're defining your regexp patterns outside of JS then it could be useful for that parsing.
I do think it will grow for a while... sandboxing with node/electron with wasm will become far more common. The sandboxing model actually delivers on a lot of what was promised with Java without having painful UI/UX constraints. It's a little more bloated that way, but works out.
Another alternative to electron is Carlo (which uses the already installed chrome and node for it's operation... I think this may actually surface more and more as a base application choice for cross-platform apps.
Today most of my time is spent in VS Code + Bash, Chrome, MS Teams, Hyper and Spotify. Most of which are electron apps, and the other the core browser they all use. I don't think it's the *BEST* choice for much, but it is *good enough* for most things.
I'm sorry to see you go, but I do understand... I spend about 20-30% of my work day on tech news, mainly to keep up as software is my FT job. I still love it, but I have not time/motivation/interest when I get home to work on the personal projects I used to love so much.
I wish you all the best of luck.
Not a big fan of this much of a regimented pattern, effectively echoing the interface of controls on the page in order to interact with them.
I'm also more a fan of puppeteer which allows for better interaction over Selenium/webdriver.
Beyond all of this, I prefer to unit test heavily, and leave automated integration tests to problem workflows specifically.