Semua Case Studies

SPA — Dari Custom Build ke Multi-tenant SaaS

Share:

Cerita bagaimana satu projek custom untuk Tentera Darat (ADIMS) jadi platform multi-tenant yang sekarang serve 2 klien production: TD dan SAINS NS. Pivot dari custom build ke SaaS adalah keputusan business paling penting kami dalam 2 tahun lepas.

Klien Aktif
2 tenant production: ADIMS (TD) + SPASAINS (SAINS NS)
Timeline
Bulan 1 sampai bulan 18 (10 bulan build + 8 bulan productize)
Skop
Custom Build → Multi-tenant SaaS
Status
Live Production · spa.tech-lead.my + iams.sainswater.com
Bulan 1: Brief Asal

Bulan 1: Brief Asal

Tentera Darat brief kami: bina sistem pengurusan ribuan aset ICT mereka. Komputer, pencetak, network equipment merentasi seluruh formasi TD. Wajib patuh KEW.PA dan KEW.PS, dua pekeliling rasmi Perbendaharaan Malaysia untuk lifecycle aset kerajaan. Sebelum sistem ni, pegawai aset TD spend ratusan jam staff sebulan kompil borang KEW.PA dan KEW.PS manually dari Excel. Bila auditor datang, panic. Bila aset hilang, tiada audit trail. Klasik gov asset management problem.

Pekeliling Perbendaharaan adalah peta yang ramai vendor tak baca dengan teliti. Kalau kau understand KEW.PA dan KEW.PS sedalam-dalamnya, kau understand market enterprise gov MY. Bukan setakat baca pekeliling. Faham implications operational untuk setiap clause.

Insight dari fasa research

Timeline Projek

18 bulan dibahagi kepada 4 fasa major:

1

Bulan 1-6: Build untuk anchor client (ADIMS)

6 bulan custom build untuk TD. Asset registry dengan QR per-aset, lifecycle workflow (acquisition → in-use → maintenance → disposal), auto-generate borang KEW.PA dan KEW.PS, integration dengan modul kewangan untuk tracking belanjawan. Production go-live di . Ratusan ribu aset enterprise sekarang trackable. Pegawai aset stop spend ratusan jam manual. Klien happy. Kebanyakan vendor stop kat sini.

2

Bulan 7-8: Discovery — pekeliling KEW adalah universal

Selepas ADIMS go-live, kami research lebih dalam pasal pekeliling KEW.PA dan KEW.PS. Realisasi yang ubah strategi: format borang Perbendaharaan, lifecycle aset, audit requirements semuanya STANDARD untuk SETIAP agensi gov Malaysia. Bukan TD-specific. ADIMS yang baru built ada 80% functionality yang reusable untuk agensi lain. 20% sahaja yang truly custom per agensi. Kami baru solve satu klien punya problem dan boleh solve seluruh market dengan platform yang sama.

3

Bulan 9-12: Multi-tenant pivot

4 bulan refactoring. Database tenant isolation via row-level security, scoped routing per tenant, isolated file storage di S3. Setiap tenant dapat sandbox sendiri tapi share infrastructure yang sama. Cost per tenant drop drastically. Kami terus support ADIMS sebagai tenant pertama sambil refactor. Zero downtime untuk klien existing. Architecture multi-tenant ready, tapi belum ada tenant kedua yang validate flexibility.

4

Bulan 13-18: Validate dengan SAINS NS

Onboard SAINS NS (Sistem Air Negeri Sembilan) sebagai tenant kedua. Sektor utility, workflow aset slightly berbeza dari defence agency. Pumps, pipes, water treatment equipment instead of ICT assets. Sistem flex untuk handle different asset categories tanpa custom code. Onboarding ambil 2 minggu (vs 6 bulan kalau custom build). SPASAINS go-live di iams.sainswater.com. Multi-tenant architecture proven. Sekarang ready untuk scale ke tenant ketiga, keempat, kesepuluh.

Sebelum vs Selepas

Sebelum SPA

  • Excel files yang tertabur antara pegawai aset
  • Borang KEW.PA dan KEW.PS taip manual setiap bulan
  • Bila aset hilang, tiada audit trail untuk verify
  • Custom build per agensi cost RM 100K hingga RM 300K dan ambil 6-12 bulan

Selepas SPA

  • Single source of truth, real-time, accessible by all asset officers
  • Borang KEW.PA dan KEW.PS auto-generate dari database, sign sahaja
  • Audit trail penuh untuk setiap perubahan aset, bukan setakat last edit
  • Subscription SaaS yang onboarding dalam 2 minggu, no custom build needed
Architecture

Multi-tenant Architecture Yang Kami Bina

Foundation adalah Laravel 12 dengan multi-tenant isolation di database level. Setiap tenant ada tenant_id yang scoped pada setiap query, plus row-level security di MariaDB sebagai second layer protection. Authentication via Laravel Sanctum dengan tenant-aware tokens supaya satu user yang ada akses kepada multiple tenants tetap terikat dengan satu tenant context per session. Queue jobs (Laravel Horizon) tag setiap task dengan tenant_id untuk async processing yang properly isolated. File uploads (asset photos, KEW forms, audit documents) stored di S3 dengan bucket prefix per tenant, supaya storage isolation di filesystem level juga. Vue 3 dengan PrimeVue untuk dashboard. Modul lengkap: Belanjawan, Stor, Aset, Pindah Alih, Senggaraan, Pelupusan dengan KEW.PA dan KEW.PS auto-generation dari template engine yang reverse-engineered dari pekeliling Perbendaharaan rasmi.

Stack Yang Kami Pakai

Laravel 12Vue 3PrimeVueTailwind CSSMariaDBRedisLaravel SanctumLaravel HorizonS3 StorageQR/Barcode GenerationLinuxDocker

Hasil Setelah 18 Bulan

2
Tenant Production Aktif
ADIMS (TD) + SPASAINS
Auto
KEW.PA + KEW.PS Forms
Generate dari database
Ratusan Jam
Staff Time Saved /bulan
Per tenant
2 Minggu
Onboarding Time
Vs 6 bulan custom build
5-10x
Cost Reduction
Subscription vs custom
Impact Untuk Setiap Stakeholder

Impact Untuk Setiap Stakeholder

Produk yang serve ramai stakeholder. Setiap satu cara berbeza.

Pegawai Aset Lapangan

  • Audit prep dari berbulan-bulan jadi berjam-jam
  • QR per-aset untuk scan dari telefon dan dapat info real-time
  • Mobile-first untuk kerja di lapangan, bukan terikat di pejabat
  • Audit trail lengkap untuk setiap perubahan aset

Pengurusan Agensi

  • Cost drop 5-10x berbanding custom build per agensi
  • Onboarding tenant baru dalam 2 minggu
  • KEW.PA dan KEW.PS compliance audit-ready setiap masa
  • Vendor management dengan financial reconciliation built-in

Pengurusan Tech Lead

  • Recurring SaaS revenue, bukan one-off custom build
  • Product-market fit confirmed dengan 2 production tenants
  • Knowledge moat dari deep KEW pekeliling expertise
  • Marginal cost rendah untuk tenant ketiga, keempat, kesepuluh

Industry Malaysia

  • Set new standard untuk asset management gov
  • Reduce burden pegawai aset di seluruh agensi yang adopt
  • Promote pekeliling Perbendaharaan compliance secara systematic
  • Make case untuk vendor MY untuk productize, bukan custom-only
Apa Yang Aku Belajar Dari Pivot Ini

Apa Yang Aku Belajar Dari Pivot Ini

  • Single anchor client adalah validation, bukan limitation. Kau perlu bina untuk satu klien dulu untuk faham real problem dan real solution. Productize selepas pattern muncul, bukan sebelum. Banyak vendor cuba bina platform spekulatif tanpa first paying user. Selalu gagal.
  • Pekeliling Perbendaharaan adalah peta yang ramai vendor tak baca dengan teliti. Setiap pekeliling reveal universal pattern yang sama untuk semua agensi gov. Kalau kau understand pekeliling sedalam-dalamnya, kau understand market enterprise gov MY.
  • Multi-tenant architecture adalah 'earned'. Bukan kau bina day-1 sebagai 'future-proof'. Kau mulakan dengan satu, validate, baru refactor bila pattern dah confirm. Kalau kau cuba bina multi-tenant dari awal tanpa real client, kau spend 50% effort pada wrong abstractions.
  • Pivot dari custom build ke SaaS perlu commitment yang substantial. 4 bulan extra effort kami invest dalam refactor ADIMS jadi multi-tenant. Tapi cost economics berubah drastically. Klien kedua dan seterusnya cost 5-10x lebih murah, dan revenue model jadi recurring instead of one-off.
  • Vendor management dalam asset system adalah underrated. Klien gov perlu screening vendor, track financial reconciliation, audit setiap transaction. Asset system yang abaikan vendor management adalah asset system yang gagal pada audit hari pertama.

Agensi anda masih pakai Excel untuk asset management?

SPA ready untuk onboard. 2 minggu dari kontrak ke production. Demo 30 minit aku tunjuk macam mana sistem handle KEW.PA dan KEW.PS untuk agensi size anda.

Razlan
Zahrin
Mahyudin
Amrie
Ammar
Azmie

Ingin Mengembangkan Perniagaan Anda?

Jom mulakan sesuatu yang hebat!

Dipercayai agensi kerajaan & korporat Malaysia
Hubungi Kami