# Laravel Nova

What is Laravel Nova?

Laravel Nova is an admin panel tool designed to manage data models within a Laravel application. It offers a clean, customizable UI for managing resources, including CRUD operations, metrics, and relationships.

---

## Origin

Nova was introduced by the Laravel team as a premium package for building modern admin panels with minimal effort. It integrates deeply with Laravel's Eloquent ORM and policies.

---

## Why is Laravel Nova Used?

1. **Speeds Up Development**: Provides out-of-the-box functionality for managing data.
2. **Highly Customizable**: Supports custom fields, actions, and filters.
3. **Integrates Seamlessly**: Works directly with Laravel's Eloquent models and policies.

---

## Best Practices

1. **Define Resources Thoughtfully**: Organize resources to reflect your application's data structure.
2. **Leverage Policies**: Use Laravel's policies to manage resource permissions.
3. **Use Metrics and Dashboards**: Provide insights with Nova's customizable metrics.

---

## Example in Action

Install Nova:

```bash
composer require laravel/nova
```

Define a resource for the `Post` model:

```php
namespace App\Nova;

use Laravel\Nova\Fields\Text;
use Laravel\Nova\Fields\BelongsTo;

class Post extends Resource
{
    public static $model = \App\Models\Post::class;

    public function fields(Request $request)
    {
        return [
            Text::make('Title'),
            Text::make('Content'),
            BelongsTo::make('User'),
        ];
    }
}
```

Read this definition in a browser: https://ranetrace.com/glossary/laravel-nova
