/react-boilerplate

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

Primary LanguageTypeScriptMIT LicenseMIT

react-boilerplate πŸš€

forthebadge forthebadge forthebadge forthebadge forthebadge

Git Gitub

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, 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:

bun create github.com/RajaRakoto/react-boilerplate <project-name>
cd <project-name>
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

bun run build

With Docker: A Dockerfile with an NGINX base image is also provided for quick and easy deployments. Simply execute the following commands:

bun run build
docker build . -t <container_name> # eg: docker build . -t todo-app
docker run  -p <port_number>:80 <container_name> # 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: