Skip to content

Commit bb394c4

Browse files
committed
chore: update README.md with detailed features and introduction
1 parent 447e20e commit bb394c4

2 files changed

Lines changed: 121 additions & 13 deletions

File tree

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,5 @@ yarn-error.log
2727
/.vscode
2828
/.zed
2929

30-
/tmp
30+
/tmp
31+
BRAINSTORM.md

README.md

Lines changed: 119 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,132 @@
11
# Laravel + React Starter Kit
22

3-
## Introduction
3+
## [Devs Buddy](https://devsbuddy.com) provides a highly opinionated Laravel Starter Kit with Inertia and React. It helps you get up and running quickly with clean, consistent, and fully type-safe code.
44

5-
Our React starter kit provides a robust, modern starting point for building Laravel applications with a React frontend using [Inertia](https://inertiajs.com).
5+
## 🧩 Introduction
66

7-
Inertia allows you to build modern, single-page React applications using classic server-side routing and controllers. This lets you enjoy the frontend power of React combined with the incredible backend productivity of Laravel and lightning-fast Vite compilation.
7+
This starter kit is a fork of [laravel's official react starter kit](https://github.com/laravel/react-starter-kit).
88

9-
This React starter kit utilizes React 19, TypeScript, Tailwind, and the [shadcn/ui](https://ui.shadcn.com) and [radix-ui](https://www.radix-ui.com) component libraries.
9+
It has been modified to be fully strict, with 100% type safety, and follows an action-oriented pattern.
1010

11-
## Official Documentation
11+
A few more helpful default features have been added, and the built-in authentication system has been updated to follow these strict rules.
12+
This ensures consistent code quality across your entire project.
1213

13-
Documentation for all Laravel starter kits can be found on the [Laravel website](https://laravel.com/docs/starter-kits).
14+
---
1415

15-
## Contributing
16+
## 🌟 Inspirations
1617

17-
Thank you for considering contributing to our starter kit! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
18+
- [nunomaduro/laravel-starter-kit-inertia-react](https://github.com/nunomaduro/laravel-starter-kit-inertia-react)
19+
- [nunomaduro/laravel-starter-kit](https://github.com/nunomaduro/laravel-starter-kit)
1820

19-
## Code of Conduct
21+
## These projects were the main inspiration for creating this starter kit. I’ve added additional features that are essential for most modern applications.
2022

21-
In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).
23+
## 🚀 Highlights
2224

23-
## License
25+
1. **Fully Strict Types**: It follows 100% of type coverage for all the classes, methods and logic.
26+
2. **Action Oriented Pattern**: It uses dedicated Action classes for handling business logic and mutations. This keeps your controllers clean and makes actions reusable across your project.
27+
3. **Cruddy by Design**: It embraces the Cruddy by Design pattern to stay aligned with Laravel’s core concepts, making everything easy to understand and extend.
2428

25-
The Laravel + React starter kit is open-sourced software licensed under the MIT license.
29+
---
30+
31+
## ⚙️ Default features
32+
33+
1. **Authentication**: Based on Laravel’s built-in authentication, with a few tweaks to fit this project’s structure and standards.
34+
2. **Global Configs**: Most apps need some kind of global configuration that can be managed from one place and applied across the app. Includes settings like:
35+
- App Logo
36+
- App Favicon
37+
- Basic Mail Config (excluding mail server credentials)
38+
3. **Mail Templates**: Includes a dynamic mail template system with a flexible Mailable class.
39+
You can create templates with fields like Subject and Content, then send emails by simply calling helper methods with the template code — it just works.
40+
4. **Queuable Mail**: The mailing system combines the global config and mail template features.
41+
If mail queueing is enabled in the config, emails will automatically be pushed to the queue for asynchronous delivery.
42+
5. **Events**: From the beggining this starter kit includes some events that are being fired on each action that may some other action in future, for this I follow to create Event for each action taken in the app, this way in future you just add a listener to listen these events and act upon them.
43+
- Why custom events instead of model observers?
44+
45+
I prefer explicit event handling over “magic” behavior. With custom events, you can keep logic clean and encapsulated inside dedicated listener classes.
46+
47+
6. **Custom Helpers**: Instead of a typical `helpers.php` file, this kit organizes helpers as **Traits**, **Services**, **Support** classes, and **Facades**.
48+
- A small `helpers.php` file is still included for global functions where class imports aren’t possible.
49+
50+
---
51+
52+
## 🧰 Getting Started
53+
54+
### 1. Requirements
55+
56+
Make sure you have the following installed:
57+
58+
- PHP 8.4+
59+
- Composer
60+
- Node.js & npm (or yarn/pnpm)
61+
62+
### 2. Installation
63+
64+
Clone the repository and install dependencies:
65+
66+
```bash
67+
git clone https://github.com/devsbuddy/laravel-react-starter-kit.git your-awesome-app
68+
```
69+
70+
### Setup
71+
72+
Navigate to newly created prject directory and run setup commands
73+
74+
```bash
75+
cd your-awesome-app # Navigate to the project directory
76+
77+
composer setup # Install all deps and setup project
78+
```
79+
80+
### Configure
81+
82+
By default this starter kit uses sqlite database and if you want to use other database driver you can configure that in your `.env` file:
83+
84+
```bash
85+
# Example PostgreSQL Config
86+
87+
DB_CONNECTION=pgsql
88+
DB_HOST=127.0.0.1
89+
DB_PORT=5432
90+
DB_DATABASE=your_awesome_app
91+
DB_USERNAME=postgres
92+
DB_PASSWORD=
93+
```
94+
95+
After configuring new database you can run migration and seeders:
96+
97+
```bash
98+
php artisan migrate --seed
99+
100+
# OR
101+
102+
php artisan migrate:fresh --seed
103+
```
104+
105+
### Start development server
106+
107+
Now as the app is all setup correctly you can start working on it:
108+
109+
```bash
110+
# Start development server
111+
composer dev
112+
```
113+
114+
### Check on browser
115+
116+
After running your development server you can visit to [http://localhost:8000](http://localhost:8000) or [http://127.0.0.1:8000](http://127.0.0.1:8000) on your favorite browser to see the app in action.
117+
118+
🤝 Contributing
119+
120+
Contributions are welcome!
121+
If you’d like to improve this starter kit, feel free to:
122+
123+
1. Fork the repository
124+
2. Create a new feature branch (`git checkout -b feature/your-feature`)
125+
3. Commit your changes (`git commit -m 'Add some feature'`)
126+
4. Push to the branch (`git push origin feature/your-feature`)
127+
5. Open a Pull Request
128+
129+
Please make sure your code follows the existing structure and style conventions also all tests are passing.
130+
131+
📄 License
132+
This project is open-source and available under the MIT License.

0 commit comments

Comments
 (0)