Bundle Admin Panel: Laravel + Livewire 3 2026
Stack lengkap untuk build admin panel SMB Indonesia: Laravel 12 + Livewire 3 + Filament 4. Saya pakai untuk 5 klien internal tool 2024-2026. Productivity tinggi, total cost rendah.
TL;DR
- Stack: Laravel 12 + Livewire 3 + Filament 4 + MySQL/MariaDB + Tailwind v4.
- Cost: Rp 150-300rb/bulan VPS + Rp 175rb/year domain = Rp 2-4 juta/year total.
- Verdict: Recommended untuk admin panel SMB Indonesia (internal tool, CRUD heavy).
Konteks
Saya pakai bundle ini di 5 project klien Indonesia 2024-2026:
- Admin panel klinik dental Jakarta (Q2 2024-now): kelola appointment, dokter, pasien, billing. 12 staff klinik. VPS Niagahoster Rp 150rb/bulan.
- Internal tool warung scale Tangerang (Q4 2024-now): inventory + POS + report 3 cabang. 8 staff. VPS Biznet Rp 250rb/bulan.
- HR + payroll SaaS SMB Jakarta (Q1 2025-now): 200 employee. VPS Niagahoster Cloud Rp 350rb/bulan.
- Ecommerce admin klinik kecantikan (Q3 2025-now): pesanan, member, voucher. 5 admin. Railway $25/bulan.
- Logistik tracking app Tangerang (Q1 2026-now): order, driver, route. 15 user. VPS Biznet Rp 250rb/bulan.
Total 24 bulan production. Zero major outage. Iteration cepat (deploy 2-5x/minggu).
Pricing (Juni 2026)
Software
- Laravel 12: gratis (open-source MIT)
- Livewire 3: gratis
- Filament 4: gratis (open-source MIT)
- Tailwind v4: gratis
Hosting
- VPS Niagahoster Cloud: Rp 150-350rb/bulan (2-4GB RAM)
- VPS Biznet Gio: Rp 200-450rb/bulan
- Railway: $20-40/bulan = Rp 320-640rb (managed, persistent)
- Forge + DigitalOcean: $19/mo Forge + $24/mo Droplet = Rp 700rb total
Untuk SMB Indonesia: VPS lokal (Niagahoster/Biznet) sweet spot pricing + latency.
Database
- MySQL atau MariaDB di VPS sama: gratis (bawaan)
- PlanetScale MySQL: $39/mo = Rp 624rb (jika butuh managed + branching)
Total cost (typical)
- Solo dev launch: Rp 175rb (domain) + Rp 150rb/bulan (VPS) = Rp 2 juta/year-1
- Production 5-50 user: Rp 2-4 juta/year
- Production 50-500 user: Rp 4-8 juta/year
Architecture
User browser
↓
nginx atau Caddy (reverse proxy)
↓
FrankenPHP atau PHP-FPM 8.4
↓
Laravel 12 + Livewire 3 + Filament 4
↓
MySQL / MariaDB
↓
Redis cache + queue worker
Monolith friendly. Deploy 1 server bisa handle 5-50 user. Scale horizontal dengan load balancer.
Setup recipe (2-3 minggu MVP)
Week 1: Init + Auth + Schema
Day 1-2: Init project
composer create-project laravel/laravel my-admin
cd my-admin
# Add Livewire + Filament
composer require livewire/livewire
composer require filament/filament:"^4.0"
# Install Filament panel
php artisan filament:install --panels
# Tailwind v4
npm install -D tailwindcss@latest @tailwindcss/vite
Day 3-4: Auth + Role
Filament built-in auth. Plus Spatie Permission untuk RBAC:
composer require spatie/laravel-permission
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
php artisan migrate
Setup role: Admin, Manager, Staff.
Day 5-7: DB schema
Contoh schema untuk admin klinik dental:
// database/migrations/create_patients_table.php
Schema::create('patients', function (Blueprint $table) {
$table->id();
$table->string('full_name');
$table->string('phone')->unique();
$table->date('date_of_birth');
$table->enum('gender', ['male', 'female']);
$table->text('medical_history')->nullable();
$table->timestamps();
});
Schema::create('appointments', function (Blueprint $table) {
$table->id();
$table->foreignId('patient_id')->constrained()->cascadeOnDelete();
$table->foreignId('doctor_id')->constrained('users');
$table->dateTime('scheduled_at');
$table->enum('status', ['pending', 'confirmed', 'completed', 'cancelled']);
$table->text('notes')->nullable();
$table->timestamps();
});
Week 2: Filament Resources
Day 1-3: Patient Resource
php artisan make:filament-resource Patient --generate
Filament auto-generate CRUD form + table. Customize:
// app/Filament/Resources/PatientResource.php
public static function form(Form $form): Form
{
return $form->schema([
TextInput::make('full_name')->required(),
TextInput::make('phone')->required()->unique(ignoreRecord: true),
DatePicker::make('date_of_birth')->required(),
Select::make('gender')->options(['male' => 'Laki-laki', 'female' => 'Perempuan']),
Textarea::make('medical_history'),
]);
}
public static function table(Table $table): Table
{
return $table->columns([
TextColumn::make('full_name')->searchable()->sortable(),
TextColumn::make('phone')->searchable(),
TextColumn::make('date_of_birth')->date('d M Y'),
TextColumn::make('appointments_count')->counts('appointments')->label('Visit Count'),
])->filters([
SelectFilter::make('gender'),
]);
}
CRUD lengkap (form, table, search, filter, sort) dalam 30-60 menit per resource.
Day 4-5: Appointment Resource + Calendar
Filament calendar plugin untuk visualisasi schedule:
composer require saade/filament-fullcalendar
Display appointment di calendar view. Drag-drop reschedule.
Day 6-7: Dashboard + Widget
php artisan make:filament-widget AppointmentStats --stats-overview
Widget metric: appointment hari ini, total patient, revenue bulan ini.
Week 3: Polish + Deploy
Day 1-2: Permission per role
// Filament policy
Gate::define('view-patient', fn (User $user) => $user->hasPermissionTo('view patients'));
Filament respect Gate/Policy automatic.
Day 3-4: Reporting + Export
Excel export via Filament Excel plugin:
composer require pxlrbt/filament-excel
ExportAction::make()
->fromTable()
->withFilename('patients-' . date('Y-m-d'))
Day 5: Deploy ke VPS
# Di VPS Niagahoster
cd /var/www
git clone https://github.com/me/my-admin.git
cd my-admin
composer install --no-dev --optimize-autoloader
php artisan migrate --force
php artisan storage:link
php artisan filament:optimize
php artisan optimize
# Setup nginx + PHP-FPM 8.4
# Setup Laravel Forge atau manual
Atau Railway deploy 1-click (skip VPS setup).
Day 6-7: Final testing + handover
User testing dengan staff klinik. Train tim. Fix bug. Cutover production.
Performance untuk SMB Indonesia
VPS Niagahoster Cloud Hosting Pro (2GB RAM, 2 vCPU):
| Metric | Value |
|---|---|
| Page load (admin dashboard) | 380-560ms |
| Livewire request roundtrip | 80-150ms |
| DB query (simple SELECT) | 2-8ms |
| Concurrent user supported | 30-80 user |
Untuk 5-50 user staff klinik: VPS Rp 150rb/bulan cukup. Performance acceptable (page load < 600ms feel responsive).
Untuk 50-200 user: upgrade VPS 4GB RAM Rp 350rb/bulan + Redis cache + queue worker.
Trade-off
Pro bundle ini
- Time-to-MVP cepat (2-3 minggu untuk admin panel comprehensive)
- Filament + Livewire = productivity 2-3x dibanding custom React admin
- Ekosistem Laravel matang di Indonesia (banyak resource, dev community besar)
- VPS hosting Rp 150rb/bulan acceptable untuk SMB
- Easy hire dev — Laravel skill umum di Indonesia
- Update + deploy mudah (git pull + composer + migrate)
Con bundle ini
- Bukan ideal untuk customer-facing SaaS modern (UX feel “admin tool” vs polished consumer app)
- Bundle JS Livewire + Alpine sedikit besar (250KB+ initial)
- Server-side rendering = butuh server persistent (vs serverless)
- Scaling horizontal butuh setup load balancer + session storage shared
- Tidak fit untuk real-time collaborative app (pakai WebSocket via Reverb tapi tidak as smooth)
Konteks Indonesia
Admin klinik dental Jakarta: 12 staff, 1500 patient record, 50 appointment/hari. VPS Niagahoster Rp 150rb/bulan. Staff training 2 hari. Adoption 95% setelah 1 minggu (vs spreadsheet sebelumnya).
Internal tool warung scale Tangerang: 3 cabang, 8 staff, 200 transaksi/hari peak. VPS Biznet Rp 250rb/bulan + Redis. Saving operasional Rp 4 juta/bulan (less manual spreadsheet reconcile).
HR + payroll SMB Jakarta: 200 employee, attendance + leave + payslip. VPS Cloud Hosting Pro Rp 350rb/bulan. Replace HR consultant Rp 8 juta/bulan.
Use case decision matrix
| Use case | Recommended |
|---|---|
| Internal admin panel SMB | Laravel + Filament |
| HR + payroll system | Laravel + Filament |
| Inventory + POS | Laravel + Filament + Livewire |
| Customer-facing SaaS modern | Next.js + shadcn (skip Laravel) |
| Mobile app | Expo + Supabase (skip Laravel) |
| Marketing site | Astro (skip Laravel) |
| Multi-tenant SaaS dengan billing | Laravel + Spark atau Cashier |
| API-only backend untuk mobile | Laravel Sanctum / Passport |
Migration paths
Spreadsheet / Google Sheets → Laravel + Filament
Effort: 2-3 minggu untuk admin medium. Import data via Laravel Excel package. Skema map dari sheet ke table.
WordPress custom admin → Laravel + Filament
Effort: 3-6 minggu. Data migration via WP REST API → Laravel import. Refactor permission system.
Custom React admin → Laravel + Filament
Effort: 4-8 minggu. Frontend rewrite ke Livewire/Filament. Backend (jika sudah Laravel) keep. Saving long-term maintenance 50%+.
Verdict
Recommended untuk admin panel SMB Indonesia 2026.
Pakai bundle ini jika:
- Internal admin tool untuk staff SMB
- CRUD heavy (form, table, report, dashboard)
- Time-to-MVP priority (2-3 minggu)
- Budget hosting Rp 150-500rb/bulan
- Tim familiar Laravel atau easy hire dev Laravel Indonesia
Skip jika:
- Customer-facing SaaS modern (UX expectation tinggi)
- Real-time collaborative (Figma-like)
- Mobile-first
- Edge deployment requirement
Variasi:
- Stack tetap, ganti hosting ke Railway (managed, no DevOps)
- Skip Filament, pakai custom Livewire untuk UI lebih flexible
- Tambah Laravel Octane atau FrankenPHP untuk performance
Untuk Internal tool React-based comparison: Bundle Internal Tool Laravel + React. Untuk VPS provisioning: nginx vs Caddy vs Traefik.
Ditulis oleh Asti Larasati