pankod/superplate

View on GitHub
README.MD

Summary

Maintainability
Test Coverage
<div align="center">
<p align='center'>
<img src='images/cli.gif' width='500' alt='superplate example'>
</p>
</div>
<br/>
<div align="center">A well-structured production-ready frontend boilerplate with Typescript, React Testing Library, styled-component, React Query, .env, Axios, Bundle Analyzer, Prettier and <b>30+ plugins</b>. <div><b>superplate</b> creates ready-to-develop projects for React and Next.js and refine.</div></div>
<br/>

<div align="center">



[![Meercode CI Score](https://meercode.io/badge/pankod/superplate?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)
[![Meercode CI Success Rate](https://meercode.io/badge/pankod/superplate?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)
[![Maintainability](https://api.codeclimate.com/v1/badges/eb4b5a8f88b6e511e61d/maintainability)](https://codeclimate.com/github/pankod/superplate/maintainability)
[![npm version](https://img.shields.io/npm/v/superplate-cli.svg)](https://www.npmjs.com/package/superplate-cli)
[![npm](https://img.shields.io/npm/dy/superplate-cli)](https://www.npmjs.com/package/superplate-cli)

</div>

<div align="center">
  <sub>Created by <a href="https://www.pankod.com">Pankod</a></sub>
</div>

<br/>

## About 

**superplate** lets you start rock-solid, production-ready _React_, _Next.JS_ and _refine_ projects just in seconds. The command-line interface guides the user through setup and no additional build configurations are required.

Superplate ships with +30 plugins including popular UI Kits, testing frameworks and many useful developer tools.

## Quick Start

To use superplate, make sure you have _npx_ is installed on your system (npx is shipped by default since npm 5.2.0).

To create a new app without using presets, run the following command:

```bash
npx superplate-cli my-project
```

You will be prompted with plugin options to create your project. A full list of avaiable plugins is here: [superplate-core-plugins](https://github.com/pankod/superplate-core-plugins).

## Available Integrations

### Next.js 


<div align="center"> 
<a href="https://pankod.github.io/superplate/docs/">
  <img src="images/next-logo.png"  width="75" align="center" />
</a>
</div>
<br>

**superplate**  makes it easier to get up and running with a well-structured Next.js and TypeScript application.



To get started quickly, please run the following command. The CLI wizard will assist you for the rest of the setup process:

```
npx superplate-cli -p nextjs my-project
```

### React.js 

<div align="center"> 
<a href="https://pankod.github.io/superplate/docs/">
  <img src="images/react-logo.png"  width="75" align="center" />
</a>
</div>

<br>

**superplate**  makes it easier to get up and running with a well-structured Create React App and TypeScript application.

To get started quickly, please run the following command. The CLI wizard will assist you for the rest of the setup process:

```
npx superplate-cli -p react my-project
```

### refine ⚡
[refine](https://github.com/pankod/refine) is an open source React framework for building **CRUD** apps rapidly.

**superplate** provides built-in templates for CRA, Next.js and Remix environments so you can bootstrap a **refine** project in a couple of minutes. 

[Refer to refine repository for more information ➡️ ](https://github.com/pankod/refine)

<br/>
<a href="https://github.com/pankod/refine">
<picture>
  <source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/18739364/200257042-3f2aa7f7-a07f-4824-8d2a-b25f26b6fd32.png">
  <img alt="how-works-refine" src="https://user-images.githubusercontent.com/18739364/200257209-8fc0c8b1-2568-453e-873f-00513434deed.png">
</picture>
</a>

<br/>
<br/>


To get started quickly, please run the following command. The CLI wizard will assist you for the rest of the setup process:

```
npx superplate-cli -p refine my-project
```

<br>

## Coming Soon

We are planning to add the following frameworks integrations soon.  

<a href="https://pankod.github.io/superplate/docs/">
  <img src="images/integrations.png"  align="center" />
</a>

<br />

## Documentation

For more detailed information and usage, you may refer to our [documentation pages](https://pankod.github.io/superplate/).


## Philosophy

-   It provides an easy starting to your project by leveraging industry-standard best practices and and performance oriented tools.
-   Fully extensible due its plugin based architechture.
-   Code examples are added to plugin documents to show how best practices are implemented.



## Plugins

superplate uses a plugin-based architecture. Basically, plugins are created from popular npm tools with configuration files. You can check them out in [superplate-core-plugins](https://github.com/pankod/superplate-core-plugins).

The default core plugins determined by <a href="https://www.pankod.com">Pankod</a> team. Feel free to send PR or open an issue for new plugins you want to add.

### Using a custom source of plugins

You can use different sources for plugins other than [superplate-core-plugins](https://github.com/pankod/superplate-core-plugins).

Simply add `--source <path-to-source>` option to use **superplate** with a custom source.

To learn more about sources and how to create your own; please check out [documentation](https://pankod.github.io/superplate/docs/development/how-it-works/#creating-a-source-repository)

### Creating a plugin

**superplate** gives you many abilities to create your own plugin and interact with the others. To learn more on creating a plugin, please check out [documentation](https://pankod.github.io/superplate/docs/development/creating-a-plugin)

## Available plugins

<img src="images/plugins.png"  align="center" />

## CLI options

```
> npx superplate-cli --help
Usage: superplate [options]

Options:
 -v, --version                   prints version number
 -h, --help                      prints help information on all commands and options
 -d, --debug                     prints additional logs
 -s, --source <path-to-source>   Use this option to target a custom source of plugins
                                 Source path can be a remote git repository or a local path.
 -p, --project <project-type>    In sources with multiple types, you can use this option to preset the type.
 -b, --branch <branch-name>      If your source is a git repository, you can define a custom branch for `superplate` to use.
 -o, --preset <preset-name>      If your source includes presets, you can select one of them to prefill the answers.
 -l, --lucky                     You can select random choices with this option, if you are feeling lucky.
```

## Development mode commands

Watches for changes in the code; builds the project and then globally installs superplate for testing.

```
npm run dev:global
```

Create a build inside `/lib` directory.

```
npm run build:cli
```

Install the current build globally:

```
npm run global
```

## Contribution

If you have a bug to report, do not hesitate to file an issue.

If you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.

## License

Licensed under the MIT License, Copyright © 2021-present Pankod