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.


- 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


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

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 pembukuanerp.yoorasarah.com
- 01Pengembangan produk
- 02Resep / BOM
- 03Perencanaan
- 04Pembelian
- 05Gudang
- 06Produksi
- 07QC
- 08Penjualan
- 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
- 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.
- 01
Dirancang sebelum ditulis
ERP berangkat dari blueprint 3.988 baris dan 26 dokumen rancangan: modul, peran, alur persetujuan, dan keputusan yang dicatat bertanggal.
- 02
Dirilis bertahap
ERP dipecah menjadi fase 0 sampai 8. Rilis pertama ke server produksi terjadi lima minggu setelah commit pertama.
- 03
Diuji berlapis
2.404 fungsi test otomatis di backend, 403 test case manual untuk storefront, dan 58 skenario uji terima untuk ERP.
- 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.
- Konsultasi IT
Digitalisasi UMKM: mulai dari mana?
Baca 5 menitDigitalisasi tidak dimulai dari aplikasi. Enam langkah: petakan masalah, pilih antara merapikan, menyambungkan, atau membangun, lalu kerjakan bertahap.
- Integrasi
Integrasi payment gateway ke website: lima hal yang harus dijaga.
Baca 4 menitPembayaran lunas tapi pesanan belum terbayar, atau pesanan tercatat dua kali? Lima hal yang harus dijaga saat menyambungkan payment gateway ke website.
- Aplikasi web
Aplikasi offline-first: tetap jalan tanpa internet.
Baca 5 menitSopir, kasir, dan petugas lapangan sering bekerja tanpa sinyal. Cara kerja aplikasi offline-first: catat di perangkat, lalu terkirim tanpa data dobel.
- Toko online
Toko online sendiri atau marketplace?
Baca 4 menitMarketplace memberi pembeli, toko online sendiri memberi kendali. Kapan cukup satu, kapan butuh keduanya, dan cara menjalankannya dengan satu stok.
- ERP
ERP custom atau ERP siap pakai?
Baca 6 menitKapan 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?
- 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.
- 02
Jualan online milik sendiri Jasa pembuatan toko online
Toko online dengan checkout, pembayaran, dan ongkir sendiri, supaya penjualan tidak bergantung penuh pada marketplace.
- 03
Operasional yang rapi Jasa pembuatan ERP custom
Stok, pembelian, produksi, sampai pembukuan dalam satu alur yang bisa ditelusuri, menggantikan spreadsheet yang tercecer.
- 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.
- 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.
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.
- WhatsApp0821-2880-8627(tab baru)
- Emailasepjaenudinsutarji@gmail.com
- LinkedInin/apesjs(tab baru)
- GitHubApesJs(tab baru)
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
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.