Lewati ke konten

Studi kasus Yoora Sarah

Satu ekosistem, dari etalase sampai lantai produksi.

Yoora Sarah memproduksi dan menjual koleksinya sendiri. Sebagai engineer utama di sana, pendiri Sutarji Co membantu menyatukan penjualan, gudang, produksi, dan keuangannya dalam empat aplikasi yang saling terhubung.

Bisnis
Brand fashion muslim
Peran penulis
Engineer utama (full-stack)
Periode
2025 — sekarang

Ditulis oleh Asep Jaenudin Sutarji, pendiri Sutarji Co, tentang pekerjaannya sendiri.

yoorasarah.com
Beranda toko online Yoora Sarah dengan foto koleksi abaya
Halaman produk Yoora Sarah di layar ponsel
aplikasi dalam satu ekosistem
4
halaman antarmuka
289
endpoint API
±1.056
tabel database
263

01Tantangan

Dua dunia yang jarang bertemu.

Sebuah brand yang memproduksi sendiri punya dua dunia yang jarang bertemu: etalase tempat pelanggan berbelanja, dan dapur tempat bahan dibeli, dijahit, diperiksa, lalu disimpan. Ketika keduanya memakai alat berbeda, stok di toko tidak sama dengan stok di gudang, dan pertanyaan sederhana seperti “berapa untung per produk” tidak punya satu jawaban.

Tugas saya menyatukannya: satu backend sebagai sumber kebenaran, dan antarmuka yang berbeda untuk tiap orang yang memakainya — pembeli, admin, tim gudang, finance, CS, vendor jahit, reseller, sampai kasir di event.

02Arsitektur

Banyak pintu, satu sumber data.

Antarmuka · siapa memakai apa

  • Storefront

    Pembeli

    Next.js · Vercel

  • Admin Console

    Admin · gudang · finance · CS

    Next.js · Vercel

  • ERP

    Produksi · pembelian · akuntansi

    Next.js · Vercel

  • Portal & POS

    Vendor · reseller · kasir event

    Bagian dari ERP · PWA

API · Go

Satu binary, satu pintu untuk semua antarmuka — modular monolith di Google Cloud Run.

60 modul · ±1.056 endpoint · 25+ worker latar

  • PostgreSQL

    263 tabel · 298 migrasi

  • Redis

    Cache · rate limit · relai SSE

  • Layanan luar

    Xendit · JNE · WhatsApp · Meta · marketplace

Aplikasi 01/04Toko online

Storefront

yoorasarah.com(situs publik, tab baru)

Toko online yang dimiliki penuh oleh brand — bukan sewa template marketplace. Dirancang supaya pembeli jarang tersangkut, dan tim CS jarang ditanya hal yang bisa dijawab sistem.

halaman
32
bahasa (ID · EN)
2
test case manual
403
  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS 4
  • next-intl
  • Three.js
yoorasarah.com/abaya
Halaman kategori Abaya di toko online Yoora Sarah
yoorasarah.com/abaya/…
Halaman detail produk dengan pilihan warna dan ukuran

Checkout yang menjaga omzet

  • Checkout tamu dengan kode 6 digit lewat email, tanpa wajib membuat akun.
  • Kunci idempotensi: menekan tombol bayar berkali-kali tidak pernah membuat pesanan ganda.
  • Pesanan yang belum dibayar punya hitung mundur dan jalan kembali ke halaman pembayaran.
  • Pre-order dan barang ready stock dalam satu pesanan dikirim sebagai dua paket terpisah.
  • Pembayaran Xendit, ongkir dan pelacakan resi JNE, voucher dan promo.

Lebih sedikit retur, lebih sedikit tiket CS

  • “Temukan Ukuran”: pencari ukuran dengan manekin 3D, plus versi ringan untuk perangkat lama.
  • Refund mandiri dari pengajuan, pengiriman retur, sampai pencairan dana lewat Xendit.
  • Riwayat pesanan, pelacakan resi, ulasan, dan survei kepuasan tanpa perlu login.
  • Masuk dengan kata sandi, OTP WhatsApp, atau akun TikTok; perangkat yang sedang masuk bisa dikelola sendiri.

Tumbuh lewat pencarian dan iklan, tanpa melanggar privasi

  • Sitemap hidup dari katalog, data terstruktur produk (harga, stok, rating), dan redirect permanen untuk URL lama.
  • Feed katalog Meta dan Pixel yang baru dimuat setelah pengunjung setuju.
  • Halaman preferensi privasi sesuai UU PDP: pelanggan bisa menarik persetujuan kapan saja.
  • Dua bahasa, Indonesia dan Inggris, dengan 1.138 kunci terjemahan per bahasa.

Header keamanan ketat (CSP, HSTS), sesi lewat cookie HttpOnly di balik proxy same-origin, dan 403 test case manual di 24 area fitur.

Aplikasi 02/04Back-office

Admin Console

admin.yoorasarah.com(aplikasi internal)

Berawal sebagai CMS, tumbuh menjadi gerbang masuk seluruh sistem. Tiap tim melihat aplikasi dan menu yang memang menjadi urusannya.

halaman
144
aplikasi
5
login (SSO)
1
  • Next.js 16
  • TanStack Query
  • React Hook Form
  • Zod
  • TipTap
  • Recharts
admin.yoorasarah.com
Halaman masuk Admin Console Yoora Sarah

Satu login · lima aplikasi

  • CMS
  • WMS
  • Finance
  • CRM
  • Analytics

Satu login, lima aplikasi

  • Launcher aplikasi dan single sign-on: CMS, WMS, Finance, CRM, dan Analytics dalam satu sesi.
  • Hak akses berbentuk (sistem, resource, aksi) — menu dan tombol mengikuti izin tiap peran.
  • Log aktivitas pengguna dan notifikasi real-time lewat Server-Sent Events.

Katalog, pesanan, dan gudang

  • Produk dengan varian, harga opsi, riwayat stok, kategori ber-SEO, dan size chart dengan studio manekin 3D.
  • Pesanan (termasuk dibuatkan atas nama pelanggan), promo, voucher massal, upsell, dan ulasan.
  • Resi per paket dan label pengiriman HTML, PDF, atau thermal; alur retur dan kirim ulang JNE.
  • WMS untuk tim gudang: pesanan, refund, produk, stok, dan mutasi stok.

Keuangan yang bisa dicocokkan

  • Rekonsiliasi dan buku besar saldo Xendit.
  • Hutang vendor dengan PPN pada faktur dan pencatatan uang muka.
  • Refund berantai: CS mengajukan, gudang memeriksa, finance mengeksekusi.
  • Ekspor laporan CSV dan Excel, serta audit pencairan JNE.

CRM dan layanan pelanggan

  • Inbox omnichannel dengan antrean dan SLA.
  • Kasus, tugas, makro, dan basis pengetahuan untuk agen.
  • Segmen, RFM, kohort retensi, kampanye, dan journey otomatis.
  • Pengelolaan persetujuan pelanggan dan log audit.

Aplikasi 03/04Operasional hulu

ERP

erp.yoorasarah.com(aplikasi internal)

Dirancang untuk menggantikan spreadsheet yang tercecer dengan satu alur yang bisa ditelusuri — setiap unit dan setiap rupiah, dari kain sampai barang jadi.

halaman
113
dokumen rancangan
26
skenario UAT
58
  • Next.js 16
  • React 19
  • SWR
  • PWA offline
  • IndexedDB
  • QR · Code128

Rilis ke produksi Okt 2026 · tahap UAT

Alur hulu · dari ide sampai pembukuan

  1. 01Pengembangan produk
  2. 02Resep / BOM
  3. 03Perencanaan
  4. 04Pembelian
  5. 05Gudang
  6. 06Produksi
  7. 07QC
  8. 08Penjualan
  9. 09Akuntansi
  • + Portal vendor
  • + Portal reseller
  • + Kasir event · offline

Dari ide sampai barang jadi

  • Master data dan pengembangan produk: koleksi, kurva ukuran, style, laporan biaya sampel.
  • BOM/resep dengan impor Excel; rencana beli dan analisa reorder point, overstock, serta best seller.
  • Pembelian: permintaan, PO, daftar harga, penerimaan barang — dengan approval berjenjang yang bisa diatur.
  • Produksi makloon (CMT): order produksi, penerimaan hasil, cetak hangtag ber-QR.
  • QC: inspeksi dengan foto cacat, jenis cacat, dan daftar siap perbaikan.

Stok dan uang yang bisa ditelusuri

  • Gudang multi-lokasi: ledger stok, transfer, penyesuaian, stock opname, pindai rak.
  • Valuasi persediaan FIFO per lapisan biaya.
  • Akuntansi: bagan akun, jurnal, periode, dan neraca saldo.
  • Approval berjenjang: penyusun dan pengaju dokumen tidak bisa menyetujui dokumennya sendiri.
  • Log audit untuk setiap perubahan dokumen.

Menjangkau orang di luar kantor

  • Portal vendor: order, bahan diterima, hasil QC, status pembayaran, cetak hangtag.
  • Portal reseller: pendaftaran, katalog harga bertingkat, keranjang, dan checkout Xendit.
  • Kasir event untuk tablet: offline-first, pindai QR/barcode lewat kamera, cetak struk.
  • Label rak 100×50 mm, label barang 50×30 mm, dan hangtag 70×40 mm dicetak langsung dari browser.

Status apa adanya: ERP rilis ke server produksi pada 21 Oktober 2026 dan sedang berada di tahap uji terima (UAT) bersama tim — belum menggantikan operasional harian.

Aplikasi 04/04Backend Go

API

api.yoorasarah.com(aplikasi internal)

Mesin di belakang semuanya. Satu binary, satu database, banyak pintu — dan aturan yang sama untuk siapa pun yang mengetuknya.

endpoint
±1.056
tabel database
263
fungsi test
2.404
  • Go 1.27
  • PostgreSQL
  • Redis
  • GORM · pgx
  • Docker
  • Cloud Run
api.yoorasarah.com — ringkasan
modul
60
endpoint
±1.056
tabel
263
migrasi
298
worker latar
25+
fungsi test
2.404
rilis
canary 10 → 50 → 100%

Arsitektur

  • Modular monolith: 60 modul berpola handler → usecase → repository dalam satu binary.
  • ±1.056 endpoint untuk storefront, CMS, ERP, finance, WMS, POS, reseller, dan vendor.
  • 298 migrasi PostgreSQL, 263 tabel; perubahan skema mengikuti aturan expand dulu, contract kemudian.
  • Lebih dari 25 worker latar; advisory lock memastikan tiap worker hanya berjalan di satu instance.
  • Notifikasi real-time lewat SSE, direlai antar-instance dengan Redis Streams.

Uang dan stok tidak boleh salah

  • Middleware kunci idempotensi untuk aksi yang tidak boleh terulang.
  • Ledger stok append-only dengan jurnal balik dan valuasi FIFO per barang per gudang.
  • Transaksi database dan penguncian baris di setiap jalur kritis.
  • Rekonsiliasi Xendit, plus alat pemulihan untuk pesanan terbayar yang tersangkut.

Diuji dan dirilis dengan disiplin

  • 2.404 fungsi test; uji integrasi berjalan terhadap PostgreSQL dan Redis sungguhan dengan race detector.
  • CI wajib di branch utama: go vet, govulncheck, dan golangci-lint.
  • Deploy canary dengan smoke test, gerbang galat 5xx, dan rollback otomatis.
  • Log JSON terstruktur dengan request ID, metrik Prometheus, dan graceful shutdown.

Keamanan dan privasi

  • Hak akses (sistem, resource, aksi) ditegakkan di sekitar 590 rute.
  • Rate limit lintas instance, CSRF, rotasi refresh token, dan verifikasi tanda tangan webhook.
  • Masking data pribadi di server, modul persetujuan dan berhenti berlangganan, serta penghapusan akun terjadwal.

03Cara kerja

Disiplin yang sama di setiap aplikasi.

  1. 01

    Dirancang sebelum ditulis

    ERP berangkat dari blueprint 3.988 baris dan 26 dokumen rancangan: modul, peran, alur persetujuan, dan keputusan yang dicatat bertanggal.

  2. 02

    Dirilis bertahap

    ERP dipecah menjadi fase 0 sampai 8. Rilis pertama ke server produksi terjadi lima minggu setelah commit pertama.

  3. 03

    Diuji berlapis

    2.404 fungsi test otomatis di backend, 403 test case manual untuk storefront, dan 58 skenario uji terima untuk ERP.

  4. 04

    Dirilis tanpa menahan napas

    CI di setiap perubahan, lalu deploy canary 10% → 50% → 100% dengan rollback otomatis bila tingkat galat naik.

04Integrasi

Tersambung ke layanan yang sudah dipakai bisnis.

Pembayaran, pengiriman, percakapan pelanggan, iklan, dan marketplace — semuanya masuk ke backend yang sama, sehingga satu pesanan punya satu riwayat.

  • Xendit
  • JNE
  • WhatsApp Cloud API
  • Meta Conversions API
  • Katalog Meta
  • TikTok Shop
  • Shopee
  • Jubelio
  • Brevo
  • Cloudflare Images
  • Cloudflare Stream
  • Google Cloud Run
  • Google Cloud Storage
  • Vercel

05Peran saya

Apa yang saya kerjakan sendiri.

Saya ikut mengerjakan sistem ini sejak 2025 sebagai bagian dari tim. Sejak April 2026, saat bergabung penuh waktu di Yoora Sarah, seluruh pengembangan di keempat repositori saya kerjakan sendiri — 2.607 dari 3.123 commit di branch utama adalah milik saya, dan ERP saya bangun dari commit pertama.

Semua angka di halaman ini dihitung langsung dari repositori per November 2026. Aplikasi internal tidak ditautkan dan tidak ditampilkan tangkapan layarnya; yang ditampilkan adalah skema dan angka.

Tulisan terkait

Tulisan yang memakai studi kasus ini.

Semua tulisan
  1. Konsultasi IT

    Digitalisasi UMKM: mulai dari mana?

    Baca 5 menit

    Digitalisasi tidak dimulai dari aplikasi. Enam langkah: petakan masalah, pilih antara merapikan, menyambungkan, atau membangun, lalu kerjakan bertahap.

  2. Integrasi

    Integrasi payment gateway ke website: lima hal yang harus dijaga.

    Baca 4 menit

    Pembayaran lunas tapi pesanan belum terbayar, atau pesanan tercatat dua kali? Lima hal yang harus dijaga saat menyambungkan payment gateway ke website.

  3. Aplikasi web

    Aplikasi offline-first: tetap jalan tanpa internet.

    Baca 5 menit

    Sopir, kasir, dan petugas lapangan sering bekerja tanpa sinyal. Cara kerja aplikasi offline-first: catat di perangkat, lalu terkirim tanpa data dobel.

  4. Toko online

    Toko online sendiri atau marketplace?

    Baca 4 menit

    Marketplace memberi pembeli, toko online sendiri memberi kendali. Kapan cukup satu, kapan butuh keduanya, dan cara menjalankannya dengan satu stok.

  5. ERP

    ERP custom atau ERP siap pakai?

    Baca 6 menit

    Kapan ERP siap pakai sudah cukup, dan kapan ERP custom layak dibangun? Lima pertanyaan untuk memutuskan, dengan contoh dari brand fashion dan usaha air.

Layanan

Butuh hal serupa untuk bisnis Anda?

Semua layanan
  1. 01

    Arah teknologi yang jelas Konsultan IT untuk bisnis

    Belum tahu harus mulai dari mana? Kami petakan kondisi bisnis Anda, pilihan solusinya, dan urutan prioritasnya dalam dokumen yang bisa Anda baca.

  2. 02

    Jualan online milik sendiri Jasa pembuatan toko online

    Toko online dengan checkout, pembayaran, dan ongkir sendiri, supaya penjualan tidak bergantung penuh pada marketplace.

  3. 03

    Operasional yang rapi Jasa pembuatan ERP custom

    Stok, pembelian, produksi, sampai pembukuan dalam satu alur yang bisa ditelusuri, menggantikan spreadsheet yang tercecer.

  4. 04

    Tim dan pelanggan di satu sistem Jasa pembuatan aplikasi web

    Satu login untuk katalog, pesanan, gudang, dan keuangan; percakapan WhatsApp, Instagram, dan email pelanggan di satu tempat.

  5. 05

    Sistem yang saling tersambung Jasa integrasi sistem & API

    Pembayaran, kurir, marketplace, dan iklan terhubung ke satu sumber data, sehingga tidak perlu diketik ulang di banyak tempat.

Studi kasus berikutnyaEQUA ERPSatu sistem untuk air truk, depot, toko, dan sumber air.
06Kontak

Ingin bisnis Anda tumbuh? Ceritakan dulu kondisinya.

Tidak perlu dokumen rapi atau istilah teknis. Cukup ceritakan tujuan Anda dan apa yang paling merepotkan hari ini — dari situ kita lihat langkah teknologi mana yang paling masuk akal.

Kabupaten Cianjur, Jawa Barat · WIB (UTC+7)

Berbasis di Cianjur dan melayani klien di seluruh Indonesia. Untuk klien di luar Cianjur, pertemuan langsung tetap bisa diatur.

Brief kilat · 30 detik

Saya ingin dibantu soal…
Kondisi saat ini

Pratinjau pesan

Halo Sutarji Co, Saya ingin berdiskusi tentang bisnis saya.

Tidak ada data yang disimpan di situs ini. Pesan baru terkirim setelah Anda menekan kirim di aplikasi Anda sendiri.

Diskusikan bisnis Anda