Show HN: GrainJS – a light TypeScript web framework
gristlabs.github.ioGrainJS is a JavaScript / TypeScript library for building dynamic web applications.
- It's in part inspired by React, but based on observables (like Knockout) instead of virtual dom.
- It is lightweight, has no dependencies, and takes only ~30KB minified.
- It needs no special tooling. It's nothing more than a library.
- It supports convenient DOM-building in JS, event dispatching, DOM event subscriptions, 9disposable components, and in-code CSS styling.
- It's fully typed for use with TypeScript.
- It's proven its worth by powering Grist's rich frontend app.
Source code: https://github.com/gristlabs/grainjs/ Why is it special? I was going over the link but couldn't get anything right away. It enables much of what a large framework like React enables, but with a much simpler implementation, less tooling need to use it, and (some may argue) more convenient usage. Understood, but is it worth another learning curve? I'd say if you know React or Vue or another framework and it fits your project well, then no. If you are learning though, there is arguably much less to learn (in particular, not having to juggle 3 languages). And if you are building something very serious, it's suitable: nearly all of Grist frontend is GrainJS, and it's a very big performant real-time collaborative long-lived single-page app.