@reliverse/cli
v0.2.0
Published
@reliverse/cli is a website builder inside your terminal. You can start from scratch, or you can install a selected template. You can set everything up automatically, or configure everything the way you want. You can have it all. This world is yours, and
Downloads
134
Readme
@reliverse/cli: Bootstrap Templates in Seconds
🏯 @reliverse/cli is a website builder inside your terminal. You can start from scratch or use a template. You can set everything up automatically or configure everything exactly the way you like. You can have it all, with all the tools already prepared for you.
Welcome to Reliverse! This CLI helps you bootstrap and deploy new web apps in a matter of seconds.
The project focuses on Next.js, but support for other frameworks and additional features will be available soon. Happy coding!
More features coming soon!
For more detailed usage instructions, API documentation, and examples, please visit the Reliverse Docs website. If you find that the page for this library is missing, please notify us or consider contributing to add it.
Installation
To launch this CLI, run:
pnpm add @reliverse/cli@latest
or with Bun:
bun add @reliverse/cli@latest
Features
- 🚀 Bootstrap slim edition of Relivator -> Versator, a Next.js starter
- 🌐 Comprehensive and powerful code and no-code website builder (coming soon)
- 🎨 Beautiful and fast sites and web apps by default
- 🌟 Exciting features planned (currently not all are implemented), including Next.js 14, Tauri Apps UI, Solito Expo, i18n, Stripe, Shadcn, Tailwind, Drizzle Zod Trpc, TypeScript, Resend, Auth, Lucide CSS Radix UI, Responsive React Server, TS ORM, Intl App Router Docs, User Actions Kit, SaaS Commerce Shop, and Fullstack Turborepo
CLI Installation
To install Reliverse CLI, follow these steps:
Make sure you have Node.js installed on your system.
Run one of the following commands to install Reliverse CLI globally:
pnpm add -g reliverse # pnpm bun add -g reliverse # bun yarn global add reliverse # yarn npm install -g reliverse # npm
Once the installation is complete, you can start using Reliverse CLI.
If global installation fails, try these commands:
pnpx reliverse # pnpm
bunx reliverse # bun
yarn reliverse # yarn
npx reliverse # npm
CLI Usage
To create a new project using Reliverse CLI, follow these steps:
Open your terminal and navigate to the directory where you want to create your project.
Run the following command:
reliverse
Follow the interactive prompts to configure your project options.
Once the configuration is complete, Reliverse CLI will bootstrap your project with the selected options.
CLI Development
CLI Ts Edition:
# Build & run
pnpm start:cli
# Build only
pnpm build:cli
CLI Go Edition:
# Install Go lang — https://go.dev/dl
# Open Reliverse in terminal and run:
go run .
Monorepo Development
To build all apps and packages, run the following command:
cd reliverse
pnpm run build
To develop all apps and packages, run the following command:
cd reliverse
pnpm run dev
Monorepo Structure
This project includes the following packages/apps:
Apps and Packages
reliverse
: a Reliverse CLInextjs
: a Next.js app with App Router- [coming soon]
expo
: a Solito app Expo Router - [coming soon]
tauri
: a Tauri app with Tauri UI @repo/eslintconfig
:eslint
tool configurations (includeseslint-config-next
)@repo/tailwind-config
/@repo/tsconfig
/@repo/jsconfig
: tools used throughout the monorepo@repo/primitives
: a stub React component library shared by the entire application@repo/tsconfig
:tsconfig.json
s used throughout the monorepo- ...and much more!
Each package/app is 100% TypeScript.
Utilities
This project has some additional tools already set up for you:
- TypeScript for static type checking
- ESLint for code linting
- Biome for code formatting and linting
- ...and much more!
Remote Caching
Turborepo can use a technique known as Remote Caching to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines.
By default, Turborepo will cache locally. To enable Remote Caching, you will need an account with Vercel. If you don't have an account, you can create one, then enter the following commands:
cd reliverse
bunx turbo login
bunx turbo link
This will authenticate the Turborepo CLI with your Vercel account and link your Turborepo to your Remote Cache.
Useful Links
Learn more about the power of Turborepo:
Roadmap
- [x] Publish Reliverse CLI as a package on NPM and JSR
- [ ] Add all Relivator features to Reliverse CLI TS Edition
- [ ] Complete all items on the Relivator roadmap
- [ ] Release Relivator 1.0.0 version
Frequently Asked Questions
Why does the VSCode terminal exhibit unexpected behavior when interacting with CLI like Turbo and Reliverse?
[Use arrows to move, type to filter] › [B[A[B
This is a known issue. Please use an external terminal instead. For Windows users, PowerShell 7 is recommended.
How can I fix the error: ENOWORKSPACES command does not support workspaces?
To resolve this error, run the following command:
bunx next telemetry disable
Contributing
We welcome contributions to improve Reliverse! If you have any ideas, suggestions, or bug reports, please open an issue on the GitHub repository. If you'd like to contribute code, please follow these steps:
Fork the repository to your GitHub profile or run the following command:
bunx create-turbo@latest -e https://github.com/blefnk/reliverse
Install dependencies:
cd reliverse pnpm install
(Experimental) Run the following command to check if the current project state meets the deploy best practices standards:
pnpm appts
Tip: You can also use
ctrl+shift+b
to run theappts
script.
Adding New Options to Reliverse CLI
If you want to contribute a new option to Reliverse CLI, follow these steps:
- Add the option to the
CliFlags
andCliResults
interfaces insrc/cli/index.ts
. - Update the
defaultOptions.flags
anddefaultOptions
const insrc/cli/index.ts
with the new option. - Add prompts for the new option in the
runCli
function (findreturn p.confirm
) to ask the user if they want to include the option. - Add the option to the
const availablePackages
andconst buildPkgInstallerMap
insrc/installers/index.ts
. - Create a new installer file for the option in
src/installers/optionNameInstaller.ts
. - Place the necessary files to be copied in
template/extras/*
. - List the library in
const dependencyVersionMap
insrc/installers/dependencyVersionMap.ts
. - Find
if (project.
and add your option correspondingly. - In the return statement, add the option in the format:
optionName: project.optionName as "none" | "option1" | "option2"
. - If needed, find the relevant section (e.g., "Install the selected i18n package") and add your option accordingly.
- Update
const selectLayoutFile
andconst selectPageFile
insrc/installers/index.ts
if required. - Add final log notes in
logNextSteps.ts
file for your option. - Update the required environment variables in
envVars.ts
file if necessary. - Update the scripts in
base/package.json
if needed.
Credits
This project is created by @blefnk Nazarii Korniienko. Many thanks to the t3-oss team for create-t3-app and create-t3-turbo, as this project is greatly inspired by their work. Reliverse has almost everything they have, so you can migrate to Relivator very easily.
License
This project is licensed under the MIT License.
How to Use This Library
To use @reliverse/cli
, ensure that your project is set up as an ES module by including "type": "module"
in your package.json
file. Since this package is structured as an ES module, you'll need to use import
statements instead of require
.
The library primarily relies on the async versions of fs
functions, so you need to add the await
keyword before the utils from our library.
Here's an example of how to import and use a function from this package:
import { fileExists } from "@reliverse/cli";
const someFile = "path/to/file.ts";
export async function checkFile() {
await fileExists(someFile);
}
Please refer to the source files located in the src
folder to learn about the currently implemented functions.
This package adopts the ES module format, with files compiled to dist/.js
(formerly known as dist/.mjs
). This approach aligns with the Node.js team's recent recommendations, encouraging the JavaScript/TypeScript community to transition to the ES module standard. If your project still requires CommonJS (CJS) support, you may fork this repository and modify the build process to generate dist/.cjs
files. For guidance or community support, join the Reliverse Discord community.
Documentation and Support
If you encounter any issues, need help, or want to contribute, you can:
- Join the Reliverse Discord community to ask questions and engage with other users and developers.
- For usage instructions, API documentation, and examples, please visit the Reliverse Docs website.
- Report bugs or suggest features by opening an issue on our GitHub repository.
Sponsors
Love using this project? If you find it useful, I’d greatly appreciate a cup of coffee! By supporting this project, you'll gain access to Reliverse Pro, exclusive access to @reliverse/addons-pro, private repositories, pre-release downloads, and even the ability to influence projects planning. Click on the donation platforms below to learn more. Thank you all for your support!
We're Growing Fast! A Huge Thanks to All Our Supporters!
Developing something as ambitious as @reliverse/addons takes a huge amount of time, especially since the project is primarily developed by one person. The development could be significantly accelerated by bringing on additional developers. Therefore, @blefnk (Nazar Kornienko), the author of this project, would be immensely grateful to anyone who can contribute financially in any amount. A big thank you in advance to everyone who supports this effort!
Visit the "Donate to Relivator" page to see our current donors and learn more.
💚 GitHub Sponsors 🩵 PayPal 🧡 Patreon 💛 Buy Me a Coffee 🩷 Ko-fi
Contributing
We welcome contributions! If you’d like to contribute to the development of this package, please follow these steps:
- If you are a beginner: Familiarize yourself with Git by following The Detailed Git Guide created by @blefnk and @reliverse.
- Fork this repository.
- Create a new branch for your feature (e.g.
git checkout -b feature-branch
). - Make your changes in the new branch.
- Commit your changes with a descriptive message (e.g.
git commit -m 'Add new feature'
). - Push your changes to your branch (e.g.
git push origin feature-branch
). - Open a pull request for our review.
Please ensure that your code follows the existing code style and includes appropriate tests. Your code should successfully pass the pnpm appts
command.
License
This project is developed by Reliverse and @blefnk (Nazar Kornienko) and is licensed under the MIT License. For more information, please refer to the LICENSE file.