Reliverse is a CLI tool designed to streamline the setup of JavaScript, TypeScript, and other types of projects, with a primary focus on Next.js templates, though it is not limited to them.
It allows you to effortlessly bootstrap projects, including the Relivator Next.js template or any other template from GitHub or other Git-based sources. Additionally, Reliverse assists in managing configuration files and resolving potential conflicts between tools like ESLint, Prettier, and Biome.
Reliverse is more than just the easiest way to install Relivator. Itās also the most convenient new way to download any repository from GitHub and automatically prepare it for work. Especially if itās a project from the JavaScript ecosystem.
The mission of this project is not only to help you install templates in seconds. It is also a desire to make web development more accessible to everyone. Itās a commitment to fixing many things that donāt work in the ecosystem. Itās a wish to share templates, libraries, and tools with the world that deserve attention. Itās also a drive to motivate developers to become contributors to various projects that need and deserve it.
It's a single tool for everything. At its current stage, Reliverse CLI is a powerful website builder and project bootstrapper, right in your terminal. However, it wonāt be only a website builder in the future, it will be a tool for building anything. Even now, you can start from scratch or with a template, setting everything up automatically or customizing it to your exact preferences. With all the tools pre-configured and ready to go, you can build exactly what you envision.
Remember the feeling of empowerment when you first used a website builder like WordPress? It gave you the freedom to create. But eventually, you hit limitsāPageSpeed Insights flagged issues, performance lagged, and the bloated size of your site became hard to ignore.
Thatās where Reliverse comes in. Reliverse is designed to fix the problems of traditional website builders, offering a universal toolset that lets you create anything you can imagineāefficiently and with ease.
Reliverse is still in its early stages, but it already allows you to bootstrap websites quickly. Soon, advanced customization options will be available, along with other exciting features. You're going to love what's coming.
By the way, you might think that a CLI doing so many things would become bloated, like an elephant in the room, but donāt worryāitās going to be lean. This is the dream of a creator, a dream that must become reality. Everything has to be perfect.
You should install Git, VSCode, and Node.js LTS first. Then use one of the following commands to install Reliverse:
- With bun:
bun i -g reliverse
- With pnpm:
pnpm add -g reliverse
- With yarn:
yarn global add reliverse
- With npm:
npm i -g reliverse
Once installed, you can use Reliverse CLI to create new projects or manage existing ones. Navigate to the root of your desired directory and run:
reliverse
Temporary issue: It seems that currently if you build and publish a project using Bun, then the project does not run with a global installation, so now wherever README.md says to use
bun
, please usepnpm
instead.
- Create Projects: Build new projects from scratch, including your own version of the Relivator Next.js template, or install any other templates from GitHub.
- Support for JavaScript/TypeScript Projects: Primarily designed for React and Next.js projects, but works with other JavaScript/TypeScript libraries as well.
- Automatic Configuration Management: Handles project configuration, including ESLint, Biome, Putout, GitHub, and IDE settings.
- Conflict Resolution: Detects existing configurations and helps resolve file conflicts, giving you control over which files to keep or replace.
- Interactive Prompts: Customize your setup through interactive prompts that allow you to select which file categories to include.
- Template-Driven: Automatically clones and installs templates from GitHub to kickstart your development.
- Unlimited Possibilities: It can work not only with templates! Are you going to clone a JS library? Feel free to use Reliverse!
- Anything Else?!: Currently, the CLI is optimized for JS/TS projects (like React, Astro, Vue, Svelte, etc). This is the dream of Reliverse's founderāa single tool designed for everything.
The Reliverse CLI provides a series of interactive prompts to guide you through the project setup:
- Create a New Project: Build from scratch or use predefined templates.
- Install GitHub Templates: Install any JavaScript/TypeScript project by providing a GitHub repository URL.
- Manage Configurations: The CLI checks for existing configuration files and assists you in handling any conflicts.
- File Categories: Select from a variety of configuration categories for your project setup, such as ESLint, Biome, Putout, GitHub settings, and IDE preferences.
- Post-Editing: Reliverse is there for you throughout your entire development journey. You can run
reliverse
even in an already installed project. If your project'spackage.json
contains anappts
script, thatās also a local piece ofreliverse
within your project.
Hereās an example session of using Reliverse CLI:
$ reliverse
? How do you want to proceed?
1. I want to build my own Relivator from scratch
2. I just want to install a template from GitHub
? Select the file categories you want to download:
ā eslint, biome, putout
ā GitHub
ā IDE
ā Reliverse configs
? Do you want to replace all existing files? (N opens Conflict Management menu) (y/N)
When setting up a project, you can choose from the following file categories:
- eslint, biome, putout
.eslintrc.js
,biome.json
,.putout.json
- GitHub
.github
,README.md
- IDE
.vscode
- Reliverse configs
reliverse.config.ts
,reliverse.info.ts
Reliverse CLI helps you handle configuration conflicts for existing files such as .eslintrc.cjs
or prettier.config.js
. It prompts you with options to:
- Remove: Delete the existing file.
- Rename: Rename the file (e.g., add
.txt
to disable it). - Do Nothing: Keep the existing file.
? .eslintrc.cjs file exists. Do you want to remove or rename it?
1. Remove
2. Rename to .eslintrc.cjs.txt
3. Do nothing
? prettier.config.js found. Biome will be installed, so Prettier is not necessary.
1. Remove
2. Rename to prettier.config.js.txt
3. Do nothing
You can install any JavaScript/TypeScript project (not just Next.js templatesāanything, including JS libraries) from a GitHub repository by providing the repository URL during the interactive setup:
$ reliverse
? How do you want to proceed?
1. I want to build my own Relivator from scratch
2. I just want to install a template from GitHub
3. I want to clone a library/tool from GitHub
? Enter the GitHub repository link: (e.g., `https://github.com/user/repo`)
Reliverse will then clone the repository and set up the project.
You can use Reliverse itself to install it locally! š
Visit the Installation section and select Tools Installation when choosing to Clone Reliverse Repository for Local Development.
To contribute to Reliverse CLI, you can clone the repository and install the dependencies:
git clone https://github.com/reliverse/cli.git
cd reliverse
bun i # OR pnpm i OR yarn install OR npm i
To run the CLI locally for development purposes, use:
bun dev
# or
pnpm dev
# or
yarn dev
# or
npm dev
We welcome contributions! Feel free to open issues or submit pull requests. Please ensure your code adheres to our linting guidelines by running bun appts
before submitting.
Temporary issue: It seems that currently if you build and publish a project using Bun, then the project does not run with a global installation, so now wherever README.md says to use
bun
, please usepnpm
instead.
Reliverse takes a different, non-standard approach compared to other bootstrappers. The author has observed many CLIs handling project bootstrapping, some of which are quite impressive. However, their repositories often contain numerous files that are eventually bundled into a single index.js
, functioning like an installer wizard. This leads to cluttered repositories, typically set up as monorepos, adding complexity. In contrast, the reliverse/cli
repository downloads specific files from existing repositories and only copies or generates files when absolutely necessary.
This project is licensed under the MIT Licenseāsee the LICENSE file for more details.