Why do we build Nova.js?

We love the concept that component libraries like Tailwind UI, daisyUI or shadcn/ui have popularized: copying predefined components and then pasting them into your code.

With Nova.js we propose to do the same, but for React hooks: just copy the hook and paste it into your project.

However, each hook must fulfill with the following:

  • It cannot have dependencies
  • Be compatible with the oldest possible version of React
  • Provide both TypeScript and JavaScript code

This way it is ensured that no matter what project you work on, all the hooks will work for you.

Nova.js provides React hooks that could be classified as general since they cover a series of features that you may need in any application: a stopwatch, modify the favicon of the website, detect if the first time the user visits your application, etc.

Once you copy a hook in your project, you are free to use it as it comes or modify it for the particular needs of the project.

The goal of Nova.js is not to replace existing solutions, but rather to offer developers an alternative option. If your project already relies heavily on well-maintained, feature-rich libraries that provide similar hooks, maybe you don't need to use some Nova.js hooks.