BUKTI

Empat produk berjalan di atas ini, setiap hari

Kami pelanggan kami sendiri yang paling rewel. Inilah persisnya bagian Oprex mana yang diandalkan tiap produk — dan bagaimana rilis mengumumkan dirinya sendiri di dalam aplikasi.

☰ Di halaman ini

Setiap produk di bawah ini dibangun dan dioperasikan PT Kinetikum Indo Solusi, dan semuanya dikelola di dalam Oprex — spesifikasi, requirement, test, bug, rilis, dan tiket support. Oprex sendiri dikelola di Oprex. Halaman ini bukan daftar pelanggan; ini alasan kami tahu bagian produk mana yang menjengkelkan.

IndoHRM

Platform HR dan payroll untuk perusahaan Indonesia. Multi-tenant, berumur panjang, dengan logika payroll yang diatur regulasi dan tidak boleh berubah diam-diam.

IndoHRM adalah pengguna terdalam. Payroll adalah jenis kode yang pertanyaan 'kenapa begini?'-nya harus punya jawaban bertahun-tahun kemudian — jadi spesifikasi, requirement, dan keputusan di baliknya hidup di samping test yang membuktikannya.

Yang dipakainya di Oprex

  • Spesifikasi & requirement — setiap aturan payroll ditelusuri ke regulasi di baliknya
  • Rencana & hasil test — perhitungan payroll diverifikasi ulang sebelum tiap rilis
  • Matriks cakupan — aturan payroll mana yang belum punya test adalah kueri, bukan rapat tinjauan
  • Pelacakan bug dengan severity — defect payroll dan defect tata letak tidak pernah satu antrean
  • Rencana rilis & changelog publik — pelanggan melihat apa yang berubah dan kapan
  • Autopilot pada repositori hrm di GitLab

Liqaa

Platform AI percakapan dan customer engagement. Menjalankan live chat dan helpdesk untuk seluruh keluarga produk Kinexa.

Liqaa adalah tempat support dan engineering bertemu. Percakapan menjadi tiket, tiket menjadi bug, bug rilis dalam sebuah versi, dan pelanggan diberi tahu nomor versinya — satu rantai, tanpa rekonsiliasi.

Yang dipakainya di Oprex

  • Tiket helpdesk — percakapan pelanggan nyata dinaikkan menjadi defect yang terlacak
  • Knowledge base — jawaban disimpan di samping rilis yang membuatnya basi
  • Pelacakan bug & diskusi — percakapan yang melahirkan perbaikan tetap menempel padanya
  • Rilis & changelog — versi yang rilis diumumkan ke produk yang menyematkannya

Nidaa

Infrastruktur pesan dan notifikasi WhatsApp. Pengiriman volume tinggi, di mana kegagalan senyap tak terlihat sampai pelanggan mengeluh.

Infrastruktur pesan gagal dengan cara yang tidak melempar exception. Nidaa mengandalkan field bug yang diabaikan kebanyakan tim — environment, reproduksibilitas, versi produk — karena di situlah polanya benar-benar muncul.

Yang dipakainya di Oprex

  • Pelacakan bug dengan field environment & reproduksibilitas — kegagalan pengiriman jarang bisa direproduksi sesuka hati
  • Milestone — pekerjaan keandalan pengiriman dikelompokkan dan dilacak sampai selesai
  • Catatan & Memori — keanehan penyedia dan perilaku rate-limit ditulis, bukan dipelajari ulang
  • Rencana rilis — perubahan pesan dijadwalkan dengan sengaja, tidak pernah rilis hari Jumat

Wafraa

Platform commerce dan storefront. Menghadap pelanggan, sering berubah, dan rusaknya mahal.

Pekerjaan storefront itu cepat dan tak kenal ampun. Jalur rilis bertahap ada karena perubahan harga yang keluar tanpa pemberitahuan pada hari Jumat adalah cara sebuah akhir pekan lenyap.

Yang dipakainya di Oprex

  • Spesifikasi, requirement & test case — perilaku checkout dispesifikasikan sebelum dibangun
  • Rencana rilis dengan rollout bertahap — Staging → RC → Stabil
  • Matriks cakupan — tidak ada requirement checkout yang rilis tanpa test
  • Tag & manajemen aset — aset produk dan kampanye disimpan bersama project

Bagaimana catatan rilis muncul di dalam produk secara otomatis

Saat salah satu produk ini rilis, orang yang memakainya tahu dari dalam aplikasi — tidak ada yang menulis pengumuman terpisah. Mekanismenya cukup kecil untuk dijelaskan lengkap:

LangkahYang terjadi
1. RilisRencana rilis dikirim di Oprex. Catatan rilis membawa versi, catatan, serta bug dan requirement yang dimuatnya.
2. TerbitkanSet visibilitas rilis ke public. Rilis internal tetap tak terlihat di luar workspace — inilah saklar sengaja antara "sudah kita rilis" dan "beri tahu semua orang".
3. Aplikasi bertanyaSaat dimuat, produk memanggil GET /api/v1/releases/whats-new dengan token pengguna yang masuk. Oprex mengembalikan rilis publik terbaru yang belum dilihat orang ini — atau tidak ada.
4. Popup tampilBila ada rilis, aplikasi menampilkannya. Paling banyak satu popup, dan hanya untuk catatan yang benar-benar baru.
5. Tandai sudah dilihatMenutupnya memanggil POST /api/v1/releases/whats-new/seen. Penandanya disimpan di sisi server pada pengguna, bukan di localStorage.

Mengapa sisi server penting. Penanda "sudah dilihat" di localStorage berarti pengumuman yang sama muncul lagi di setiap browser baru, setiap jendela penyamaran, setiap perangkat baru — dan lenyap diam-diam saat cache dibersihkan. Menyimpannya pada akun pengguna adalah beda antara pengumuman dan gangguan.

Menyambungkannya ke produk Anda sendiri

Aplikasi apa pun yang autentikasinya lewat SSO yang sama bisa melakukannya dalam beberapa baris. Dua endpoint, tanpa SDK.

// saat aplikasi dimuat, setelah pengguna terautentikasi
const r = await fetch("https://api.oprex.id/api/v1/releases/whats-new", { credentials: "include" });
const { data } = await r.json();

if (data) {
  showReleasePopup(data);           // title, version, notes[]
  await fetch("https://api.oprex.id/api/v1/releases/whats-new/seen", {
    method: "POST", credentials: "include",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ releaseId: data.id }),
  });
}

Changelog publik dihasilkan dari catatan yang sama, jadi popup di aplikasi dan halaman publik tidak pernah bercerita berbeda.

Yang kami pelajari dengan menjadi pelanggan sendiri

  • Statistik bisa bocor. Jumlah bug kritis dari project yang tidak bisa Anda buka tetap memberi tahu bahwa project itu ada dan sedang terbakar. Karena itulah agregat pun dikontrol aksesnya.
  • Pemilik null itu nyata. Pekerjaan yang belum di-triage belum punya project — menyembunyikannya berarti menyembunyikan antrean dari orang yang tugasnya men-triage.
  • Integrasi fire-and-forget mati diam-diam. Kami menemukan salah satu integrasi kami diam-diam tidak melakukan apa pun sejak hari ia ditulis. Panggilan lintas layanan kini gagal dengan suara keras.
  • Agen tanpa memori mengulang dirinya. Inilah seluruh alasan lapisan MCP ada.

Jalankan produk Anda seperti kami menjalankan produk kami

Masuk, dan workspace Anda langsung ada. Lifecycle, AI, dan endpoint MCP semuanya ada di paket gratis.

Mulai gratis Lihat Autopilot