Skip to content

πŸš€πŸŽ‰πŸ“š Boilerplate and Starter for React.js 19 with React Router support, Tailwind CSS 3.4 and TypeScript ⚑️ Made with developer experience first: React.js 19 + TypeScript + ESLint + Prettier + Husky + Lint-Staged + Commitlint + VSCode + PostCSS + Tailwind CSS ✨

Notifications You must be signed in to change notification settings

LiamPham98/boilerplate-vite-react

Repository files navigation

 _______             __  __                                __            __
|       \           |  \|  \                              |  \          |  \
| $$$$$$$\  ______   \$$| $$  ______    ______    ______  | $$  ______ _| $$_    ______
| $$__/ $$ /      \ |  \| $$ /      \  /      \  /      \ | $$ |      \   $$ \  /      \
| $$    $$|  $$$$$$\| $$| $$|  $$$$$$\|  $$$$$$\|  $$$$$$\| $$  \$$$$$$\$$$$$$ |  $$$$$$\
| $$$$$$$\| $$  | $$| $$| $$| $$    $$| $$   \$$| $$  | $$| $$ /      $$| $$ __| $$    $$
| $$__/ $$| $$__/ $$| $$| $$| $$$$$$$$| $$      | $$__/ $$| $$|  $$$$$$$| $$|  \ $$$$$$$$
| $$    $$ \$$    $$| $$| $$ \$$     \| $$      | $$    $$| $$ \$$    $$ \$$  $$\$$     \
 \$$$$$$$   \$$$$$$  \$$ \$$  \$$$$$$$ \$$      | $$$$$$$  \$$  \$$$$$$$  \$$$$  \$$$$$$$
                                                | $$
                                                | $$
                                                 \$$

Built by Trung PhαΊ‘m

Features

  • ⚑ React.js
  • πŸ”₯ Type checking TypeScript
  • πŸ’Ž Integrate with Tailwind CSS
  • ⌨️ Form handling with Mantine
  • πŸ”΄ Validation library with Zod
  • πŸ“ Linter with ESLint (default Next.js, Next.js Core Web Vitals, Tailwind CSS and Airbnb configuration)
  • πŸ’– Code Formatter with Prettier
  • 🦊 Husky for Git Hooks
  • 🚫 Lint-staged for running linters on Git staged files
  • πŸš“ Lint git commit with Commitlint
  • πŸ““ Write standard compliant commit messages with Commitizen
  • πŸ’‘ Absolute Imports using @ prefix
  • πŸ—‚ VSCode configuration: Debug, Settings and Extensions
  • 🌱 Phosphor Icons

Requirements

  • Node.js 20+ and pnpm

Getting started

Run the following command on your local environment:

git clone --depth=1 https://gitlab.yody.io/unicorn/Omnichannel/e-commerce/yobuggy/fe/buggy-web-bo.git
cd buggy-web-bo
npm i -g pnpm
pnpm install

Start source

pnpm run dev

Open http://localhost:3000 with your favorite browser to see your project.

Project structure

.
β”œβ”€β”€ README.md               # Documentation for the project, including how to set up and use the application.
β”œβ”€β”€ .husky                  # Configuration for Husky, which is used to manage Git hooks (e.g., pre-commit or pre-push hooks).
β”œβ”€β”€ .vscode                 # VSCode-specific configuration files, such as recommended extensions or workspace settings.
β”œβ”€β”€ public                  # Static public assets that are served directly (e.g., images, favicon, robots.txt).
β”œβ”€β”€ index.html              # Main HTML file that acts as the entry point for the application.
β”œβ”€β”€ src                     # Source code for the application.
β”‚   β”œβ”€β”€ components          # React components responsible for building the UI.
β”‚   β”‚   β”œβ”€β”€ atoms           # Small, reusable UI components (e.g., buttons, input fields, icons).
β”‚   β”‚   β”œβ”€β”€ molecules       # Combinations of atoms to form slightly more complex UI components (e.g., a form field with a label and input).
β”‚   β”‚   β”œβ”€β”€ organisms       # Complex and reusable components made from atoms and molecules (e.g., headers, footers, or cards).
β”‚   β”œβ”€β”€ core                # Contains core logic and Clean Architecture layers.
β”‚   β”‚   β”œβ”€β”€ application     # Application-level logic and business rules.
β”‚   β”‚   β”‚   β”œβ”€β”€ repositories # Interfaces for repositories, defining how data should be handled (e.g., CRUD operations).
β”‚   β”‚   β”‚   β”œβ”€β”€ services    # Business services that interact with repositories and execute application logic.
β”‚   β”‚   β”‚   β”œβ”€β”€ use-cases   # Specific use cases for the application, implementing business logic using services and repositories.
β”‚   β”‚   β”œβ”€β”€ entities        # Domain entities and business logic.
β”‚   β”‚   β”‚   β”œβ”€β”€ models      # Domain models representing the core data structures (e.g., User, Product).
β”‚   β”‚   β”‚   β”œβ”€β”€ dto         # Data Transfer Objects used to define the shape of data sent or received.
β”‚   β”‚   β”œβ”€β”€ infrastructure  # Handles communication with external systems (e.g., APIs).
β”‚   β”‚   β”‚   β”œβ”€β”€ services    # Parameter configurations and request structures for API interactions.
β”‚   β”‚   β”‚   β”œβ”€β”€ repositories # Concrete implementations of repository interfaces for API communication.
β”‚   β”œβ”€β”€ hooks               # Custom React hooks for managing reusable logic (e.g., useFetch, useAuth).
β”‚   β”œβ”€β”€ libs                # Configuration for third-party libraries (e.g., Axios, i18n, or any library-specific setup).
β”‚   β”œβ”€β”€ store               # State management setup (e.g., Redux, Zustand, or Context API configurations).
β”‚   β”œβ”€β”€ styles              # Global or component-specific styles (e.g., CSS, SCSS, or Tailwind CSS imports).
β”‚   β”œβ”€β”€ utils               # Utility functions and helpers (e.g., date formatters, validation utilities).
β”œβ”€β”€ tailwind.config.js      # Configuration file for Tailwind CSS, customizing the design system (e.g., colors, spacing).
└── tsconfig.json           # TypeScript configuration file for defining project-specific TypeScript settings.

Commit Message Format

The project enforces Conventional Commits specification. This means that all your commit messages must be formatted according to the specification. To help you write commit messages, the project uses Commitizen, an interactive CLI that guides you through the commit process. To use it, run the following command:

pnpm commit

Made with β™₯ by Team

About

πŸš€πŸŽ‰πŸ“š Boilerplate and Starter for React.js 19 with React Router support, Tailwind CSS 3.4 and TypeScript ⚑️ Made with developer experience first: React.js 19 + TypeScript + ESLint + Prettier + Husky + Lint-Staged + Commitlint + VSCode + PostCSS + Tailwind CSS ✨

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published