33 poin oleh xguru 2026-03-02 | 7 komentar | Bagikan ke WhatsApp
  • Utilitas open-source dari Vercel Labs yang menyelesaikan konflik port saat pengembangan lokal serta repotnya harus mengingat port yang dipakai
  • Memberikan subdomain app.localhost yang unik untuk tiap server pengembangan, sehingga menyediakan sistem URL yang dapat dikenali baik oleh manusia maupun agen AI
    Jika dijalankan dengan next dev, hasilnya http://localhost:3000 sehingga Anda harus mengingat 3000
    Namun jika menjalankan portless myapp next dev, Anda bisa mengakses dalam bentuk http://myapp.localhost:1355
    Jika dijalankan seperti portless api.myapp pnpm start, akses subdomain seperti http://api.myapp.localhost:1355 juga didukung
  • Bekerja dengan arsitektur berbasis proxy, di mana portless proxy merutekan permintaan secara terpusat
    • Saat aplikasi dijalankan, proxy akan otomatis dimulai, dan tiap aplikasi dialokasikan ke port acak (4000–4999)
    • Sebagian besar framework (Next.js, Express, Nuxt, dll.) otomatis mengenali variabel lingkungan PORT
    • Untuk beberapa framework seperti Vite dan Astro, kompatibilitas dijaga lewat fitur injeksi flag otomatis
  • Mendukung HTTP/2 dan HTTPS untuk mewujudkan pemuatan halaman yang cepat dan komunikasi lokal yang aman
    • Browser membatasi HTTP/1.1 hingga 6 koneksi per host
      • Menurunkan performa server pengembangan yang menyajikan banyak file tidak terkompresi seperti Vite/Nuxt
      • HTTP/2 memultipleks semua permintaan melalui satu koneksi
    • Pembuatan sertifikat internal dan pendaftaran ke system trust store diotomatisasi
    • Opsi --cert, --key juga bisa dipakai untuk menerapkan sertifikat kustom
  • Menyediakan antarmuka CLI yang berpusat pada perintah
    • portless <name> <cmd> : menjalankan aplikasi dengan nama yang ditentukan
    • portless list : menampilkan daftar rute yang aktif
    • portless proxy start/stop : mengontrol proxy
    • Bisa dijalankan dengan melewati proxy menggunakan variabel lingkungan PORTLESS=0
  • Menyimpan informasi rute dan PID melalui direktori manajemen status
    • Dalam mode pengguna biasa memakai ~/.portless, dalam mode root memakai /tmp/portless
    • Jalur dapat ditimpa ulang dengan PORTLESS_STATE_DIR
  • Saat mengatur API proxy di Vite, webpack-dev-server dan lainnya, header Host perlu ditulis ulang
    • Jika konfigurasi salah, masalah akan diberi tahu lewat respons 508 Loop Detected
  • Mendukung Node.js 20 ke atas serta lingkungan macOS dan Linux
  • Struktur monorepo berbasis pnpm + Turborepo
  • Lisensi Apache-2.0, codebase TypeScript (sekitar 74%)

7 komentar

 
xguru 2026-03-05

Sudah diperbarui agar mendukung worktree

https://github.com/vercel-labs/portless/releases/tag/v0.5.2

Sekarang secara otomatis mengenali worktree dan menambahkan nama branch di depan host

 
ragingwind 2026-03-02

Kurang cocok dengan worktree proyek yang sama, jadi saya tidak memakainya.

 
ndrgrd 2026-03-02

Saya kira penugasannya dilakukan otomatis, ternyata hanya didaftarkan secara manual.
Saya memakai Caddy, jadi sepertinya tidak ada alasan khusus untuk beralih ke ini.

 
ksc2601 2026-03-02

Saya sudah menggunakan ini dengan docker + traefik + mkcert, tetapi sepertinya memakai itu akan lebih praktis.

 
bytecakelake 2026-03-02

Artikel yang bermanfaat.

 
xguru 2026-03-02

Sekarang bisa bilang bye ke error EADDRINUSE?
Akhir-akhir ini banyak yang ngembangin ini-itu lewat agent, jadi banyak proses jalan bareng dan saling bentrok, kacau juga sih wkwk

 
xguru 2026-03-02

Karena topik ini dibicarakan di X, tampaknya jika digunakan di Docker, ini juga bisa bekerja dengan memaksa memasukkan PID daemon Docker.

https://github.com/vercel-labs/portless/issues/61