Models, Controllers, Services, Jobs, etc.).resources/js folder.app/
  Models/
  Http/
    Controllers/
  Services/
resources/
  js/
    components/
      ui/
    layouts/
    pages/
    utils/
  views/
routes/
  web.php
  api.php
  auth.php
// Good (React)
interface LoginProps {
status?: string;
canResetPassword: boolean;
  
}
export default fanction LoginForm({status, canResetPassword}: LoginProps){
return (
  <div>LoginForm</div>
 )
}
// Bad
const user_card = (props) => {
  return <div>{props.username}</div>;
};
' over double quotes " in JavaScript/TypeScript.Auto format using Laravel Pint learn more
./vendor/bin/pint --repair
resources/views/app.blade.php
<!DOCTYPE html>
<html lang="en">
<head>
    @viteReactRefresh
    @vite(['resources/js/app.tsx'])
</head>
<body>
    @inertia
</body>
</html>
fillable or guarded attributes to prevent mass assignment vulnerabilities.class User extends Model {
    protected $fillable = ['name', 'email'];
    public function posts() {
        return $this->hasMany(Post::class);
    }
}
    /**
     * Display the user's Account form.
     */
    public function edit(Request $request): Response
    {
        return Inertia::render('account/edit', [
            'mustVerifyEmail' => $request->user() instanceof MustVerifyEmail,
            'status' => session('status'),
        ]);
    }
routes/web.php.Route::group and middleware.// Account
Route::middleware('auth')->group(function () {
    Route::get('/account', [AccountController::class, 'edit'])->name('account.edit');
    Route::patch('/account', [AccountController::class, 'update'])->name('account.update');
    Route::delete('/account', [AccountController::class, 'destroy'])->name('account.destroy');
});
Props interfaces to define component props.// Custom Hook
import { useState } from 'react';
function useCounter(initialValue: number) {
  const [count, setCount] = useState(initialValue);
  const increment = () => setCount(count + 1);
  return { count, increment };
}
// Component
export default function Counter(){
  const { count, increment } = useCounter(0);
  return (
    <div>
      <p>{count}</p>
      <button onClick={increment}>Increment</button>
    </div>
  );
};
for Backend learn more
php artisan make:test AccountTest
// PHPUnit Test
    public function test_account_page_is_displayed(): void
    {
        $user = User::factory()->create();
        $response = $this
            ->actingAs($user)
            ->get('/account');
        $response->assertOk();
    }
php artisan test
for Frontend
// Jest Test
import { render, screen } from '@testing-library/react';
import Counter from './Counter';
test('renders counter', () => {
  render(<Counter />);
  const buttonElement = screen.getByText(/increment/i);
  expect(buttonElement).toBeInTheDocument();
});
eslint, phpcs) and formatters (prettier, phpcbf) to maintain code quality.