Setiap aplikasi di lingkungan ini bikin penanganan file-nya sendiri: endpoint upload sendiri, logika thumbnail sendiri, asumsi sendiri soal siapa yang boleh membaca sebuah file. Akibatnya upload besar mengalir lewat server aplikasi, aturan akses nggak konsisten, dan nggak ada satu jawaban pasti soal berapa storage yang sebenarnya terpakai. Yang dibutuhkan: satu layanan yang bisa dipakai beberapa tenant tanpa saling melihat datanya, dan bisa diadopsi tim lain tanpa harus baca spesifikasi dulu.
Kami bangun API NestJS 11 dan Bun di mana upload di-broker, bukan di-proxy: klien minta URL presigned, PUT langsung ke S3, lalu finalize — jadi nggak ada file besar yang mengalir lewat API. Pasca-proses (thumbnail, preview, transcode) jalan di BullMQ dengan Redis, dan pengiriman pakai signed URL berumur pendek supaya akses bisa dicabut tanpa memindahkan objeknya. Tenancy ditegakkan di lapisan data, webhook bertanda tangan HMAC mengabari aplikasi konsumen saat proses selesai, dan dashboard React 19 mengurus file, folder, serta kunci per aplikasi. SDK typed TypeScript, Python, dan PHP bikin integrasi jadi beberapa baris, bukan satu proyek.
Upload langsung ke S3, byte tak lewat API
Klien typed: TypeScript, Python, PHP
Dirancang & dibangun oleh Manggala Code