#+TITLE: JavaScript It's a terrible language, but given its status as the de-facto language of the web, it has an incredible ecosystem of tools developed to help out. * Frameworks - [[https://github.com/sveltejs/svelte][Svelte ]]:: 'cybernetically enhanced' framework. [[https://github.com/feltcoop/why-svelte][Why]] - [[https://github.com/bigskysoftware/htmx][HTMX]] :: tools for seamless HTMl. The web should be more like this - [[https://github.com/hapijs/hapi][Hapi]] * Libraries ** Functional Programming - [[https://github.com/fantasyland/fantasy-land][Fantasyland]] :: Specification for algebra in JavaScript - [[https://github.com/origamitower/folktale][Folktale]] :: A corresponding standard library - [[https://github.com/fantasyland/static-land][Staticland]] :: Fantasyland but without classes * Tools ** Typescript [[https://github.com/gcanti/fp-ts][functional programing for ts]] ** Configuration - [[https://github.com/davidtheclark/cosmiconfig][Cosmiconfic]] :: Load configuration from anywhere - [[https://github.com/lerna/lerna][Lerna]] :: Manage JavaScript projects with multiple packages ** 3D *** BabylonJS [[https://github.com/brianzinn/create-react-app-typescript-babylonjs][Create React App with Babylon and TypeScript]] [[https://github.com/brianzinn/react-babylonjs][React for Babylon]] *** MatterJS [[https://github.com/liabru/matter-js][Rigid body physics engine]] - [[https://github.com/photonstorm/phaser][Phaser]] :: 2d game framework *** ThreeJS [[https://github.com/pmndrs/react-three-flex][flexbox for react-three-fiber]] ** UI Dev https://github.com/davidkpiano/flipping :: flipping animation https://github.com/davidkpiano/xstate :: state machines for the web *** Storybook [[https://github.com/storybookjs/storybook][the repo]] [[https://github.com/react-theming/storybook-addon][Material UI]] * Meta - [[https://github.com/acornjs/acorn][Acorn]] :: js parser in js ** Babel The compiler for Javascript. [[https://github.com/jgierer12/awesome-babel-macros][Babel macros]] ** EsLint [[https://github.com/EvgenyOrekhov/eslint-config-hardcore][Hardcore config]] [[https://github.com/jonaskello/eslint-plugin-functional][functional config]] - [[https://github.com/apollographql/eslint-plugin-graphql]] :: graphql support - https://github.com/gajus/eslint-plugin-sql :: sql support (kind of) - https://github.com/azeemba/eslint-plugin-json :: json support - https://github.com/Bkucera/eslint-plugin-json-format :: json autoformat - https://github.com/mysticatea/eslint-plugin-node :: nodejs rules - https://github.com/BenoitZugmeyer/eslint-plugin-html :: eslint for raw html - https://github.com/dustinspecker/awesome-eslint :: eslint resources * Etc ImmutableJS: Immutable data structures Ramda: Better JS functional programming Typescript with these two is the de factor pure programming ecosystem [[https://github.com/200ok-ch/organice][Organice]] :: Org mode without emacs [[https://github.com/automerge/automerge][automerge]] :: a CRDT that allows concurrent modification [[https://github.com/turbolinks/turbolinks][Turbolinks]] :: framework agnostic way of rendering views on server side and swapping in throuhg a socket [[https://github.com/chjj/tty.js][tty.js]] :: terminal for the browser [[https://github.com/sanctuary-js/sanctuary][sanctuary]] :: strict javascript functions composed functionally https://github.com/sindresorhus/speed-test cli for speedtest.net https://github.com/calmm-js/kefir.atom :: reactive state with lenses https://github.com/spcask/mdme :: embed self rendering md content https://github.com/inkandswitch/cambria bidirectional lenses https://github.com/padenot/ringbuf.js ring buffers https://github.com/typeorm/typeorm/blob/master/README.md super flexible js and ts orm that runs anywhere phantomjs browser control [[https://github.com/gajus/gajus.com-blog/blob/master/posts/the-definitive-guide-to-the-javascript-generators/index.md][excellent article on javascript generators]] https://ionicframework.com/react apps everywhere with single react code base? seems too good to be true https://github.com/kach/nearley javascript parser toolkit * CRDTs [[https://crdt.tech/][an excellent resource on conflict-free replicated datatypes]] https://github.com/sweet-js/sweet-core https://github.com/replit/clui build quick cli apps with js https://github.com/atom/node-spellchecker * node [[https://medium.com/dailyjs/how-i-automated-my-job-with-node-js-94bf4e423017][automating with nodejs]] [[https://github.com/google/closure-compiler][advanced javascript optimizer]] https://github.com/calmm-js/partial.lenses lenses in javascript [[https://github.com/lerna/lerna][manage js project with multiple packages]] [[https://github.com/alloy-js/sterling][alloyjs browser based visualizations]] https://github.com/vercel/serve static file listing and serving [[https://github.com/denoland/deno][deno]]:secure js runtime [[https://github.com/purescript-halogen/purescript-halogen][type safe ui library for purescript]] [[https://github.com/jondashkyle/nanocontent][read directory content into an object]] [[https://tomassetti.me/parsing-in-javascript/#antlr][Parsing in JavaScript: all the tools and libraries you can use]] [[https://tomassetti.me/parsing-in-javascript#antlr][Parsing in JavaScript: Tools and Libraries]] [[https://nativescript.org/][Native mobile apps with Angular, Vue.js, TypeScript, JavaScript - NativeScr]] [[https://exploringjs.com/deep-js/][Deep JavaScript: Theory and techniques]] [[https://nanochess.org/][Chess programs in C, Java and Javascript, also 8080 emulator]] [[https://lea.verou.me/2020/05/todays-javascript-from-an-outsiders-perspective/][javascript is so hard to use now!]] https://nh2.me/ host gpg key on my website like this person does. i also like the 'tell me something' button with the hidden (black on black) text! http://www.jsfuck.com/ [[https://www.cyberpunk.net.ar/despuesdelzoia/][cool scroll!]] https://codepen.io/DonKarlssonSan/pen/abNjZaQ https://healeycodes.com/creating-randomness/ https://www.edwinwenink.xyz/https://technomancy.us/184 https://snufk.in/blog/ssg-1.html https://hao-w.github.io/ https://leosaenger.com/ https://github.com/xiaohanyu/understanding-modern-frontend https://www.linkedin.com/in/leosaenger/ https://aaronweiss.us/posts/2014-06-04-write-up-l1.html [[https://codepen.io/kdbkapsere/pen/PoZVMjj][Floating island /w Threejs & GSAP]] [[https://www.cypress.io/][JavaScript End to End Testing Framework | cypress.io]] https://news.ycombinator.com/item?id=24259688 using xpath for js