🛠️ My Laravel Learning Journey: Why I’m Choosing Filament Next

As a beginner learning Laravel, I’ve spent the last few weeks diving into how this PHP framework works — not just how to write code, but how the entire structure is designed.

This blog post is a summary of my progress so far, what I’ve learned, and why I’ve decided to use Filament next before moving into more frontend-focused topics like Blade templates and Tailwind CSS.

🚀 What I’ve Learned So Far in Laravel

Laravel is full of tools that make web development easier once you understand the basics. Here’s a breakdown of what I’ve covered:

📁 Laravel File Structure

  • I now understand the roles of app/, routes/, database/, and resources/ folders.
  • I can locate my models, controllers, migrations, seeders, and views easily.

💻 Artisan Commands

I’ve learned how to use Artisan, Laravel’s command-line tool, to generate various components. For example:

php artisan make:model Customer -mcr

This command does 3 things at once:

  • Creates a model named Customer
  • Generates a migration file for the customers table
  • Builds a controller to handle logic

🗃️ Working with Migrations, Seeders, and Factories

  • I created a customers table with fields like name, email, and phone using migrations.
  • I generated fake data using factories and inserted them with seeders:
Customer::factory()->count(10)->create();
  • I used the Tinker console and database tools to confirm the data was being saved.

🌐 Setting up Routes and Views

  • I created routes in web.php to list customers and view details of a single customer.
  • For example:
Route::get('/customers', [CustomerController::class, 'index']);
Route::get('/customers/{id}', [CustomerController::class, 'show']);
  • I displayed this data using Blade templates and passed it from the controller.

So far, I’ve created a basic working web app with fake customer data. 🎉


🔍 So, What’s Next?

Many tutorials now jump into advanced topics like:

  • Middleware
  • Authentication (login/logout)
  • Blade components
  • Tailwind CSS for frontend styling

But I paused here and thought:

What if I already have data — for example, a complete product or customer list in a CSV file — and I just want to load it into a table, search it, filter it, and even show some charts?


💡 Why I’m Choosing Filament

Filament is a Laravel-based admin panel that helps you build dashboards, CRUD systems, and visual interfaces — all powered by your Laravel backend.

Instead of writing lots of Blade templates and styling everything manually with Tailwind CSS, Filament lets me focus on data first.


✅ Real-World Example

Let’s say I have a customers.csv file like this:

csvCopyEditname,email,phone
Alice Johnson,alice@example.com,1234567890
Bob Smith,bob@example.com,0987654321

With Filament, I can:

  • Upload and import this file into the database
  • Automatically see the data in a paginated, sortable, and searchable table
  • Filter records by column (e.g. filter customers by email domain)
  • View or edit individual customer records
  • Even create dashboard widgets to show stats like:
    • Total customers
    • New entries this month
    • Graphs using chart widgets

⚖️ Pros and Cons of Using Filament at This Stage

✅ Pros

BenefitDescription
🔧 Quick SetupGet a functional admin panel in minutes
📋 Built-in TablesTables include pagination, search, filter, sort
📈 Dashboard ReadyAdd widgets and charts without extra libraries
🔐 Auth SupportComes with login/logout functionality
🧩 ExtensibleCan customize components when needed
⚡ Fast PrototypingGood for MVPs or internal tools

❌ Cons

LimitationDescription
🎨 Less Design FreedomUI is opinionated unless you customize deeply
🧠 New Learning CurveYou need to understand how Filament structures pages, resources, and tables
📚 Less Focus on BladeIf you’re learning frontend in Laravel, this might delay Blade/Tailwind practice

🧭 My Plan Moving Forward

Here’s the path I’m planning to take:

  1. Use Filament to build a data dashboard
    • Import data from CSV into a database table (e.g. customers, products)
    • Display it using Filament tables and resources
    • Add simple charts using Filament widgets
  2. Use this project as a learning playground
    • Understand real-world admin panel requirements
    • Practice data handling, relationships, and user authentication
  3. Then return to Blade and Tailwind
    • Once I see how Laravel handles a full working UI via Filament, I’ll go back and start building custom Blade views manually
    • I’ll try to recreate some parts of the Filament interface using Tailwind CSS and Blade to understand the frontend better

🎯 Conclusion

Laravel is powerful — but sometimes you don’t need to build everything from scratch, especially when you’re still learning.

That’s why I’m choosing to explore Filament next. It gives me a working admin interface quickly, helps me visualize data, and lets me focus on how Laravel works behind the scenes. Once I’m confident with that, I’ll dig deeper into building custom UIs using Blade and Tailwind CSS.

If you’re learning Laravel and have real data to work with — try Filament. It’s like Laravel + Admin Panel superpowers.