jestDelightful JavaScript Testing.
This is my go-to testing library for the JS projects. Our company also relies on Jest for testing. The documentation is very concise and serves a lot of ways to use the testing library. There are some advanced use cases for Jest though. I am personally using this testing library in many npm packages I have. The community around this is very helpful at time. Must give a try if you want the best testing experience.
passportSimple, unobtrusive authentication for Node.js.
It is a powerful middleware to be used with expressjs for
authentication. It is an ancient library in the sense that it doesn’t use
Promise API. There are so many passport plugins to be used when you
want to add additional authentication platforms support. The
documentation is bit harder to grasp and that is what I don’t like about
the library.
vue🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
I dont have much experience with Vue as I am a react developer. But for the time I have used Vue for a simple app and found out the community behind it is as good as React's. There are many helpful referrable blog posts out there to quickly get going. The html, css, and JS in one place is a good thing when scaffolding out for a large project. Also the documentation itself has good examples for many use cases and built in navigation system and state management are nice perks of vue.
reactA declarative, efficient, and flexible JavaScript library for building user interfaces.
This is my go-to choice of UI library. React's easy to use APIs make life so easier as compared to Angular or Vue. With the introduction of hooks, I always extract the component's business logic into a separate hook and plug in with the component. The best part about React is its flexibility and community support. There are many UI design systems compatible with react out there making the scalability factor high. Overall this is a great choice for the frontend development.
recoilRecoil is an experimental state management library for React apps. It provides several capabilities that are difficult to achieve with React alone, while being compatible with the newest features of React.
This state management solution by Facebook seems like a good thing
that is going to replace Redux. The concept of atoms and selectors
are real nice additions to having a perfect state management solution
in the react apps. I have tried this with two apps that are in production.
The issue with Recoil I noticed when I was working with it is the lack of
support for TypeScript forcing me to write any at many places. Only
try this at your own risk as this is not stable yet.
socket.ioRealtime application framework (Node.JS server)
socket.io is a real-time web application library written in JavaScript. It allows web clients and servers to communicate in real time and in both directions. I use it for chat and real-time notifications. It consists of two parts: a browser-based client-side library and a node.js server-side library. I mostly use the node.js server side library. Its SDK’s are really easy to use but lacks typescript support. Documentation part is really good.
@babel/core🐠 Babel is a compiler for writing next generation JavaScript.
One of the core packages I use in the JS ecosystem is babel. Writing
ES code is now easy and worry free as babel takes care of the
backward compatibility across browser as well as Node. I use ES2020
features all the time like the optional chaining operator and nullish
coercion operator which are outo polyfilled or transpiled to backward
versions. Babel is really useful when building webextensions that you
need support for older browsers.
tailwindcssA utility-first CSS framework for rapid UI development.
This UI library is the best thing since Bootstrap which was my goto
choice in the earlier times. Now I have moved on to Tailwindcss as well
as Chakra UI that uses tailwind. I use this with SASS / PostCSS.
Although it would be difficult to refactor the components as there is a
need to write all the css within html itself. But using apply keywords in
CSS preprocessors takes away that pain by composing multi styles
into a single class.
axiosPromise based HTTP client for the browser and node.js
My favourite package for the browser. Axios has the best in class API
structure and is light weight. Its support for Nodejs as well as Browser
is the best feature of axios. The well written Readme itself serve as the
documentation. TypeScript support is real nice and is built-in. I have a
mini-wrapper config package for axios that I use across my personal
projects. The built in axios config instance is easily overridable at
usages.
kill-port❌ Kill the process running on given port
I mainly use this command line interface tool to kill apps on ports in between hot reloads like by nodemon and other similar tools. This is a part of my automation setup for several projects. Although this is not needed for a typical developer, multiple reloads by nodemon can leave the process hanging on the port. In that case, this package is handy. All it takes is a single line of code in config to kill process on port.