**ππΎ How to Choose a Library Without Shooting Yourself in the Foot
**You're looking at a library on Github and can't understand whether to use it or not
I'll write down a set of actions that I take:
β Read the release code β if the library is supposed to be developed, but the releases were a long time ago or they only changed the documentation / one line of code, then it's bad
β How many contributors are there and how often do they commit
β Read the Issues (especially closed ones) β how many are closed, how long ago, how many are open, are there any critical moments for you. I've found libraries where the authors simply closed all Issues without a response and people were left wondering what was happening.
β How many questions and answers are there on StackOverflow, if there are many, then it's good
β How many articles are there on the internet about the library **and what dates they were published
**β It's better if the library doesn't depend on a lot of other libraries, because if you need to contribute, you'll have to make changes not only to the library itself, but also to its dependencies
β It's better if the library is within one stack β for example, in Prisma, you'll also have a Rust library for translating queries to SQL, which means that to fix a bug, you'll have to edit not only JS / TS code, but also Rust
β Are there tests for the code β if there are, then it's better than documentation
**Example with Objection.js
**Under the post above, someone asked what I think about Objection.js, I went to refresh my memory, because I haven't used it in a long time:
β There is a fresh release, but it's the only one... before that, they didn't use releases, so we go to commits and see that commits are made every six months... for an ORM β it's very bad, because databases and database tasks are constantly evolving, which means the ORM should be too
β Among the contributors is the creator of Knex β this is good
β We go to Issues and see that the creator can't maintain this library (and no enthusiasts were found) and he himself calls it outdated
We can stop here and draw a conclusion β the library is dead