Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/rayonstudios/rayon_react_starter

Starter kit on steroids for modern React projects
https://github.com/rayonstudios/rayon_react_starter

ant-design antd developer-experience i18n rapid-development react react-starter react-starter-kit scaffold starter-template tailwindcss typescript vite

Last synced: about 2 months ago
JSON representation

Starter kit on steroids for modern React projects

Awesome Lists containing this project

README

        

# Rayon React Starter

Rayon React Starter is an opinionated starter kit designed to scaffold React projects quickly with a comprehensive and well-structured environment. Built with a modern tech stack and batteries included, it helps you start building your project in no time.

[Live Demo](https://rayon-react-starter.web.app/)

## Tech Stack

- **React**: For building user interfaces
- **TypeScript**: Type-safe JavaScript at any scale
- **Vite**: Next generation front-end tooling
- **Redux Toolkit**: State management with slices and thunks
- **Ant Design**: Elegant and consistent UI components
- **Tailwind CSS**: Utility-first CSS framework for rapid UI development
- **Axios**: Promise-based HTTP client for making requests

## Features

- ๐ŸŒ— **Light / Dark Theme**: Easily switch between light and dark modes
- ๐ŸŒ **i18n**: Internationalization support for multilingual applications
- ๐Ÿ—‚ **Config-based Routing & Menu**: Declarative and flexible route management with automatic menu generation
- ๐Ÿ” **Token-based Authentication**: Secure public and protected routes with token authentication
- ๐Ÿ–ผ **Per-page Layouts**: Customize layouts for different pages
- โš™๏ธ **RBAC**: Role-Based Access Control with route-level role checks
- ๐Ÿ”„ **Environment Separation**: Setup development and production environments distinguishably
- ๐Ÿšฆ **Global Error Handling**: Comprehensive error management throughout the application
- ๐ŸŒ€ **Automatic Loading States**: Built-in loading state management for async thunks
- ๐Ÿ“‚ **Feature-based Folder Structure**: Maintain clean separation of concerns
- ๐Ÿ›  **Built-in Utilities**: Handy utility functions, hooks, and components to cover common use cases
- ๐Ÿงน **Prettier and ESLint Config**: Enforce code style and quality with Prettier and ESLint configurations
- ๐Ÿš€ **CI/CD with Firebase Hosting**: Continuous Integration and Deployment setup using Firebase Hosting and Github Actions for seamless deployment

## Getting Started

### Prerequisites

Ensure you have the following installed:

- [Node.js](https://nodejs.org/)
- [Yarn](https://classic.yarnpkg.com/)

### Installation

1. Clone the repository:
```bash
git clone https://github.com/rayonstudios/rayon_react_starter
cd rayon-react-starter
```
2. Install dependencies:
```bash
yarn
```
3. Start the development server:
```bash
yarn dev
```

The application should now be running on http://localhost:5173

## Folde Structure

```bash
โ”œโ”€โ”€ lib/ # Reusable, feature-independent code
โ”œโ”€โ”€ modules/ # Feature-dependent code
โ”œโ”€โ”€ pages/ # Page components
โ””โ”€โ”€ ...
```

- Use **snake_case** for file and folder names to maintain consistency.
- Feature-based folder structure ensures a clean separation of concerns for better scalability and maintainability.

## Best Practices

- Reusable code should generally reside in the `lib` folder.
- Feature-dependent code should be organized under `modules`.
Pages components should be placed under the `pages` folder.

## Roadmap

- [ ] Detailed Developer Documentation
- [ ] Add unit, integration and e2e tests support
- [ ] Convert to a modular CLI based tools