Introduction
Share your code with less friction than ever before.
jsrepo was born from a desire to move away from an excessive amount of npm packages that both bloat your project and give up control.
Taking inspiration from shadcn-ui, jsrepo allows you to only bring in what you need while making it almost as easy as just installing an npm package.
When using jsrepo you add individual blocks from a registry that is owned by yourself or someone else. These blocks are added directly into your project and unlike npm packages give you the ability to update the code to your own needs.
What is a block?
A block is a file or directory of files containing code that can be added by the CLI. Blocks are normally referenced by <category>/<name>.
What is a registry?
A registry is a repository containing blocks that can be added from the CLI. jsrepo allows you to create your own registry and download the blocks from the CLI.
jsrepo builds your registry into a manifest that it can read to access the blocks. While doing this it will also resolve any inter-block dependencies as well as any remote dependencies in supported file types.
FAQ
You! Or someone else you know. Anyone can create a registry to be used by everyone!
No, there is a gap that exists between things that you should create an npm package for and things you shouldn't. jsrepo lives in this gap.
Many times you write utility functions like leftPad etc. that really shouldn't be an npm package but also shouldn't have to be written every time you need them.
jsrepo gives you a mechanism to reuse that code along with it's documentation and tests.