| GrainJS 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/ |