← Semua picks

Bundle Recipe Recommended

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.

20 Juni 2026 · 10 menit ·Use case: Internal admin panel SMB Indonesia dalam 2-3 minggu
Laravel 12Livewire 3Filament 4MySQL

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:

  1. Admin panel klinik dental Jakarta (Q2 2024-now): kelola appointment, dokter, pasien, billing. 12 staff klinik. VPS Niagahoster Rp 150rb/bulan.
  2. Internal tool warung scale Tangerang (Q4 2024-now): inventory + POS + report 3 cabang. 8 staff. VPS Biznet Rp 250rb/bulan.
  3. HR + payroll SaaS SMB Jakarta (Q1 2025-now): 200 employee. VPS Niagahoster Cloud Rp 350rb/bulan.
  4. Ecommerce admin klinik kecantikan (Q3 2025-now): pesanan, member, voucher. 5 admin. Railway $25/bulan.
  5. 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):

MetricValue
Page load (admin dashboard)380-560ms
Livewire request roundtrip80-150ms
DB query (simple SELECT)2-8ms
Concurrent user supported30-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 caseRecommended
Internal admin panel SMBLaravel + Filament
HR + payroll systemLaravel + Filament
Inventory + POSLaravel + Filament + Livewire
Customer-facing SaaS modernNext.js + shadcn (skip Laravel)
Mobile appExpo + Supabase (skip Laravel)
Marketing siteAstro (skip Laravel)
Multi-tenant SaaS dengan billingLaravel + Spark atau Cashier
API-only backend untuk mobileLaravel 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

// Pick Bundle Recipe lain


← Semua picks RSS feed