Deploy Aplikasi Laravel dalam 60 Detik dengan Laravel Cloud: Panduan Lengkap untuk Developer Indonesia

Gue yakin kalian pernah ngalamin situasi kayak gini.

Client WhatsApp jam 9 malam: "Mas, besok pagi bisa demo project-nya ke tim saya?" Dan project kalian masih jalan di localhost.

Panik? Pasti. Karena deploy itu bukan cuma soal upload file. Kalian harus setup VPS, configure Nginx, install PHP dengan extensions yang bener, setup database, SSL certificate, environment variables, dan segudang konfigurasi lainnya.

Itu bisa makan waktu 4-6 jam kalau lancar. Kalau ada error? Bisa semalam suntuk debugging.

Gue udah ngalamin ini puluhan kali selama jadi developer. Dan setiap kali ada project baru, prosesnya diulang lagi dari awal. Capek? Banget.

Pain Points Developer Indonesia

Mari kita jujur tentang masalah deployment yang sering kita hadapi:

MASALAH DEPLOYMENT FREELANCER:

1. TIME-CONSUMING
   └── Setup server baru: 4-6 jam
   └── Setiap project = setup ulang
   └── Debug server issues: berjam-jam

2. COST INEFFICIENT
   └── VPS $10-20/month per project
   └── 10 projects = $100-200/month
   └── Padahal kebanyakan jarang diakses

3. RISKY
   └── SSL expired = website down
   └── Traffic spike = server crash
   └── Security updates = manual

4. KNOWLEDGE BARRIER
   └── Harus paham Linux
   └── Harus paham Nginx/Apache
   └── Harus paham security
   └── Bukan core skill developer

5. CLIENT PRESSURE
   └── "Kapan bisa live?"
   └── "Kok loading lama?"
   └── "SSL-nya kok merah?"

Kalau kalian freelancer yang handle multiple projects, ini jadi makin kompleks. Setiap client punya server sendiri, credentials sendiri, konfigurasi sendiri. Keeping track of all that is a nightmare.

Dan yang paling frustrating: waktu yang harusnya bisa dipakai untuk coding atau cari project baru, habis buat ngurusin server.

Game Changer: Laravel Cloud

24 Februari 2025, Laravel team launch something yang literally mengubah cara kita deploy aplikasi.

Laravel Cloud.

Tagline-nya simple tapi powerful: "Deploy in under 60 seconds with zero configuration."

Gue kira itu marketing talk. Ternyata beneran.

Pertama kali gue coba, gue connect GitHub, pilih repo, klik deploy. Literally 60 detik kemudian, app gue live dengan HTTPS. No server setup, no Nginx config, no nothing.

Ini yang bikin Laravel Cloud game-changer untuk freelancers:

LARAVEL CLOUD BENEFITS:

┌─────────────────────────────────────────────────────────┐
│ SPEED                                                   │
├─────────────────────────────────────────────────────────┤
│ • Deploy dalam 60 detik                                 │
│ • Auto-deploy setiap git push                           │
│ • Zero configuration needed                             │
│ • Demo ke client kapanpun                               │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ COST                                                    │
├─────────────────────────────────────────────────────────┤
│ • Pay only for what you use                             │
│ • Hibernation: app tidur saat gak diakses               │
│ • $0 base cost di Starter plan                          │
│ • Multiple projects, satu platform                      │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ PEACE OF MIND                                           │
├─────────────────────────────────────────────────────────┤
│ • Auto SSL, auto renew                                  │
│ • Auto-scaling saat traffic naik                        │
│ • Security handled                                      │
│ • Backups included                                      │
└─────────────────────────────────────────────────────────┘

Kenapa Ini Relevan untuk Students BuildWithAngga

Di BuildWithAngga, kita gak cuma ngajarin coding. Kita ngajarin gimana jadi developer yang bisa deliver complete solutions.

Client gak peduli seberapa bagus code kalian kalau mereka gak bisa lihat hasilnya. Skill deployment itu yang bikin kalian stand out dari developer lain.

Dengan Laravel Cloud:

  • Kalian bisa demo project portfolio dalam hitungan menit
  • Kalian bisa deliver project ke client dengan professional setup
  • Kalian bisa charge lebih karena include "deployment dan hosting management"
  • Kalian bisa handle multiple projects tanpa overwhelmed

Ini skill yang directly translate ke earning potential.

Apa yang Akan Kita Pelajari

Di artikel ini, gue akan guide kalian step-by-step:

  1. Setup account Laravel Cloud dan connect Git
  2. Deploy aplikasi Laravel pertama dalam 60 detik
  3. Setup database dan environment variables
  4. Configure custom domain untuk client
  5. Optimize cost dengan hibernation dan auto-scaling
  6. Best practices untuk workflow freelance

By the end of this tutorial, kalian akan punya complete skill untuk deploy any Laravel project professionally.

Let's go.

Bagian 2: Apa Itu Laravel Cloud?

Sebelum kita hands-on, penting untuk understand apa sebenarnya Laravel Cloud dan kenapa ini berbeda dari solusi lain.

Definisi Simple

Laravel Cloud adalah managed deployment platform yang dibuat khusus untuk Laravel. Dibangun oleh Laravel team sendiri, led by Taylor Otwell.

Cara paling gampang untuk ngerti: bayangin kalian punya DevOps engineer pribadi yang kerja 24/7, handle semua server configuration, scaling, security, dan maintenance. Tapi instead of bayar gaji DevOps (which is expensive), kalian bayar per usage.

Kalian fokus nulis code, Laravel Cloud urus sisanya.

Core Features

LARAVEL CLOUD ARCHITECTURE:

┌─────────────────────────────────────────────────────────┐
│                     YOUR CODE                            │
│            (Push to GitHub/GitLab)                       │
└─────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────┐
│                   LARAVEL CLOUD                          │
├─────────────────────────────────────────────────────────┤
│                                                         │
│   ┌─────────────┐  ┌─────────────┐  ┌─────────────┐    │
│   │   BUILD     │  │   DEPLOY    │  │   SERVE     │    │
│   │             │  │             │  │             │    │
│   │ • Composer  │  │ • Migrate   │  │ • Handle    │    │
│   │ • NPM       │  │ • Cache     │  │   requests  │    │
│   │ • Assets    │  │ • Optimize  │  │ • Auto-scale│    │
│   └─────────────┘  └─────────────┘  └─────────────┘    │
│                                                         │
│   ┌─────────────┐  ┌─────────────┐  ┌─────────────┐    │
│   │  DATABASE   │  │    CACHE    │  │   STORAGE   │    │
│   │             │  │             │  │             │    │
│   │ • MySQL     │  │ • Redis     │  │ • S3-compat │    │
│   │ • Postgres  │  │ • Managed   │  │ • Managed   │    │
│   └─────────────┘  └─────────────┘  └─────────────┘    │
│                                                         │
└─────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────┐
│                     USERS                                │
│           (Access via custom domain + HTTPS)             │
└─────────────────────────────────────────────────────────┘

Deployment Features:

  • Push-to-Deploy: Setiap kali kalian git push, app auto-deploy
  • Zero Config: Gak perlu setup Nginx, PHP-FPM, atau apapun
  • Preview Environments: Auto-create environment untuk setiap Pull Request
  • Instant Rollback: Satu klik untuk rollback ke versi sebelumnya

Scaling Features:

  • Auto-scaling: Otomatis tambah server saat traffic naik
  • Hibernation: App "tidur" saat gak ada traffic, bayar $0
  • Queue Clusters: Auto-scale background jobs
  • Multi-region: Deploy di region terdekat dengan users

Managed Resources:

  • MySQL dan Serverless Postgres dengan auto-backup
  • Redis untuk cache dan queues
  • Object Storage (S3-compatible) untuk files
  • Semuanya provisioned dalam seconds

Security Features:

  • Auto SSL dengan Let's Encrypt, auto-renew
  • DDoS protection via Cloudflare
  • Web Application Firewall (WAF) di Business plan
  • Edge caching untuk static assets

Pricing yang Make Sense

Ini yang bikin Laravel Cloud attractive untuk freelancers:

LARAVEL CLOUD PRICING PLANS:

┌─────────────────────────────────────────────────────────┐
│ STARTER (Perfect untuk demo dan small projects)         │
├─────────────────────────────────────────────────────────┤
│ Base: $0/month                                          │
│ Pay only for usage                                      │
│                                                         │
│ Includes:                                               │
│ • Custom domains (FREE!)                                │
│ • Hibernation enabled by default                        │
│ • Flex compute (~$0.01/hour when active)                │
│ • Unlimited applications                                │
│                                                         │
│ Best for: demos, portfolios, staging, side projects     │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ GROWTH (Perfect untuk production client projects)       │
├─────────────────────────────────────────────────────────┤
│ Base: $20/month                                         │
│ + usage (with discounts)                                │
│                                                         │
│ Everything in Starter, plus:                            │
│ • Pro compute (more powerful)                           │
│ • Auto-scaling                                          │
│ • Queue clusters                                        │
│ • Preview environments                                  │
│ • Pro MySQL sizes                                       │
│                                                         │
│ Best for: production apps, active e-commerce            │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ BUSINESS ($200/month) - Enterprise features             │
│ ENTERPRISE (Custom) - Dedicated infrastructure          │
└─────────────────────────────────────────────────────────┘

Real Cost untuk Freelancers:

TYPICAL MONTHLY COSTS:

Demo/Staging Project:
├── Plan: Starter ($0 base)
├── Compute: Flex with hibernation
├── Database: Serverless Postgres
├── Active: ~2 hours/day average
└── Total: ~$3-5/month

Small Production (company profile, blog):
├── Plan: Starter ($0 base)
├── Compute: Flex, 1 replica
├── Database: MySQL Flex small
└── Total: ~$15-20/month

Active Production (e-commerce, SaaS):
├── Plan: Growth ($20 base)
├── Compute: Pro with autoscaling
├── Database: MySQL Pro
└── Total: ~$50-100/month

Comparison dengan Alternatives

Biar fair, let's compare dengan opsi lain:

DEPLOYMENT OPTIONS:

                Laravel    Laravel    Laravel    Manual
                Cloud      Forge      Vapor      VPS
────────────────────────────────────────────────────────
Setup Time      60 sec     30 min     60 min     4+ hours
Server Mgmt     Zero       Some       Zero       Full DIY
Auto-scaling    Built-in   Manual     Built-in   Manual
Hibernation     Yes        No         No         No
Learning Curve  Minimal    Medium     High       High
Min Cost/mo     ~$3        $12+VPS    Variable   $5-10
Best For        Most       Control    Serverless Budget
                cases      needed     fans       tight

Kapan pilih Laravel Cloud:

  • Mau deploy cepat tanpa ribet
  • Handle multiple projects efficiently
  • Cost-conscious (pay for what you use)
  • Gak mau urusan server management

Kapan pilih alternatives:

  • Butuh full server control (Forge)
  • Already invested di AWS ecosystem (Vapor)
  • Budget super tight dan punya waktu (Manual VPS)

For 90% of freelance use cases, Laravel Cloud adalah pilihan terbaik.

Bagian 3: Setup Account dan First Deploy

Alright, enough talking. Let's deploy something.

Di bagian ini, kita akan deploy aplikasi Laravel dari nol sampai live dalam hitungan menit.

Prerequisites

Sebelum mulai, pastikan kalian punya:

CHECKLIST SEBELUM MULAI:

□ Laravel project (fresh atau existing)
  → Bisa pakai project dari kelas BuildWithAngga
  → Atau create fresh: laravel new my-app

□ GitHub atau GitLab account
  → Project harus ada di repository
  → Laravel Cloud akan pull dari sini

□ Email untuk Laravel Cloud account
  → Buat sign up

□ Payment method (optional untuk Starter)
  → Credit card untuk verification
  → Gak akan di-charge kalau masih di Starter plan

Kalau belum punya project, let's create one:

# Create fresh Laravel project
laravel new cloud-demo

cd cloud-demo

# Initialize git
git init
git add .
git commit -m "Initial commit"

# Push ke GitHub
# (create repo di GitHub dulu, lalu:)
git remote add origin <https://github.com/username/cloud-demo.git>
git branch -M main
git push -u origin main

Project ready. Let's deploy!

Step 1: Create Laravel Cloud Account

  1. Buka browser, navigate ke cloud.laravel.com
  2. Klik "Get Started" atau "Sign Up"
  3. Sign up options:
    • GitHub (Recommended) — Lebih gampang, langsung connect
    • Email — Manual verification needed
  4. Authorize Laravel Cloud untuk akses GitHub
  5. Create Organization:
    • Organization name: nama kalian atau company
    • Ini untuk grouping projects dan billing
AFTER SIGN UP:

Dashboard akan muncul dengan:
├── Applications (empty)
├── Databases (empty)
├── Organization settings
└── Billing info

Step 2: Connect Git Provider

Kalau sign up dengan GitHub, ini mungkin sudah done. Tapi let's verify:

  1. Go to SettingsSource Control
  2. Pastikan GitHub/GitLab connected (green checkmark)
  3. Klik Configure untuk manage repository access
  4. Pilih repositories mana yang mau di-allow:
    • "All repositories" — Semua repo bisa di-deploy
    • "Only select repositories" — Pilih specific repos
RECOMMENDATION:

Untuk keamanan, pilih "Only select repositories"
dan add repos yang memang mau di-deploy.

Step 3: Create New Application

  1. Dari Dashboard, klik "New Application"
  2. Select Source:
    • Pilih repository: cloud-demo (atau project kalian)
    • Pilih branch: main
  3. Application Name:
    • Nama untuk identify app di dashboard
    • Example: "Cloud Demo" atau "Client Project ABC"
  4. Klik "Create Application"
WHAT HAPPENS:

Laravel Cloud creates:
├── Application container
├── Default environment (production)
└── Initial configuration

Step 4: Configure Environment

Setelah application created, kalian masuk ke environment configuration:

Basic Settings:

Environment Name: production
Region: Asia Pacific (Singapore)  ← Closest untuk Indonesia!
PHP Version: 8.3 (atau sesuai project)

Kenapa Singapore?

REGION LATENCY DARI INDONESIA:

Singapore     : ~20-30ms  ✓ Best choice
Sydney        : ~100-150ms
US East       : ~200-250ms
EU            : ~250-300ms

Closer region = Faster response = Better UX

Compute Settings:

Compute Size: Flex 0.25 vCPU / 512MB
Scaling: None (single replica)
Hibernation: Enabled ✓

Untuk demo dan small projects, ini udah cukup.

Step 5: Deploy!

This is the moment of truth.

  1. Review configuration
  2. Klik "Deploy"
  3. Watch the deployment logs:
DEPLOYMENT LOG:

[00:00] ▶ Starting deployment...
[00:03] ▶ Cloning repository from GitHub...
[00:08] ▶ Detected Laravel application
[00:10] ▶ Installing Composer dependencies...
[00:25] ▶ Running: composer install --no-dev --optimize-autoloader
[00:35] ▶ Installing NPM dependencies...
[00:45] ▶ Running: npm ci && npm run build
[00:52] ▶ Running deployment commands...
[00:55] ▶ Running: php artisan config:cache
[00:56] ▶ Running: php artisan route:cache
[00:57] ▶ Running: php artisan view:cache
[00:58] ▶ Optimizing application...
[01:00] ✓ Deployment successful!

Your application is live at:
<https://cloud-demo-xxxx.laravel.cloud>

60 SECONDS. That's it.

Step 6: Verify Deployment

  1. Klik URL yang diberikan
  2. Browser opens → Laravel welcome page muncul
  3. Check the padlock icon → HTTPS working
VERIFICATION CHECKLIST:

✓ Page loads without error
✓ HTTPS enabled (padlock icon)
✓ Response time reasonable
✓ Laravel logo/welcome page visible

Troubleshooting kalau error:

COMMON ISSUES:

"500 Server Error":
→ Check logs di Dashboard → Logs
→ Biasanya APP_KEY missing atau env issue
→ Solution: Tambah APP_KEY di Environment Variables

"Connection refused":
→ Deployment mungkin masih in progress
→ Wait 1-2 minutes, refresh

"Composer install failed":
→ Check composer.json valid
→ Pastikan PHP version compatible

Step 7: Explore Dashboard

Sekarang app live, let's explore apa yang bisa dilakukan:

Logs Tab:

  • Application logs (Laravel logs)
  • Access logs (HTTP requests)
  • Real-time streaming

Commands Tab:

  • Run artisan commands langsung dari browser
  • php artisan migrate
  • php artisan tinker
  • php artisan queue:work

Metrics Tab:

  • CPU usage
  • Memory usage
  • Request count
  • Response times

Configuration Tab:

  • Environment variables
  • PHP settings
  • Build commands
  • Deploy commands

Checkpoint

Congrats! Kalian baru aja deploy Laravel app dalam waktu kurang dari 5 menit (including reading this).

COMPLETED:

✓ Laravel Cloud account created
✓ GitHub connected
✓ Application created
✓ Environment configured (Singapore region)
✓ First deployment successful
✓ App accessible via HTTPS
✓ Dashboard explored

Tapi app kita masih basic — belum ada database, belum ada custom domain. Let's fix that di bagian selanjutnya.

Mini Tips

"Untuk project freelance, gue recommend langsung setup 2 environments: staging dan production. Staging untuk development dan demo ke client, production untuk live. Dengan hibernation di keduanya, cost tetap minimal tapi workflow professional."

Bagian 4: Database, Environment Variables, dan Resources

App sudah live, tapi masih kosong. Sekarang kita setup database dan konfigurasi yang diperlukan untuk production-ready app.

Setup Database

Laravel Cloud punya dua opsi database: Serverless Postgres dan Managed MySQL. Mari kita bahas keduanya.

Option 1: Serverless Postgres

Ini recommended untuk development dan apps dengan traffic yang gak konsisten.

SERVERLESS POSTGRES BENEFITS:

✓ Auto-hibernation (sleep saat idle)
✓ Auto-scaling (grow saat busy)
✓ Point-in-time recovery
✓ Pay only when active (~$0.04/hour)
✓ Wake up dalam milliseconds

BEST FOR:
• Demo projects
• Staging environments
• Apps dengan traffic sporadic
• Budget-conscious projects

Cara Setup Serverless Postgres:

  1. Go to Environment → Resources
  2. Klik "Add Database"
  3. Select "Serverless Postgres"
  4. Configuration: Name: main-database Region: Singapore (sama dengan app)
  5. Klik "Create"
  6. Wait ~30 seconds, database ready!
AFTER CREATION:

Laravel Cloud otomatis inject ke environment:
├── DB_CONNECTION=pgsql
├── DB_HOST=internal-postgres-host
├── DB_PORT=5432
├── DB_DATABASE=your-database
├── DB_USERNAME=auto-generated
└── DB_PASSWORD=auto-generated

Gak perlu configure manual!

Option 2: Managed MySQL

Ini recommended untuk production apps yang butuh consistent performance.

MANAGED MYSQL BENEFITS:

✓ Predictable performance
✓ Daily automated backups
✓ Multiple size options
✓ No cold start (always running)

BEST FOR:
• Production applications
• E-commerce sites
• Apps dengan consistent traffic
• Mission-critical systems

MySQL Sizing Options:

FLEX COMPUTE (Cost-efficient):

Size                    Monthly (approx)
────────────────────────────────────────
0.25 vCPU / 512MB       ~$7
0.5 vCPU / 1GB          ~$14
1 vCPU / 2GB            ~$28
2 vCPU / 4GB            ~$56

PRO COMPUTE (Heavy workloads):
Higher specs, untuk apps dengan sustained load
Available di Growth plan ke atas

Cara Setup MySQL:

  1. Environment → Resources → "Add Database"
  2. Select "MySQL"
  3. Configuration: Name: production-db Compute Class: Flex Size: 0.5 vCPU / 1GB (good starting point) Storage: 10GB (auto-expand available)
  4. Klik "Create"
  5. Wait ~1-2 minutes for provisioning

Recommendation untuk Freelancers:

PROJECT TYPE → DATABASE CHOICE:

Demo/Staging:
└── Serverless Postgres
└── Cost: ~$0-3/month (dengan hibernation)

Small Production (company profile, blog):
└── MySQL Flex 0.25 vCPU
└── Cost: ~$7/month

Medium Production (e-commerce):
└── MySQL Flex 0.5-1 vCPU
└── Cost: ~$14-28/month

Large Production:
└── MySQL Pro
└── Cost: varies

Run Database Migrations

Database created, sekarang kita perlu run migrations.

  1. Go to Environment → Commands
  2. Di command input, ketik: php artisan migrate --force
  3. Klik "Run"
  4. Watch output: Running: php artisan migrate --force Migration table created successfully. Migrating: 2014_10_12_000000_create_users_table Migrated: 2014_10_12_000000_create_users_table (25ms) Migrating: 2019_12_14_000001_create_personal_access_tokens_table Migrated: 2019_12_14_000001_create_personal_access_tokens_table (18ms) ✓ Command completed successfully

Pro Tip: Auto-run migrations on deploy

  1. Go to Environment → ConfigurationDeploy Commands
  2. Add: php artisan migrate --force
  3. Save

Sekarang setiap kali deploy, migrations otomatis jalan.

Environment Variables

Laravel Cloud auto-inject beberapa variables, tapi kita perlu add custom ones.

Auto-Injected Variables:

# Ini otomatis di-set oleh Laravel Cloud:
APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxx
APP_URL=https://your-app.laravel.cloud
APP_ENV=production

# Database (kalau sudah setup):
DB_CONNECTION=pgsql/mysql
DB_HOST=internal-host
DB_DATABASE=your-db
DB_USERNAME=auto
DB_PASSWORD=auto

# Cache & Session (kalau pakai Redis):
REDIS_HOST=internal-redis
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

Add Custom Variables:

  1. Environment → ConfigurationEnvironment Variables
  2. Klik "Add Variable"
  3. Tambahkan yang dibutuhkan:
# Mail Configuration
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=your-username
MAIL_PASSWORD=your-password
[email protected]
MAIL_FROM_NAME="${APP_NAME}"

# Payment Gateway (Indonesia)
MIDTRANS_SERVER_KEY=SB-Mid-server-xxxxx
MIDTRANS_CLIENT_KEY=SB-Mid-client-xxxxx
MIDTRANS_IS_PRODUCTION=false

# Or Xendit
XENDIT_SECRET_KEY=xnd_development_xxxxx

# Third-party Services
GOOGLE_CLIENT_ID=xxxxx
GOOGLE_CLIENT_SECRET=xxxxx

# Custom App Settings
TELESCOPE_ENABLED=false
DEBUGBAR_ENABLED=false

  1. Klik "Save"
  2. Redeploy untuk apply changes
IMPORTANT:

Environment variables changes require redeploy.
Go to Deployments → Deploy untuk apply.

Setup Redis Cache

Untuk production apps, Redis sangat recommended untuk cache dan queues.

  1. Environment → Resources → "Add Cache"
  2. Select size: Small: 0.25 vCPU / 256MB (~$5/month) Medium: 0.5 vCPU / 512MB (~$10/month)
  3. Klik "Create"
  4. Laravel Cloud auto-configure: REDIS_HOST=internal-redis CACHE_DRIVER=redis SESSION_DRIVER=redis QUEUE_CONNECTION=redis
  5. Redeploy

Setup Object Storage

Untuk file uploads (images, documents, etc.):

  1. Environment → Resources → "Add Storage"
  2. Configuration: Name: app-storage Region: Singapore
  3. Klik "Create"
  4. Update environment variables: FILESYSTEM_DISK=s3
  5. Di code, gunakan Storage facade seperti biasa: Storage::disk('s3')->put('file.jpg', $contents);

Configure Build dan Deploy Commands

Build Commands (jalan sekali saat build):

# Default yang Laravel Cloud jalankan:
composer install --no-dev --optimize-autoloader
npm ci
npm run build

Deploy Commands (jalan setiap deploy):

# Recommended deploy commands:
php artisan migrate --force
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache
php artisan storage:link

Cara Configure:

  1. Environment → Configuration → Build Commands / Deploy Commands
  2. Edit sesuai kebutuhan
  3. Save

Checkpoint

DATABASE & RESOURCES CONFIGURED:

✓ Database created (Postgres atau MySQL)
✓ Migrations ran successfully
✓ Environment variables configured
✓ Redis cache setup (optional)
✓ Object storage setup (optional)
✓ Build/Deploy commands configured

Mini Tips

"Untuk project freelance, mulai dengan Serverless Postgres. Kalau ternyata client butuh lebih, gampang migrate ke MySQL later. Serverless Postgres juga perfect untuk staging environment yang aksesnya sporadic — literally bayar $0 saat gak diakses."

Bagian 5: Custom Domain dan SSL

App sudah functional dengan database. Sekarang kita bikin professional dengan custom domain.

Kenapa Custom Domain Penting

URL COMPARISON:

Default Laravel Cloud:
<https://client-project-a1b2c3.laravel.cloud>
→ Looks temporary
→ Hard to remember
→ Not professional

Custom Domain:
<https://projectclient.com>
→ Professional
→ Brandable
→ Client bisa langsung pakai
→ SEO-ready

Untuk freelancers, custom domain adalah bagian dari deliverable. Client expect website mereka accessible via domain mereka, bukan subdomain platform lain.

Prepare Domain

Sebelum configure di Laravel Cloud, kalian perlu punya domain.

Domain Registrars Indonesia:

  • Niagahoster (popular, support lokal)
  • Domainesia (competitive pricing)
  • IDwebhost (established)
  • Rumahweb (good support)
  • Dewaweb (premium service)

Domain Registrars International:

  • Namecheap (affordable)
  • Cloudflare Registrar (at-cost pricing)
  • Google Domains (simple interface)
  • GoDaddy (widespread)

Pricing Reference:

TYPICAL DOMAIN PRICING:

.com        : Rp 150.000 - 200.000/year
.id         : Rp 250.000 - 350.000/year
.co.id      : Rp 50.000 - 100.000/year (perlu dokumen)
.net        : Rp 150.000 - 200.000/year
.io         : Rp 500.000 - 700.000/year

Add Custom Domain di Laravel Cloud

  1. Go to Environment → Domains
  2. Klik "Add Domain"
  3. Enter domain: projectclient.com
  4. Klik "Add"
  5. Laravel Cloud akan show DNS records yang perlu di-setup:
DNS RECORDS TO ADD:

┌─────────────────────────────────────────────────────────┐
│ Type    Name    Value                    TTL           │
├─────────────────────────────────────────────────────────┤
│ A       @       76.76.21.XXX             3600          │
│ CNAME   www     your-app.laravel.cloud   3600          │
└─────────────────────────────────────────────────────────┘

@ = root domain (projectclient.com)
www = subdomain (www.projectclient.com)

Configure DNS di Registrar

Setiap registrar punya interface berbeda, tapi konsepnya sama.

Example: Niagahoster

  1. Login ke member area
  2. Go to Domain → Kelola Domain → DNS Management
  3. Add A Record: Type: A Name: @ (atau kosong) Value: 76.76.21.XXX (dari Laravel Cloud) TTL: 3600
  4. Add CNAME Record: Type: CNAME Name: www Value: your-app.laravel.cloud TTL: 3600
  5. Save

Example: Cloudflare

  1. Login ke Cloudflare Dashboard
  2. Select domain
  3. Go to DNS
  4. Add Records: A @ 76.76.21.XXX Proxied: OFF CNAME www your-app.laravel.cloud Proxied: OFF
IMPORTANT - CLOUDFLARE USERS:

Matikan Proxy (orange cloud) untuk records ini.
Laravel Cloud handle SSL sendiri.
Proxy ON bisa cause SSL conflicts.

DNS Propagation

Setelah update DNS, perlu waktu untuk propagate globally.

PROPAGATION TIME:

Fast (5-15 minutes):
└── Kalau TTL sebelumnya rendah
└── Kalau DNS provider cepat

Medium (1-4 hours):
└── Most common scenario
└── Normal propagation time

Slow (up to 48 hours):
└── Worst case
└── Jarang terjadi

Check Propagation:

Verify Domain di Laravel Cloud

  1. Back to Laravel Cloud → Domains
  2. Klik "Verify" pada domain
  3. Kalau DNS sudah propagate: ✓ Domain verified ✓ SSL certificate provisioning... ✓ SSL certificate active
  4. Kalau belum propagate: ✗ DNS records not found → Wait dan try again later

SSL Certificate

Ini yang beautiful dari Laravel Cloud: SSL completely automatic.

SSL HANDLING:

1. Domain verified
   ↓
2. Laravel Cloud request certificate (Let's Encrypt)
   ↓
3. Certificate issued (~1-2 minutes)
   ↓
4. Auto-installed
   ↓
5. Auto-renew before expiry

YOU DO: Nothing
LARAVEL CLOUD DOES: Everything

Gak perlu:

  • Generate CSR
  • Upload certificate
  • Configure Nginx
  • Remember renewal dates
  • Pay for SSL

Configure WWW Redirect

Best practice: pilih canonical URL (www atau non-www) dan redirect yang lain.

  1. Domains → domain yang sudah verified
  2. Click settings (gear icon)
  3. Choose redirect: Option A: www → non-www (Recommended) → www.projectclient.com redirects to projectclient.com Option B: non-www → www → projectclient.com redirects to www.projectclient.com
  4. Save

Multiple Domains

Satu environment bisa punya multiple domains:

EXAMPLE SETUP:

Primary:
└── projectclient.com (main)

Aliases:
├── www.projectclient.com (redirect to primary)
├── staging.projectclient.com (kalau perlu)
└── old-domain.com (redirect dari domain lama)

Cara add multiple:

  1. Domains → Add Domain
  2. Add each domain
  3. Configure redirects as needed

Testing Custom Domain

Setelah SSL active:

TESTING CHECKLIST:

□ <https://projectclient.com> loads correctly
□ <https://www.projectclient.com> redirects properly
□ Padlock icon visible (SSL working)
□ No mixed content warnings
□ All pages accessible
□ Forms work (CSRF token valid)
□ Assets load (CSS, JS, images)

Common Issues:

ISSUE: Mixed Content Warning
CAUSE: Some assets loaded via HTTP
FIX: Update APP_URL to https:// dan clear cache

ISSUE: CSRF Token Mismatch
CAUSE: Session domain not configured
FIX: Set SESSION_DOMAIN=.projectclient.com

ISSUE: Assets Not Loading
CAUSE: ASSET_URL not set
FIX: Set ASSET_URL=https://projectclient.com

Handover Domain ke Client

Kalau project selesai dan domain milik client:

CLIENT DOMAIN HANDOVER:

Option A: Client beli domain sendiri
├── Mereka own the domain
├── Kamu configure DNS pointing ke Laravel Cloud
├── Mereka retain control

Option B: Kamu belikan domain untuk client
├── Register atas nama client
├── Berikan login credentials
├── Document everything

ALWAYS DOCUMENT:
□ Domain registrar login
□ DNS configuration
□ Renewal date
□ Auto-renew status

Checkpoint

CUSTOM DOMAIN CONFIGURED:

✓ Domain added to Laravel Cloud
✓ DNS records configured at registrar
✓ Domain verified
✓ SSL certificate active
✓ WWW redirect configured
✓ All pages tested

Mini Tips

"Untuk staging environment, gak perlu beli domain. Pakai subdomain dari domain utama: staging.projectclient.com. Atau bahkan pakai default Laravel Cloud URL untuk internal testing. Custom domain priority untuk production yang client-facing."

Bagian 6: Auto-Scaling, Hibernation, dan Cost Optimization

Ini bagian yang paling penting untuk freelancers: gimana caranya dapat maximum value dengan minimum cost.

Laravel Cloud punya dua fitur killer untuk cost optimization: Hibernation dan Auto-scaling. Mari kita deep dive.

Hibernation — Fitur Hemat Biaya Terbaik

Hibernation adalah fitur dimana app kalian "tidur" saat gak ada traffic, dan "bangun" otomatis saat ada request masuk.

HIBERNATION LIFECYCLE:

┌─────────────────────────────────────────────────────────┐
│ ACTIVE STATE                                            │
│                                                         │
│ • App running dan serving requests                      │
│ • Billing: ~$0.01/hour (Flex compute)                   │
│ • Full performance                                      │
└─────────────────────────────────────────────────────────┘
                          │
                          │ No traffic for 5 minutes
                          │ (configurable)
                          ▼
┌─────────────────────────────────────────────────────────┐
│ HIBERNATING STATE                                       │
│                                                         │
│ • App sleeping, no compute running                      │
│ • Billing: $0/hour                                      │
│ • Data preserved (database, storage intact)             │
└─────────────────────────────────────────────────────────┘
                          │
                          │ New request comes in
                          ▼
┌─────────────────────────────────────────────────────────┐
│ WAKING UP                                               │
│                                                         │
│ • ~500ms - 2s wake time                                 │
│ • First request might be slightly slower                │
│ • Subsequent requests normal speed                      │
│ • Back to Active State billing                          │
└─────────────────────────────────────────────────────────┘

Configure Hibernation:

  1. Environment → Compute → Click App cluster
  2. Scaling Strategy: None (single replica with hibernation)
  3. Hibernation: Enabled
  4. Timeout: 300 seconds (5 minutes default)
  5. Save dan Deploy

Hibernation Timeout Options:

TIMEOUT RECOMMENDATIONS:

60 seconds (1 min):
└── Most aggressive saving
└── Good for: rarely accessed demos
└── Tradeoff: more cold starts

300 seconds (5 min) - DEFAULT:
└── Balanced approach
└── Good for: staging, demos, low-traffic production
└── Recommended for most freelance projects

600 seconds (10 min):
└── Less aggressive
└── Good for: apps dengan sporadic but clustered access
└── Fewer cold starts

Never (Hibernation OFF):
└── Always running
└── Good for: high-traffic production
└── Required for: Growth/Business plan autoscaling

Real Cost Savings dengan Hibernation

Let me show you the math:

SCENARIO: 10 Client Projects

TRADITIONAL APPROACH (VPS):
────────────────────────────
10 projects × $10/month VPS = $100/month
All running 24/7
Even kalau cuma diakses 1 jam/hari total

LARAVEL CLOUD WITH HIBERNATION:
────────────────────────────
Assumptions per project:
• Active: 2 hours/day average
• Compute: Flex $0.01/hour
• Database: Serverless Postgres $0.04/hour (when active)

Per project monthly:
• Compute: 2 hrs × 30 days × $0.01 = $0.60
• Database: 2 hrs × 30 days × $0.04 = $2.40
• Total: ~$3/month

10 projects × $3 = $30/month

SAVINGS: $70/month = 70%!

Bahkan kalau beberapa projects lebih active:

MIXED PORTFOLIO:

3 Demo projects (rarely accessed):
└── 3 × $1/month = $3

5 Staging projects (moderate access):
└── 5 × $5/month = $25

2 Small production (more active):
└── 2 × $15/month = $30

TOTAL: $58/month untuk 10 projects
Still way cheaper than 10 VPS!

Auto-Scaling — Handle Traffic Spikes

Auto-scaling otomatis menambah atau mengurangi server instances based on demand.

AUTO-SCALING VISUALIZATION:

Normal Traffic:
┌─────┐
│ App │  ← 1 replica, handling fine
└─────┘

Traffic Spike (CPU > 70%):
┌─────┐ ┌─────┐ ┌─────┐
│ App │ │ App │ │ App │  ← Auto-scaled to 3 replicas
└─────┘ └─────┘ └─────┘

Traffic Back to Normal:
┌─────┐
│ App │  ← Scaled back down
└─────┘

Auto-Scaling Strategies:

1. NONE (Single Replica):
   ├── 1 instance always
   ├── Hibernation available
   ├── Best for: small apps, demos
   └── Plan: Starter

2. CUSTOM:
   ├── You set min/max replicas
   ├── Scale based on CPU threshold
   ├── Example: min 1, max 5
   ├── Best for: predictable traffic patterns
   └── Plan: Growth+

3. UNLIMITED:
   ├── No upper limit
   ├── Scale as needed
   ├── Best for: unpredictable viral spikes
   └── Plan: Growth+

Configure Auto-Scaling (Growth Plan):

  1. Environment → Compute → App cluster
  2. Scaling Strategy: Custom
  3. Configuration: Minimum Replicas: 1 Maximum Replicas: 3 Scale Up Threshold: CPU > 70% Scale Down Threshold: CPU < 30%
  4. Save dan Deploy

When to Use Auto-Scaling:

USE CASE → SCALING STRATEGY:

Demo/Staging:
└── None + Hibernation
└── Cost: minimal

Small Production (company profile):
└── None + Hibernation OFF
└── Cost: ~$7-15/month

Medium Production (active e-commerce):
└── Custom (1-3 replicas)
└── Cost: ~$30-60/month

High Traffic (viral potential):
└── Custom (1-10 replicas) atau Unlimited
└── Cost: varies based on traffic

Database Hibernation

Serverless Postgres juga bisa hibernate!

SERVERLESS POSTGRES HIBERNATION:

Active:
├── Processing queries
├── Billing: ~$0.04/hour
└── Full performance

Hibernating:
├── No queries for X minutes
├── Billing: $0/hour
└── Data safe

Waking:
├── First query triggers wake
├── ~500ms wake time
└── Subsequent queries normal

Ini perfect untuk staging environments dan demo projects. Database literally $0 saat gak diakses.

Cost Monitoring

Keep track of spending:

  1. Organization → Billing
  2. View breakdown: Current Period Costs: ├── Compute: $XX.XX ├── Database: $XX.XX ├── Storage: $XX.XX ├── Data Transfer: $XX.XX └── Total: $XX.XX
  3. View per environment/resource

Cost Optimization Tips:

FREELANCER COST TIPS:

1. Use Hibernation for ALL non-critical apps
   └── Demos, staging, archived projects

2. Choose Singapore region
   └── Closest untuk Indonesia
   └── Same pricing as other regions

3. Start with Serverless Postgres
   └── Upgrade ke MySQL only when needed

4. Right-size compute
   └── Start small, scale when needed
   └── Flex 0.25 vCPU enough untuk most small apps

5. Clean up unused resources
   └── Delete old demo environments
   └── Remove unused databases

6. Use Starter plan when possible
   └── $0 base cost
   └── Custom domains included
   └── Upgrade to Growth only for autoscaling

Mini Tips

"Set reminder bulanan untuk review Laravel Cloud billing. Identify apps yang gak pernah diakses dan consider archiving atau deleting. Juga review apakah sizing masih appropriate — sometimes kita over-provision di awal dan forget to optimize."

Bagian 7: Workflow Freelance dan Best Practices

Sekarang kalian udah tau semua technical aspects. Let's talk about workflow — gimana integrate Laravel Cloud ke daily freelance operations.

Ideal Freelance Workflow

PROJECT LIFECYCLE WITH LARAVEL CLOUD:

┌─────────────────────────────────────────────────────────┐
│ 1. DEVELOPMENT (Local)                                  │
├─────────────────────────────────────────────────────────┤
│ • Code di local dengan Laravel Sail/Herd/Valet          │
│ • Git commits untuk setiap feature                      │
│ • Push ke GitHub regularly                              │
└─────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────┐
│ 2. STAGING (Laravel Cloud - Starter Plan)               │
├─────────────────────────────────────────────────────────┤
│ • Auto-deploy dari staging branch                       │
│ • Hibernation ON (cost minimal)                         │
│ • Share URL ke client untuk review                      │
│ • URL: staging.projectclient.com                        │
└─────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────┐
│ 3. PRODUCTION (Laravel Cloud - Starter/Growth)          │
├─────────────────────────────────────────────────────────┤
│ • Auto-deploy dari main branch                          │
│ • Hibernation OFF atau Auto-scaling ON                  │
│ • Custom domain client                                  │
│ • URL: projectclient.com                                │
└─────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────┐
│ 4. MAINTENANCE                                          │
├─────────────────────────────────────────────────────────┤
│ • Client request changes                                │
│ • Code locally, push to staging                         │
│ • Client approve di staging                             │
│ • Merge ke main, auto-deploy ke production              │
│ • Invoice maintenance fee                               │
└─────────────────────────────────────────────────────────┘

Git Branching Strategy

RECOMMENDED BRANCHES:

main (production)
├── Protected branch
├── Auto-deploy ke Production environment
├── Only merge from staging after approval
└── Tag releases: v1.0.0, v1.1.0, etc.

staging (staging/demo)
├── Auto-deploy ke Staging environment
├── Development integration branch
├── Client review happens here
└── Merge ke main when approved

feature/* (development)
├── Branch dari staging
├── One branch per feature/fix
├── PR ke staging when done
└── Delete after merged

Setup Auto-Deploy per Branch:

  1. Create two environments di Laravel Cloud:
    • production → Branch: main
    • staging → Branch: staging
  2. Each environment auto-deploys when respective branch updated
  3. Workflow: # Working on new feature git checkout staging git pull git checkout -b feature/add-contact-form # ... code ... git add . git commit -m "Add contact form with validation" git push origin feature/add-contact-form # Create PR to staging (or merge directly) git checkout staging git merge feature/add-contact-form git push origin staging # → Auto-deploy ke staging environment # After client approval git checkout main git merge staging git push origin main # → Auto-deploy ke production

Handling Client Revisions

CLIENT REVISION WORKFLOW:

1. Client request via WhatsApp/Email:
   "Mas, bisa ganti warna header jadi biru?"

2. Create branch:
   git checkout -b feature/header-color-change

3. Make changes locally

4. Push ke staging:
   git push origin feature/header-color-change
   git checkout staging
   git merge feature/header-color-change
   git push

5. Send staging URL ke client:
   "Sudah saya update di staging, silakan cek:
    <https://staging.projectclient.com>"

6. Client approve:
   "Oke bagus, bisa di-push ke live?"

7. Deploy ke production:
   git checkout main
   git merge staging
   git push

8. Confirm ke client:
   "Done, sudah live di projectclient.com"

Total time: depends on complexity
Deploy time: 60 seconds

Environment Configuration Best Practices

Staging Environment:

Settings:
├── Hibernation: ON
├── Compute: Flex smallest
├── Database: Serverless Postgres
├── Domain: staging.projectclient.com (or default URL)

Purpose:
├── Client review
├── Testing new features
├── Demo untuk stakeholders

Production Environment:

Settings:
├── Hibernation: Based on traffic
├── Compute: Sized for expected load
├── Database: MySQL (more predictable)
├── Domain: projectclient.com

Purpose:
├── Live site untuk end users
├── Stable, tested code only
├── Proper monitoring

Commands Cheat Sheet

# ARTISAN COMMANDS VIA DASHBOARD:

# Database
php artisan migrate --force
php artisan migrate:rollback --force
php artisan db:seed --class=ProductionSeeder

# Cache Management
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan optimize:clear

# Maintenance Mode
php artisan down --secret="bypass-token-123"
php artisan up

# Queue (kalau gak pakai dedicated worker)
php artisan queue:work --once

# Debugging
php artisan tinker
php artisan route:list

Monitoring Checklist

WEEKLY MONITORING:

□ Check error logs untuk issues
□ Review response times
□ Monitor database size
□ Check SSL certificate status (auto, tapi verify)
□ Review billing/usage

MONTHLY REVIEW:

□ Analyze traffic patterns
□ Right-size compute if needed
□ Clean up unused environments
□ Update dependencies locally, test, deploy
□ Backup verification

Client Handover

Ketika project selesai, handover dengan professional:

HANDOVER DOCUMENTATION:

Technical:
□ Laravel Cloud environment details
□ Custom domain configuration
□ Database credentials (stored securely)
□ Environment variables list
□ Git repository access

Access:
□ Admin panel credentials
□ Any third-party service logins
□ Documentation untuk common tasks

Support:
□ Maintenance agreement terms
□ Response time expectations
□ Hourly/monthly rate untuk changes
□ Emergency contact procedure

Billing Options untuk Client:

OPTION A: Transfer Ownership
├── Transfer Laravel Cloud organization ke client
├── Mereka bayar langsung ke Laravel Cloud
├── Kamu gak involved in hosting
└── Best for: clients dengan technical team

OPTION B: Kamu Manage, Client Reimburse
├── Kamu tetap own Laravel Cloud account
├── Client reimburse monthly cost + markup
├── Kamu handle all technical
└── Best for: ongoing maintenance relationship

OPTION C: Include in Maintenance Package
├── Hosting cost included dalam monthly retainer
├── Simple untuk client (one invoice)
├── Kamu manage everything
└── Best for: full-service clients

Pricing Guide untuk Services

SUGGESTED PRICING (Adjust sesuai market):

Initial Setup:
├── Laravel Cloud setup: Rp 500.000 - 1.000.000
├── Domain configuration: Rp 200.000 - 500.000
├── SSL + Security setup: Included
└── Total setup: Rp 700.000 - 1.500.000

Monthly Hosting (markup dari actual cost):
├── Your cost: ~$10-20/month
├── Client charge: Rp 200.000 - 500.000/month
└── Your margin: Rp 50.000 - 200.000/month

Maintenance Retainer:
├── Basic (updates + small fixes): Rp 500.000/month
├── Standard (+ content updates): Rp 1.000.000/month
├── Premium (+ new features): Rp 2.000.000+/month

Hourly Rate untuk Additional Work:
├── Rp 150.000 - 300.000/hour
└── Depends on complexity dan relationship

Mini Tips

"Always include hosting management dalam service offerings. Ini recurring revenue yang stabil. Client happy karena gak perlu pusing technical, kamu happy karena ada passive income setiap bulan dari setiap project yang sudah selesai."

Bagian 8: Penutup dan Action Plan

Let's wrap up everything dan create action plan yang bisa langsung kalian eksekusi.

Recap Apa yang Sudah Dipelajari

LARAVEL CLOUD MASTERY CHECKLIST:

✅ Understanding
├── Apa itu Laravel Cloud
├── Pricing dan plans
├── Comparison dengan alternatives
└── Benefits untuk freelancers

✅ Setup
├── Create account
├── Connect Git provider
├── Create application
└── Configure environment

✅ Database & Resources
├── Serverless Postgres setup
├── MySQL setup
├── Environment variables
├── Redis dan Object Storage
└── Build/Deploy commands

✅ Domain & SSL
├── Add custom domain
├── Configure DNS
├── Auto SSL provisioning
└── WWW redirects

✅ Cost Optimization
├── Hibernation configuration
├── Auto-scaling strategies
├── Cost monitoring
└── Right-sizing resources

✅ Workflow
├── Git branching strategy
├── Staging/Production environments
├── Client revision handling
├── Handover process

Before vs After Laravel Cloud

FREELANCER TRANSFORMATION:

BEFORE:
─────────────────────────────────────
• Setup server: 4-6 hours
• Deploy changes: 15-30 minutes
• SSL setup: 30-60 minutes
• Scaling: Manual, risky
• Cost: Fixed $10+/month per project
• Stress level: High
• Client demos: "Tunggu ya, saya setup dulu"

AFTER:
─────────────────────────────────────
• Setup: 60 seconds
• Deploy: Automatic on git push
• SSL: Automatic
• Scaling: Automatic
• Cost: Pay what you use (~$3-15/project)
• Stress level: Minimal
• Client demos: "Ini link-nya, sudah live"

Value Proposition untuk Clients

Ini yang bisa kalian communicate ke potential clients:

WHAT YOU OFFER:

"Saya tidak hanya develop aplikasi, tapi juga
handle deployment dan hosting dengan infrastructure
enterprise-grade:

✓ Auto-scaling untuk handle traffic spike
✓ Auto SSL untuk keamanan
✓ Daily backups untuk data safety
✓ 99.9% uptime guarantee
✓ Fast loading dengan edge caching
✓ Professional monitoring

Anda tinggal fokus ke bisnis,
technical infrastructure saya yang urus."

Ini differentiation dari developer lain yang cuma bisa code tapi gak bisa deploy properly.

Weekly Action Plan

MINGGU INI - DARI NOL KE DEPLOY:

DAY 1-2: Setup Foundation
─────────────────────────
□ Create Laravel Cloud account
□ Connect GitHub
□ Explore dashboard
□ Read pricing page thoroughly

DAY 3-4: First Deployment
─────────────────────────
□ Deploy project dari kelas BuildWithAngga
□ Setup database (Serverless Postgres)
□ Configure environment variables
□ Run migrations
□ Test semua features

DAY 5-6: Professional Setup
─────────────────────────
□ Setup custom domain (bisa pakai subdomain gratis)
□ Verify SSL working
□ Configure staging + production environments
□ Test deployment workflow (push → auto-deploy)

DAY 7: Documentation & Share
─────────────────────────
□ Document process untuk reference
□ Update portfolio dengan live links
□ Post di LinkedIn tentang new skill
□ Siap untuk client projects!

Monthly Goals

BULAN 1: Foundation
├── Master basic deployment
├── Deploy 2-3 personal projects
├── Understand cost patterns
└── Comfortable dengan dashboard

BULAN 2: Client Projects
├── Offer deployment sebagai service
├── Deploy first client project
├── Setup proper staging workflow
└── Create pricing packages

BULAN 3: Scale
├── Multiple client projects deployed
├── Recurring revenue dari hosting management
├── Optimize costs across projects
└── Consider upgrade ke Growth plan if needed

Resources untuk Lanjut Belajar

OFFICIAL DOCUMENTATION:
├── cloud.laravel.com/docs
├── laravel.com/docs (Laravel general)
└── Laravel YouTube channel

BUILDWITHANGGA:
├── Kelas Laravel lengkap
├── Project-based learning
├── Community support
└── buildwithangga.com

COMMUNITY:
├── Laravel Discord
├── Laravel Indonesia Facebook Group
├── Twitter/X @laaboratory
└── Dev.to Laravel tag

TOOLS:
├── Laravel Herd (local development)
├── Laravel Sail (Docker-based local)
├── TablePlus (database GUI)
└── Ray (debugging)

Closing Message

Deployment dulu adalah barrier yang bikin banyak developer stuck. Project bagus tapi gak bisa di-deploy properly. Demo ke client berantakan. Production down karena server issues.

Sekarang dengan Laravel Cloud, barrier itu hilang.

Kalian bisa deploy dalam 60 detik. Kalian bisa demo ke client kapanpun. Kalian bisa handle multiple projects tanpa overwhelmed. Kalian bisa tidur nyenyak karena auto-scaling handle traffic spikes.

Yang lebih penting: skill deployment ini bikin kalian lebih valuable sebagai freelancer. Client gak cuma dapat developer — mereka dapat complete solution provider.

Ini yang gue mau kalian ambil dari tutorial ini: deployment bukan lagi technical barrier. It's now a competitive advantage.

Deploy project kelas kalian. Build portfolio yang impressive. Show potential clients bahwa kalian bisa deliver end-to-end.

Go get those freelance projects.