Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rajarakoto/react-boilerplate

Minimalistic boilerplate to quick-start React.js development in TypeScript, optimized for blazing-fast performance Bun & Vite πŸš€
https://github.com/rajarakoto/react-boilerplate

boilerplate bun bunjs minimalist react reactjs starter template typescript vite vitejs

Last synced: 4 days ago
JSON representation

Minimalistic boilerplate to quick-start React.js development in TypeScript, optimized for blazing-fast performance Bun & Vite πŸš€

Awesome Lists containing this project

README

        



# react-boilerplate πŸš€

[![forthebadge](https://forthebadge.com/images/badges/built-with-love.svg)](https://forthebadge.com) [![forthebadge](https://forthebadge.com/images/badges/for-you.svg)](https://forthebadge.com) [![forthebadge](https://forthebadge.com/images/badges/open-source.svg)](https://forthebadge.com) [![forthebadge](https://forthebadge.com/images/badges/uses-git.svg)](https://forthebadge.com) [![forthebadge](https://rajarakoto.github.io/github-docs/badge/build-by.svg)](https://forthebadge.com)

![Git](https://img.shields.io/badge/-Git-777?style=flat&logo=git&logoColor=F05032&labelColor=ffffff) ![Gitub](https://img.shields.io/badge/-Gitub-777?style=flat&logo=github&logoColor=777&labelColor=ffffff)

**Developer Ready: A comprehensive template. Works out of the box for most React.js projects. This project is intended to be used with the latest active release of React.js.**

Instant Value - All basic tools included and configured:

- πŸš€ Typescript >= 5.5.4
- 🌐 React.js >= 18.3.1
- πŸ§… Use Bun as package manager
- 🌈 ESM
- 🧹 ESlint with some initial rules recommendation
- πŸ§ͺ Biome for code formatting and linting
- βœ… Jest or Bun test for fast unit testing and code coverage
- πŸ“š Type definitions for Bun.js and Jest
- 🎨 Prettier to enforce consistent code style
- βš™οΈ EditorConfig for consistent coding style
- πŸ“¦ NPM scripts for common operations
- πŸ“ Simple example of Tsx code
- πŸ— Run tasks with Grunt (example for backup)
- πŸ–₯️ Ungit for version control (git) with a GUI
- ⚑ Use Vite for lightning fast HMR (hot reload)
- ⚑ Optimized build by Vite
- πŸ§ͺ E2E test with Playwright
- 🐳 Containerization for easy deployment and scaling with Docker
- 🧺 Pre-configured setup for Redux or Zustand as state manager, easily removable if not needed
- πŸŒ€ Tailwind CSS already set up with PostCSS for flexible usage
- 🩷 Sass extends CSS with features like variables, nested rules, mixins, imports, inheritance, built-in functions, and more ...

> You can customize your website faster with [PLUM](https://github.com/RajaRakoto/plum), a mixins toolset powered by SASS. Quickly produce consistent, scalable CSS output, regardless of project size. For the best experience, it is recommended to use SASS version `1.77.6` to ensure smooth integration with PLUM.

---

### πŸ“Œ Usage

To use this template, use the following commands:

```bash
bun create github.com/RajaRakoto/react-boilerplate
cd
bun run pkg-upgrade # to upgrade outdated dependencies in interactive mode
```

> 1. This starter kit uses the MIT license with my name and GitHub profileβ€”update or remove if needed.
> 2. Each subdirectory in `src` has a `README.md` to explain its structure.
> 3. Adjust the `package.json` (name, description, author, etc.) to fit your project.

---

### πŸ“Œ Deployment

Instructions are provided for deploying both with and without Docker. Both options still require a platform to host the application.

**Without Docker**: Deploying is as easy as running the following command and pointing your web server to the generated `index.html` file found at `dist/index.html`

```bash
bun run build
```

**With Docker**: A Dockerfile with an [NGINX](https://www.nginx.com/) base image is also provided for quick and easy deployments. Simply execute the following commands:

```bash
bun run build
docker build . -t # eg: docker build . -t todo-app
docker run -p :80 # eg: docker run todo-app -p 8080:80
```

---

### πŸ“Œ NPM Scripts

**Preview**

- πŸ“œ `preview` - Run your app with preview mode.

**Clean**

- πŸ“œ `clean` - Remove coverage data, prod folder, playwright-report ...

**Development**

- πŸ“œ `dev` - Launch Vite.js development server using hot module remplacement (HMR).

**Build**

- πŸ“œ `build` - Build faster with Vite.js.

**Testing**

- πŸ“œ `test:unit` - Run unit testing with Bun.js.
- πŸ“œ `test:unit:watch` - Interactive watch mode to automatically re-run unit testing with Bun.js.
- πŸ“œ `test:e2e` - Run end to end (e2e) testing with Playwright.

**Linting and Formatting**

- πŸ“œ `biome:start` - Starts the Biome daemon server. You can specify a custom configuration file path using the `--config-path` option.
- πŸ“œ `biome:stop` - Stops the Biome daemon server.
- πŸ“œ `biome:fix` - Runs a source code check and applies automatic fixes (linter & formatter) according to the defined rules.
- πŸ“œ `biome:unsafe` - Works like `biome:fix`, but may apply more invasive or risky changes.
- πŸ“œ `eslint` - Lints the project with ESLint and reports unhandled errors.
- πŸ“œ `prettier` - Formats code according to the `.prettierrc` rules.

**Backup and Dependency Management**

- πŸ“œ `backup` - Backup files with Grunt.
- πŸ“œ `pkg-check` - Check useless dependencies with depcheck.
- πŸ“œ `pkg-upgrade` - Upgrade outdated dependencies (interactive mode) with npm-check-updates.

**Versioning**

- πŸ“œ `versioning` - Start ungit server.

**NPM Commands**

- πŸ“œ `npm-version:major` - Increments the major version number of your project using npm.
- πŸ“œ `npm-version:minor` - Increments the minor version number of your project using npm.
- πŸ“œ `npm-version:patch` - Increments the version patch number of your project using npm.

**NVM**

- πŸ“œ `nvm` - Manage multiple node.js versions. Easily switch between node versions per project to ensure compatibility.

**Scripts**

- πŸ“œ `script:sass-charset` - Adds the @charset "UTF-8" declaration at the beginning of all SCSS files in the project.

---

### πŸ“Œ Similar

You can also check out my other starter projects:

- πŸš€ [bun-boilerplate](https://github.com/RajaRakoto/bun-boilerplate)
- πŸš€ [node-boilerplate](https://github.com/RajaRakoto/node-boilerplate)
- πŸš€ [next-boilerplate](https://github.com/RajaRakoto/next-boilerplate)
- πŸš€ [qwik-boilerplate](https://github.com/RajaRakoto/qwik-boilerplate)
- πŸš€ [vscode-boilerplate](https://github.com/RajaRakoto/vscode-boilerplate)
- πŸš€ [cli-boilerplate](https://github.com/RajaRakoto/cli-boilerplate)