Netlify adalah platform hosting populer dengan fitur-fitur unik seperti form handling built-in dan edge functions. Dengan free tier yang kompetitif, Netlify adalah alternatif solid untuk hosting Sitemas.

Mengapa Netlify?

FiturKeterangan
Free Tier100GB bandwidth/bulan, 300 build minutes
Auto DeployGit-based deployment
FormsBuilt-in form handling tanpa backend
FunctionsServerless functions (AWS Lambda)
Edge FunctionsDeno-based edge computing
Split TestingA/B testing built-in

Persiapan

Sebelum mulai, pastikan:

  • ✅ Akun GitHub/GitLab/Bitbucket
  • ✅ Repository berisi proyek Sitemas
  • ✅ Build lokal berhasil (npm run build)

Deploy via Netlify CLI

Install Netlify CLI

Install Netlify CLI
npm install -g netlify-cli

Login ke Netlify

Login
netlify login

Browser akan terbuka untuk autentikasi.

Initialize Project

Init project
netlify init

Pilih:

  • Create & configure a new site
  • Pilih team Anda
  • Masukkan site name (atau biarkan random)

Deploy

Deploy
netlify deploy --prod

Website live di https://sitename.netlify.app!

Deploy via Dashboard

Push ke GitHub

Push ke GitHub
git init
git add .
git commit -m 'Initial commit'
git remote add origin https://github.com/username/repo.git
git push -u origin main

Import di Netlify

  1. Buka app.netlify.com
  2. Klik Add new siteImport an existing project
  3. Connect dengan Git provider Anda
  4. Pilih repository Sitemas

Configure Build Settings

SettingValue
Base directory(kosongkan)
Build commandnpm run build
Publish directorydist

Environment Variables

  1. Expand Advanced build settings
  2. Klik New variable
  3. Tambahkan variables yang diperlukan

Deploy Site

Klik Deploy site dan tunggu proses selesai.

Konfigurasi netlify.toml

Buat file netlify.toml di root untuk konfigurasi:

netlify.toml
toml
[build]
  command = "npm run build"
  publish = "dist"

[build.environment]
  NODE_VERSION = "20"

# Headers untuk caching
[[headers]]
  for = "/fonts/*"
  [headers.values]
    Cache-Control = "public, max-age=31536000, immutable"

[[headers]]
  for = "/_astro/*"
  [headers.values]
    Cache-Control = "public, max-age=31536000, immutable"

[[headers]]
  for = "/*"
  [headers.values]
    X-Frame-Options = "DENY"
    X-Content-Type-Options = "nosniff"
    Referrer-Policy = "strict-origin-when-cross-origin"

# Redirects
[[redirects]]
  from = "/old-url"
  to = "/new-url"
  status = 301

# SPA fallback (jika diperlukan)
[[redirects]]
  from = "/*"
  to = "/404"
  status = 404

Environment Variables

Menambahkan di Dashboard

  1. Site settingsEnvironment variables
  2. Klik Add a variable
  3. Pilih scope: All deploys, Production, atau Deploy Previews
VariableValueScope
PUBLIC_SITE_URLhttps://yourdomain.comProduction
PUBLIC_GA_MEASUREMENT_IDG-XXXXXXXXAll

Menggunakan di Code

Akses env variable
javascript
const siteUrl = import.meta.env.PUBLIC_SITE_URL;
const gaId = import.meta.env.PUBLIC_GA_MEASUREMENT_ID;

Deploy Contexts

Netlify mendukung berbagai deploy contexts:

ContextTriggerURL
ProductionPush ke main/masteryourdomain.com
Deploy PreviewPull Requestdeploy-preview-123—sitename.netlify.app
Branch DeployPush ke branch lainbranchname—sitename.netlify.app

Mengaktifkan Branch Deploys

  1. Site settingsBuild & deployBranches and deploy contexts
  2. Pilih All atau Only production branch

Custom Domain

Tambah Domain

  1. Domain settingsAdd custom domain
  2. Masukkan domain: yourdomain.com

Konfigurasi DNS

Opsi 1: Netlify DNS (Recommended)

  • Update nameservers ke Netlify
  • Full control dan fastest propagation

Opsi 2: External DNS

# Apex domain
Type: A
Name: @
Value: 75.2.60.5

# www subdomain
Type: CNAME
Name: www
Value: sitename.netlify.app

SSL Certificate

Netlify otomatis provision Let’s Encrypt SSL. Klik Verify DNS configuration untuk mempercepat.

Netlify Forms (Bonus)

Netlify menyediakan form handling tanpa backend:

Netlify form
html
<form name="contact" method="POST" data-netlify="true">
    <input type="hidden" name="form-name" value="contact" />
    <input type="text" name="name" required />
    <input type="email" name="email" required />
    <textarea name="message" required></textarea>
    <button type="submit">Kirim</button>
</form>

Submissions masuk ke Forms di dashboard.

Free Tier Limit

100 submissions per bulan di free tier.

Build Plugins

Netlify memiliki plugin ecosystem. Yang berguna:

PluginFungsi
LighthouseAudit otomatis setiap deploy
SitemapGenerate sitemap otomatis
CacheOptimasi cache build

Install via dashboard: Plugins → Browse

Monitoring

Deploy Logs

Setiap deploy punya log lengkap:

  • Install dependencies
  • Build process
  • Deploy status

Analytics (Pro)

Netlify Analytics tersedia di Pro plan ($9/month per site).

Status Badges

Tambahkan badge ke README:

[![Netlify Status](https://api.netlify.com/api/v1/badges/SITE_ID/deploy-status)](https://app.netlify.com/sites/SITENAME/deploys)

Troubleshooting

Build Gagal

ErrorSolusi
Command failedCek build command dan Node version
Deploy directory not foundPastikan publish directory = dist
TimeoutIncrease timeout atau optimize build

404 Pages

Pastikan dist folder berisi semua halaman. Cek:

  • Dynamic routes punya getStaticPaths()
  • Tidak ada error saat build

Cache Issues

Clear cache dan redeploy:

  1. DeploysTrigger deployClear cache and deploy site

Perbandingan dengan Vercel

AspekVercelNetlify
Astro supportExcellentExcellent
Free tier bandwidth100GB100GB
Free build minutes6000/month300/month
Forms✅ Built-in
Edge Functions
A/B TestingEnterprise✅ Free

Langkah Selanjutnya

Eksplorasi platform lain:

Deploy ke Cloudflare

Pelajari cara deploy ke Cloudflare Pages dengan edge performance.

Kesimpulan

Netlify adalah pilihan solid untuk hosting Sitemas dengan:

  • Setup yang mudah
  • Forms handling gratis
  • Branch deploys untuk testing
  • Plugins ecosystem

Pilih Netlify jika Anda butuh fitur forms atau A/B testing dalam free tier.