Introduction
Starter kit ini saya buat untuk developer yang ingin membangun aplikasi admin panel berbasis Laravel dan Filament dengan pondasi yang sudah rapi sejak awal. Fokusnya bukan hanya "cepat jadi", tetapi juga supaya struktur project tetap enak dibaca ketika aplikasi mulai membesar.
Dokumentasi ini ditulis untuk developer pemula sampai menengah. Jadi, selain menjelaskan apa yang dipakai di starter kit, saya juga jelaskan cara pikir di balik keputusan-keputusan tersebut.
Tujuan Starter Kit Ini
Starter kit ini saya siapkan supaya Anda tidak memulai project dari nol setiap kali membuat admin panel. Beberapa hal yang ingin saya dapatkan dari starter kit ini:
- struktur project yang konsisten
- pemisahan logika bisnis dari UI
- tooling kualitas kode yang sudah siap pakai
- pengalaman development yang nyaman untuk project jangka panjang
Cara Pikir yang Dipakai
Ada beberapa prinsip utama yang saya pakai saat menyusun starter kit ini:
1. UI jangan terlalu pintar
Saya tidak suka ketika semua logika bisnis ditaruh di Filament Resource, Livewire component, atau controller. UI sebaiknya fokus menerima input, menampilkan data, lalu memanggil kelas yang memang bertugas mengerjakan proses bisnis.
Karena itu, starter kit ini banyak memakai Action Pattern.
2. Kode harus enak dirawat setelah 3-6 bulan
Saat project masih kecil, banyak pendekatan terasa "cepat". Masalahnya baru terasa ketika resource mulai banyak, role mulai kompleks, dan kebutuhan bisnis makin bercabang.
Starter kit ini mencoba mengurangi masalah itu dari awal:
- action untuk mutasi data
- policy untuk otorisasi
- Filament untuk admin UI
- test dan static analysis untuk menjaga kualitas
3. Boilerplate boleh ada, asal menghemat beban berpikir
Saya tidak anti boilerplate. Yang saya hindari adalah boilerplate yang tidak memberi manfaat.
Contohnya:
- saya membuat command untuk generate action karena itu membantu konsistensi
- saya menghindari repository pattern untuk kasus biasa karena itu sering hanya menambah file tanpa nilai tambah
Isi Starter Kit Ini
Beberapa komponen utama yang dipakai:
- Laravel 12
- Filament
- Livewire
- Laravel Sanctum
- Filament Shield
- Pest
- Laravel Pint
- Larastan
- Rector
Semua itu dipakai bukan karena ingin terlihat "lengkap", tetapi karena memang membantu workflow yang saya inginkan.
Studi Kasus Sederhana
Bayangkan Anda ingin membuat modul User, Product, dan Order.
Di banyak project, biasanya hal ini terjadi:
- logika create/update ditaruh di controller atau Filament page
- validasi bercampur dengan mutasi data
- delete logic tersebar di banyak tempat
- policy terlupa di beberapa endpoint
Di starter kit ini, saya ingin alurnya lebih jelas:
- User submit form dari Filament atau API.
- Request atau page memvalidasi input dan melakukan authorization.
- Action class menjalankan logika bisnis.
- Resource hanya menjadi lapisan presentasi dan orkestrasi.
Hasilnya: ketika aturan bisnis berubah, Anda tahu harus membuka file yang mana.
Install Baru dengan Laravel Installer
- Pastikan Laravel Installer sudah tersedia.
Jika Anda memakai Laravel Herd, biasanya Laravel Installer sudah ikut tersedia. Untuk mengeceknya:
laravel --version
Jika belum ada, Anda bisa menginstalnya dengan Composer:
composer global require laravel/installer
- Buat project baru langsung dari starter kit:
laravel new my-app --using=lyrihkaesa/filament-starter-kit
cd my-app
- Jika ada script saat create project yang gagal atau belum lengkap, jalankan ulang setup dasarnya:
composer install
npm install
npm run build
cp .env.example .env
php artisan migrate --seed
php artisan key:generate
- Jalankan server development:
composer dev
Jika menggunakan Laravel Herd, biasanya aplikasi dapat diakses melalui domain lokal seperti http://filament-starter-kit.test.
Login Default
Starter kit menyediakan akun default untuk mempermudah eksplorasi awal:
- Email:
[email protected]or[email protected] - Password:
password
Jika APP_DEBUG=true, pada beberapa flow development form login juga bisa terisi otomatis agar onboarding lebih cepat.
Konfigurasi APP_URL
Sesuaikan APP_URL dengan cara Anda menjalankan aplikasi:
- Jika menggunakan Laravel Herd, atur
APP_URL=http://filament-starter-kit.test - Jika menggunakan
composer dev, gunakanAPP_URL=http://localhost:8000
Saran untuk Developer Pemula
Kalau ini pertama kali Anda memakai starter kit ini, saya sarankan urutan membacanya:
docs/02-action-pattern.mddocs/08-user-resource.mddocs/16-policy-and-action-integration.mddocs/14-filament-shield.mddocs/07-api.md
Dengan urutan itu, Anda akan lebih mudah memahami "alur berpikir" starter kit ini, bukan hanya daftar fiturnya.