Keresahan: Antara Keamanan Data dan Harga Langganan Adobe

Saya itu sering banget ditanyain temen-temen kantor yang mukanya udah kayak habis nemu bug di hari Jumat sore. Masalahnya klasik: mereka harus kompres file publikasi BPS yang gedenya minta ampun. Pilihannya cuma dua: pakai iLovePDF tapi ngeri data bocor ke server antah berantah, atau minta langganan Adobe Acrobat yang harganya bikin ngelus dada.

Sebagai orang IT yang dianggap bisa segalanya (padahal nyari solusi di Google juga), saya ngerasa berdosa kalau nggak bantuin. Akhirnya, daripada dengerin curhatan mereka terus, saya mutusin buat bikin aplikasi PDF editor dan compressor sendiri. Itung-itung simulasi jadi startup founder, tapi tanpa modal ventura.

The Solution: Vibe Coding Pakai Kiro

Karena saya lagi males ngetik boilerplate yang panjangnya kayak antrean sembako, saya pakai pendekatan Vibe Coding. Saya pakai Kiro buat nge-generate struktur dasarnya. Stack-nya simpel aja: Node.js buat backend-nya dan Next.js buat frontend supaya tampilannya nggak malu-maluin banget pas dilihat bos.

Kenapa Pakai Stack Ini?

  • Next.js: Biar user interface-nya sat-set-sat-set. Temen kantor saya nggak butuh animasi yang muter-muter, yang penting tombol 'Upload' sama 'Download'-nya kelihatan gede.
  • Node.js: Karena ekosistem library-nya luas banget.
  • Ghostscript: Ini rahasia dapurnya. Ghostscript itu engine yang powerful banget buat urusan PDF. Untungnya, pas saya cek hostingan saya, mereka support Ghostscript. Rasanya kayak nemu uang 50 ribu di kantong celana yang udah lama nggak dicuci.

Progres dan Implementasi

Sekarang progresnya udah 80% jadi. Logika buat kompresi PDF-nya udah jalan. Saya pakai child process di Node.js buat manggil perintah Ghostscript di server. Jadi, file PDF yang masuk bakal diperas ukurannya tanpa bikin tulisannya jadi kayak semut kegiles.

Kenapa ini lebih aman? Karena saya engga nyimpen file nya di server, cuma upload sementara habis itu langsung hapus. Nggak ada ceritanya data publikasi BPS disimpan di server lama-lama. Temen-temen kantor tenang, saya pun bisa balik ngopi dengan damai.

Refleksi: Deploy atau Enggak?

Tinggal sedikit polesan di bagian UI dan error handling (biar kalau filenya kegedean nggak langsung bikin server meledak), aplikasi ini siap di-deploy. Ternyata, bikin solusi buat keresahan orang sekitar itu jauh lebih memuaskan daripada benerin legacy code yang nggak ada dokumentasinya. Semoga minggu depan udah bisa dipakai semua orang di kantor!