1:"$Sreact.fragment" 2:T67e,{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Can we modernise without downtime?","acceptedAnswer":{"@type":"Answer","text":"In most cases yes. Running the new system in parallel and migrating module by module means the business keeps operating throughout, with only a short window for the final data switch."}},{"@type":"Question","name":"What if nobody knows how the old system works?","acceptedAnswer":{"@type":"Answer","text":"That is common and it is workable. The code and the database describe the behaviour precisely, and the people using it daily know the exceptions. Together those two sources are enough to reconstruct the rules."}},{"@type":"Question","name":"Should we rebuild or buy a product instead?","acceptedAnswer":{"@type":"Answer","text":"It depends on whether the process is standard. Accounting, payroll and HR are usually better bought. The operational process that makes your business different is usually better built. We assess it honestly rather than defaulting to a rebuild."}},{"@type":"Question","name":"Will we lose historical data?","acceptedAnswer":{"@type":"Answer","text":"No. Historical data is migrated, and where it cannot be cleanly mapped it is preserved in an accessible archive rather than discarded."}},{"@type":"Question","name":"How do we justify the cost when the old system still works?","acceptedAnswer":{"@type":"Answer","text":"The case is usually risk plus opportunity: what a failure would cost, what it costs to have one irreplaceable person, and what you currently cannot do — integrate, automate, work remotely — because the system will not allow it."}}]}10:X 15:X 15:C 0:{"buildId":"Al_yH0nozFsdUPKsBZmuh","data":[{"rsc":["$","$1","c",{"children":[[[["$","script","0",{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://www.silvershark.com.my/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Services\",\"item\":\"https://www.silvershark.com.my/services\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Legacy System Modernization\",\"item\":\"https://www.silvershark.com.my/services/legacy-modernization\"}]}"}}],["$","script","1",{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Service\",\"name\":\"Legacy System Modernization\",\"description\":\"Legacy software modernization in Malaysia. Move desktop applications, Excel workflows and ageing PHP or .NET systems to maintainable web applications.\",\"url\":\"https://www.silvershark.com.my/services/legacy-modernization\",\"serviceType\":\"Legacy System Modernization\",\"provider\":{\"@id\":\"https://www.silvershark.com.my/#organization\"},\"areaServed\":{\"@type\":\"Country\",\"name\":\"Malaysia\"}}"}}],["$","script","2",{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"$2"}}]],["$","section",null,{"className":"relative isolate overflow-hidden border-b border-edge bg-abyss pt-[calc(var(--header-h)+2.5rem)] pb-14 sm:pb-20 lg:pt-[calc(var(--header-h)+4rem)]","children":[["$","div",null,{"aria-hidden":true,"className":"pointer-events-none absolute inset-0 -z-10","children":[["$","div",null,{"className":"page-hero-photo absolute inset-0"}],["$","div",null,{"className":"field-grid field-mask absolute inset-0 opacity-45"}]]}],["$","div",null,{"className":"mx-auto w-full px-5 sm:px-8 lg:px-10 max-w-wide","children":["$L3","$L4"]}]]}],"$L5","$L6","$L7","$L8","$L9","$La","$Lb","$Lc"],["$Ld"],"$Le"]}],"isPartial":"$@f","staleTime":"$10","varyParams":null},{"rsc":"$L11","isPartial":"$@12","staleTime":"$10","varyParams":null},{"rsc":"$L13","isPartial":"$@14","staleTime":"$10","varyParams":"$15"},{"rsc":"$L16","isPartial":"$@17","staleTime":"$10","varyParams":"$15"}],"isUpgradeableISRFallback":false,"a":"$@18","rootVaryParams":null,"needsRuntimeRequest":"$@19"} 1a:I[22016,["/_next/static/chunks/238f5-k2_z8v5.js","/_next/static/chunks/3bh0eus2psr7s.js","/_next/static/chunks/0wvhk94xdhsnj.js"],""] 1b:I[5014,["/_next/static/chunks/238f5-k2_z8v5.js","/_next/static/chunks/3bh0eus2psr7s.js","/_next/static/chunks/0wvhk94xdhsnj.js"],"default"] 1c:I[73195,["/_next/static/chunks/238f5-k2_z8v5.js","/_next/static/chunks/3bh0eus2psr7s.js","/_next/static/chunks/0wvhk94xdhsnj.js"],"Reveal"] 23:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"OutletBoundary"] 24:"$Sreact.suspense" 26:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"ViewportBoundary"] 27:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"MetadataBoundary"] 28:I[27201,["/_next/static/chunks/3fntmmi971322.js"],"IconMark"] 29:I[39756,["/_next/static/chunks/3fntmmi971322.js"],"default"] 2a:I[37457,["/_next/static/chunks/3fntmmi971322.js"],"default"] 3:["$","nav",null,{"aria-label":"Breadcrumb","className":"label-mono mb-8","children":["$","ol",null,{"className":"flex flex-wrap items-center gap-x-2 gap-y-1 text-steel","children":[["$","li","/",{"className":"flex items-center gap-2","children":[null,["$","$L1a",null,{"href":"/","className":"transition-colors hover:text-signal","children":"Home"}]]}],["$","li","/services",{"className":"flex items-center gap-2","children":[["$","$L1b",null,{"iconNode":[["path",{"d":"m9 18 6-6-6-6","key":"mthhwq"}]],"className":"lucide-chevron-right size-3 text-slate","aria-hidden":true}],["$","$L1a",null,{"href":"/services","className":"transition-colors hover:text-signal","children":"Services"}]]}],["$","li","/services/legacy-modernization",{"className":"flex items-center gap-2","children":[["$","$L1b",null,{"iconNode":"$3:props:children:props:children:1:props:children:0:props:iconNode","className":"lucide-chevron-right size-3 text-slate","aria-hidden":true}],["$","span",null,{"aria-current":"page","className":"text-silver","children":"Legacy System Modernization"}]]}]]}]}] 4:["$","div",null,{"className":"grid gap-10 lg:grid-cols-[minmax(0,1.25fr)_minmax(0,0.75fr)] lg:gap-16","children":[["$","div",null,{"children":[["$","p",null,{"className":"label-mono flex items-center gap-2.5 text-signal","children":[["$","span",null,{"aria-hidden":true,"className":"size-1.5 bg-signal"}],"Service 05"]}],["$","h1",null,{"className":"mt-5 max-w-[20ch] text-[2.3rem] leading-[1.04] sm:text-5xl lg:text-[3.5rem]","children":"Modernise the system your business still depends on"}],["$","p",null,{"className":"mt-6 max-w-[62ch] text-lg leading-relaxed text-silver","children":"Somewhere in most established companies there is an application that still runs the business and that nobody wants to open. It works on one machine, it was written by someone who left, and every year it becomes slightly more dangerous. Modernisation is how you get out of that position without stopping the business."}],"$undefined"]}],["$","div",null,{"className":"lg:pt-2","children":["$","dl",null,{"className":"border border-edge bg-hull","children":[["$","div",null,{"className":"border-b border-edge p-5","children":[["$","dt",null,{"className":"label-mono text-friction","children":"The problem"}],["$","dd",null,{"className":"mt-2 text-[0.9375rem] leading-relaxed text-steel","children":"A critical system runs on old technology, one server and no documentation — and replacing it feels riskier than living with it."}]]}],["$","div",null,{"className":"border-b border-edge p-5","children":[["$","dt",null,{"className":"label-mono text-slate","children":"What we do"}],["$","dd",null,{"className":"mt-2 text-[0.9375rem] leading-relaxed text-steel","children":"We document what it actually does, rebuild it in stages on modern architecture, and run old and new together until the switch is safe."}]]}],["$","div",null,{"className":"p-5","children":[["$","dt",null,{"className":"label-mono text-signal","children":"Business value"}],["$","dd",null,{"className":"mt-2 text-[0.9375rem] leading-relaxed text-silver","children":"A system your team can change again, running on infrastructure that is supported, with the operational knowledge written down."}]]}]]}]}]]}] 5:["$","section",null,{"className":"relative isolate bg-hull py-20 sm:py-28 lg:py-32","children":[["$","div",null,{"aria-hidden":true,"className":"pointer-events-none absolute inset-0 overflow-hidden","children":["$","div",null,{"className":"mx-auto h-full max-w-content px-5 sm:px-8 lg:px-10","children":["$","div",null,{"className":"relative h-full","children":[["$","span",null,{"className":"absolute inset-y-0 left-0 w-px bg-linear-to-b from-transparent via-edge to-transparent"}],["$","span",null,{"className":"absolute inset-y-0 right-0 w-px bg-linear-to-b from-transparent via-edge to-transparent"}]]}]}]}],["$","div",null,{"className":"mx-auto w-full px-5 sm:px-8 lg:px-10 max-w-content relative","children":["$","div",null,{"className":"grid gap-10 lg:grid-cols-[minmax(0,0.6fr)_minmax(0,1.4fr)] lg:gap-16","children":[["$","div",null,{"className":"flex flex-col gap-5 lg:sticky lg:top-28 lg:self-start","children":[["$","div",null,{"className":"label-mono flex items-center gap-2.5 text-signal","children":[["$","span",null,{"aria-hidden":true,"className":"size-1.5 shrink-0 bg-signal"}],null,["$","span",null,{"children":"What it is"}]]}],["$","h2",null,{"className":"text-3xl sm:text-4xl max-w-[22ch]","children":"Understanding legacy system modernization"}],null,"$undefined"]}],["$","div",null,{"className":"space-y-5 text-[1.0625rem] leading-relaxed text-steel","children":[["$","p","Legacy modernisation is not a rewrite fo",{"className":"max-w-[68ch]","children":"Legacy modernisation is not a rewrite for its own sake. It is a response to specific, measurable risk: the technology is out of support, only one person understands it, it cannot be accessed remotely or from mobile, it cannot integrate with anything, or every small change takes weeks and breaks something else."}],["$","p","The most common failure in these project",{"className":"max-w-[68ch]","children":"The most common failure in these projects is the big-bang replacement — eighteen months of building, one weekend of cutover, and a business that discovers on Monday which undocumented behaviours mattered. We work incrementally instead: understand, carve off, replace, verify, repeat."}],["$","p","An honest assessment sometimes concludes",{"className":"max-w-[68ch]","children":"An honest assessment sometimes concludes that the right answer is not to replace the system at all. Wrapping it in an API, moving it to supported infrastructure, or automating around it can buy years of stability for a fraction of the cost. We will say so when that is the case."}]]}]]}]}]]}] 6:["$","section",null,{"className":"relative isolate bg-abyss py-16 sm:py-24","children":[null,["$","div",null,{"className":"mx-auto w-full px-5 sm:px-8 lg:px-10 max-w-content relative","children":["$","div",null,{"className":"grid gap-10 lg:grid-cols-[minmax(0,0.6fr)_minmax(0,1.4fr)] lg:gap-16","children":[["$","div",null,{"className":"flex flex-col gap-5","children":[["$","div",null,{"className":"label-mono flex items-center gap-2.5 text-signal","children":[["$","span",null,{"aria-hidden":true,"className":"size-1.5 shrink-0 bg-signal"}],null,["$","span",null,{"children":"Who it is for"}]]}],["$","h2",null,{"className":"text-3xl sm:text-4xl max-w-[22ch]","children":"Signals this applies to you"}],null,"$undefined"]}],["$","ul",null,{"className":"grid gap-px self-start border border-edge bg-edge sm:grid-cols-2","children":[["$","li","Businesses running critical software on unsupported technology",{"className":"flex items-start gap-3 bg-abyss p-5","children":[["$","span",null,{"aria-hidden":true,"className":"mt-2 size-1.5 shrink-0 bg-friction"}],["$","span",null,{"className":"text-[0.9375rem] leading-relaxed text-steel","children":"Businesses running critical software on unsupported technology"}]]}],["$","li","Companies where one person is the only one who understands a key system",{"className":"flex items-start gap-3 bg-abyss p-5","children":[["$","span",null,{"aria-hidden":true,"className":"mt-2 size-1.5 shrink-0 bg-friction"}],["$","span",null,{"className":"text-[0.9375rem] leading-relaxed text-steel","children":"Companies where one person is the only one who understands a key system"}]]}],["$","li","Teams that cannot work remotely because the system is tied to an office PC",{"className":"flex items-start gap-3 bg-abyss p-5","children":[["$","span",null,{"aria-hidden":true,"className":"mt-2 size-1.5 shrink-0 bg-friction"}],["$","span",null,{"className":"text-[0.9375rem] leading-relaxed text-steel","children":"Teams that cannot work remotely because the system is tied to an office PC"}]]}],["$","li","Organisations blocked from integrating or automating by an inflexible legacy application",{"className":"flex items-start gap-3 bg-abyss p-5","children":[["$","span",null,{"aria-hidden":true,"className":"mt-2 size-1.5 shrink-0 bg-friction"}],["$","span",null,{"className":"text-[0.9375rem] leading-relaxed text-steel","children":"Organisations blocked from integrating or automating by an inflexible legacy application"}]]}]]}]]}]}]]}] 7:["$","section",null,{"className":"relative isolate bg-hull py-20 sm:py-28 lg:py-32","children":[["$","div",null,{"aria-hidden":true,"className":"pointer-events-none absolute inset-0 overflow-hidden","children":["$","div",null,{"className":"mx-auto h-full max-w-content px-5 sm:px-8 lg:px-10","children":["$","div",null,{"className":"relative h-full","children":[["$","span",null,{"className":"absolute inset-y-0 left-0 w-px bg-linear-to-b from-transparent via-edge to-transparent"}],["$","span",null,{"className":"absolute inset-y-0 right-0 w-px bg-linear-to-b from-transparent via-edge to-transparent"}]]}]}]}],["$","div",null,{"className":"mx-auto w-full px-5 sm:px-8 lg:px-10 max-w-content relative","children":[["$","div",null,{"className":"flex flex-col gap-5 max-w-3xl","children":[["$","div",null,{"className":"label-mono flex items-center gap-2.5 text-signal","children":[["$","span",null,{"aria-hidden":true,"className":"size-1.5 shrink-0 bg-signal"}],null,["$","span",null,{"children":"Capability"}]]}],["$","h2",null,{"className":"text-3xl sm:text-4xl max-w-[22ch]","children":"What Silver Shark can build"}],["$","p",null,{"className":"max-w-[62ch] text-lg text-steel","children":"Concrete deliverables rather than categories. Most projects combine several of these."}],"$undefined"]}],["$","div",null,{"className":"mt-12 grid gap-px border border-edge bg-edge sm:grid-cols-2","children":[["$","$L1c","Desktop application to web platform",{"delay":0,"className":"bg-hull p-6 sm:p-7","children":[["$","div",null,{"className":"flex items-baseline gap-3","children":[["$","span",null,{"className":"label-mono text-slate","children":"01"}],["$","h3",null,{"className":"text-lg","children":"Desktop application to web platform"}]]}],["$","p",null,{"className":"mt-2.5 text-[0.9375rem] leading-relaxed text-steel","children":"Systems tied to one PC or a local network rebuilt as web applications that work from any location, on any device, with proper user accounts."}]]}],["$","$L1c","Excel workflow to internal system",{"delay":35,"className":"bg-hull p-6 sm:p-7","children":[["$","div",null,{"className":"flex items-baseline gap-3","children":[["$","span",null,{"className":"label-mono text-slate","children":"02"}],["$","h3",null,{"className":"text-lg","children":"Excel workflow to internal system"}]]}],["$","p",null,{"className":"mt-2.5 text-[0.9375rem] leading-relaxed text-steel","children":"The critical shared workbook — with its formulas, macros and version conflicts — replaced by a multi-user system with validation and history."}]]}],["$","$L1c","Ageing PHP or .NET applications",{"delay":70,"className":"bg-hull p-6 sm:p-7","children":[["$","div",null,{"className":"flex items-baseline gap-3","children":[["$","span",null,{"className":"label-mono text-slate","children":"03"}],["$","h3",null,{"className":"text-lg","children":"Ageing PHP or .NET applications"}]]}],["$","p",null,{"className":"mt-2.5 text-[0.9375rem] leading-relaxed text-steel","children":"Older codebases moved onto supported frameworks and modern architecture, keeping the behaviour the business relies on."}]]}],["$","$L1c","Database process to API",{"delay":105,"className":"bg-hull p-6 sm:p-7","children":[["$","div",null,{"className":"flex items-baseline gap-3","children":[["$","span",null,{"className":"label-mono text-slate","children":"04"}],["$","h3",null,{"className":"text-lg","children":"Database process to API"}]]}],["$","p",null,{"className":"mt-2.5 text-[0.9375rem] leading-relaxed text-steel","children":"Direct database access by multiple applications replaced with a controlled API, so business rules live in one place."}]]}],["$","$L1c","Strangler-pattern replacement",{"delay":140,"className":"bg-hull p-6 sm:p-7","children":[["$","div",null,{"className":"flex items-baseline gap-3","children":[["$","span",null,{"className":"label-mono text-slate","children":"05"}],["$","h3",null,{"className":"text-lg","children":"Strangler-pattern replacement"}]]}],["$","p",null,{"className":"mt-2.5 text-[0.9375rem] leading-relaxed text-steel","children":"New functionality served by the new system while the old one continues, module by module, until the legacy system has nothing left to do."}]]}],"$L1d","$L1e","$L1f"]}],null]}]]}] 8:["$","section",null,{"className":"relative isolate bg-abyss py-20 sm:py-28 lg:py-32","children":[null,["$","div",null,{"className":"mx-auto w-full px-5 sm:px-8 lg:px-10 max-w-content relative","children":["$","div",null,{"className":"grid gap-10 lg:grid-cols-[minmax(0,0.6fr)_minmax(0,1.4fr)] lg:gap-16","children":[["$","div",null,{"className":"flex flex-col gap-5 lg:sticky lg:top-28 lg:self-start","children":[["$","div",null,{"className":"label-mono flex items-center gap-2.5 text-signal","children":[["$","span",null,{"aria-hidden":true,"className":"size-1.5 shrink-0 bg-signal"}],null,["$","span",null,{"children":"Our approach"}]]}],["$","h2",null,{"className":"text-3xl sm:text-4xl max-w-[22ch]","children":"How the work runs"}],["$","p",null,{"className":"max-w-[62ch] text-lg text-steel","children":"Specific to this service — the general delivery sequence is on every project."}],"$undefined"]}],["$","ol",null,{"className":"border-t border-edge","children":[["$","$L1c","Assess before proposing",{"as":"li","delay":0,"className":"border-b border-edge py-6","children":[["$","div",null,{"className":"flex items-baseline gap-4","children":[["$","span",null,{"className":"label-mono text-signal","children":"01"}],["$","h3",null,{"className":"text-lg","children":"Assess before proposing"}]]}],["$","p",null,{"className":"mt-2.5 max-w-[66ch] pl-9 text-[0.9375rem] leading-relaxed text-steel","children":"We review the code, the database and the actual usage, and produce a written assessment of risk, effort and options — including the option of not rebuilding."}]]}],["$","$L1c","Recover the rules",{"as":"li","delay":40,"className":"border-b border-edge py-6","children":[["$","div",null,{"className":"flex items-baseline gap-4","children":[["$","span",null,{"className":"label-mono text-signal","children":"02"}],["$","h3",null,{"className":"text-lg","children":"Recover the rules"}]]}],["$","p",null,{"className":"mt-2.5 max-w-[66ch] pl-9 text-[0.9375rem] leading-relaxed text-steel","children":"Undocumented behaviour is the real asset in a legacy system. We extract it from the code and from the people who use it daily, and document it as part of the work."}]]}],["$","$L1c","Replace in slices",{"as":"li","delay":80,"className":"border-b border-edge py-6","children":[["$","div",null,{"className":"flex items-baseline gap-4","children":[["$","span",null,{"className":"label-mono text-signal","children":"03"}],["$","h3",null,{"className":"text-lg","children":"Replace in slices"}]]}],["$","p",null,{"className":"mt-2.5 max-w-[66ch] pl-9 text-[0.9375rem] leading-relaxed text-steel","children":"A module at a time, with both systems live and integrated. Each slice is small enough to reverse if something is wrong."}]]}],["$","$L1c","Prove the data before cutover",{"as":"li","delay":120,"className":"border-b border-edge py-6","children":[["$","div",null,{"className":"flex items-baseline gap-4","children":[["$","span",null,{"className":"label-mono text-signal","children":"04"}],["$","h3",null,{"className":"text-lg","children":"Prove the data before cutover"}]]}],["$","p",null,{"className":"mt-2.5 max-w-[66ch] pl-9 text-[0.9375rem] leading-relaxed text-steel","children":"Migration is rehearsed on a copy, and reconciled record by record against the source, before anyone is asked to trust it."}]]}]]}]]}]}]]}] 9:["$","section",null,{"className":"relative isolate bg-hull py-16 sm:py-24","children":[["$","div",null,{"aria-hidden":true,"className":"pointer-events-none absolute inset-0 overflow-hidden","children":["$","div",null,{"className":"mx-auto h-full max-w-content px-5 sm:px-8 lg:px-10","children":["$","div",null,{"className":"relative h-full","children":[["$","span",null,{"className":"absolute inset-y-0 left-0 w-px bg-linear-to-b from-transparent via-edge to-transparent"}],["$","span",null,{"className":"absolute inset-y-0 right-0 w-px bg-linear-to-b from-transparent via-edge to-transparent"}]]}]}]}],["$","div",null,{"className":"mx-auto w-full px-5 sm:px-8 lg:px-10 max-w-content relative","children":[["$","div",null,{"className":"flex flex-col gap-6 sm:flex-row sm:items-end sm:justify-between","children":[["$","div",null,{"className":"flex flex-col gap-5 max-w-xl","children":[["$","div",null,{"className":"label-mono flex items-center gap-2.5 text-signal","children":[["$","span",null,{"aria-hidden":true,"className":"size-1.5 shrink-0 bg-signal"}],null,["$","span",null,{"children":"Delivery"}]]}],["$","h2",null,{"className":"text-3xl sm:text-4xl max-w-[22ch]","children":"The sequence every project follows"}],null,"$undefined"]}],["$","$L1a",null,{"href":"/about#process","className":"label-mono inline-flex items-center gap-2 text-signal transition-colors hover:text-signal-bright","children":["How we work in detail",["$","$L1b",null,{"iconNode":[["path",{"d":"M7 7h10v10","key":"1tivn9"}],["path",{"d":"M7 17 17 7","key":"1vkiza"}]],"className":"lucide-arrow-up-right size-3.5","aria-hidden":true}]]}]]}],["$","ol",null,{"className":"mt-8 grid gap-px border border-edge bg-edge sm:grid-cols-2 lg:grid-cols-4","children":[["$","li","01",{"className":"bg-hull p-5","children":[["$","span",null,{"className":"label-mono text-slate","children":"01"}],["$","h3",null,{"className":"mt-2 text-base font-semibold text-chrome","children":"Discover"}],["$","p",null,{"className":"mt-1.5 text-sm leading-relaxed text-steel","children":"Understand the operation before discussing technology."}]]}],["$","li","02",{"className":"bg-hull p-5","children":[["$","span",null,{"className":"label-mono text-slate","children":"02"}],["$","h3",null,{"className":"mt-2 text-base font-semibold text-chrome","children":"Analyse"}],["$","p",null,{"className":"mt-1.5 text-sm leading-relaxed text-steel","children":"Decide what should be removed, automated or built."}]]}],["$","li","03",{"className":"bg-hull p-5","children":[["$","span",null,{"className":"label-mono text-slate","children":"03"}],["$","h3",null,{"className":"mt-2 text-base font-semibold text-chrome","children":"Design"}],["$","p",null,{"className":"mt-1.5 text-sm leading-relaxed text-steel","children":"Design the data model and the screens people will live in."}]]}],["$","li","04",{"className":"bg-hull p-5","children":[["$","span",null,{"className":"label-mono text-slate","children":"04"}],["$","h3",null,{"className":"mt-2 text-base font-semibold text-chrome","children":"Build"}],["$","p",null,{"className":"mt-1.5 text-sm leading-relaxed text-steel","children":"Build the core in usable stages."}]]}],["$","li","05",{"className":"bg-hull p-5","children":[["$","span",null,{"className":"label-mono text-slate","children":"05"}],["$","h3",null,{"className":"mt-2 text-base font-semibold text-chrome","children":"Integrate"}],["$","p",null,{"className":"mt-1.5 text-sm leading-relaxed text-steel","children":"Connect the system to everything else that holds the truth."}]]}],["$","li","06",{"className":"bg-hull p-5","children":[["$","span",null,{"className":"label-mono text-slate","children":"06"}],["$","h3",null,{"className":"mt-2 text-base font-semibold text-chrome","children":"Test"}],["$","p",null,{"className":"mt-1.5 text-sm leading-relaxed text-steel","children":"Test with your data and your awkward cases."}]]}],["$","li","07",{"className":"bg-hull p-5","children":[["$","span",null,{"className":"label-mono text-slate","children":"07"}],["$","h3",null,{"className":"mt-2 text-base font-semibold text-chrome","children":"Launch"}],["$","p",null,{"className":"mt-1.5 text-sm leading-relaxed text-steel","children":"Go live in a controlled, reversible way."}]]}],"$L20"]}]]}]]}] a:["$","section",null,{"id":"faq","className":"relative isolate bg-abyss py-20 sm:py-28 lg:py-32","children":[null,["$","div",null,{"className":"mx-auto w-full px-5 sm:px-8 lg:px-10 max-w-content relative","children":["$","div",null,{"className":"grid gap-10 lg:grid-cols-[minmax(0,0.7fr)_minmax(0,1.3fr)] lg:gap-16","children":[["$","div",null,{"className":"flex flex-col gap-5 lg:sticky lg:top-28 lg:self-start","children":[["$","div",null,{"className":"label-mono flex items-center gap-2.5 text-signal","children":[["$","span",null,{"aria-hidden":true,"className":"size-1.5 shrink-0 bg-signal"}],null,["$","span",null,{"children":"Questions"}]]}],["$","h2",null,{"id":"faq-heading","className":"text-3xl sm:text-4xl max-w-[22ch]","children":"Legacy System Modernization — common questions"}],null,"$undefined"]}],["$","div",null,{"className":"border-t border-edge","aria-labelledby":"faq-heading","children":[["$","details","Can we modernise without downtime?",{"className":"group border-b border-edge","children":[["$","summary",null,{"className":"flex cursor-pointer list-none items-start justify-between gap-6 py-5 text-left text-base font-medium text-chrome transition-colors hover:text-signal sm:text-lg [&::-webkit-details-marker]:hidden","children":[["$","span",null,{"className":"font-display tracking-tight","children":"Can we modernise without downtime?"}],["$","$L1b",null,{"iconNode":[["path",{"d":"M5 12h14","key":"1ays0h"}],["path",{"d":"M12 5v14","key":"s699le"}]],"className":"lucide-plus mt-1 size-4 shrink-0 text-steel transition-transform duration-300 ease-out-quint group-open:rotate-45 group-open:text-signal","aria-hidden":true}]]}],["$","p",null,{"className":"max-w-[70ch] pb-6 text-steel","children":"In most cases yes. Running the new system in parallel and migrating module by module means the business keeps operating throughout, with only a short window for the final data switch."}]]}],["$","details","What if nobody knows how the old system works?",{"className":"group border-b border-edge","children":[["$","summary",null,{"className":"flex cursor-pointer list-none items-start justify-between gap-6 py-5 text-left text-base font-medium text-chrome transition-colors hover:text-signal sm:text-lg [&::-webkit-details-marker]:hidden","children":[["$","span",null,{"className":"font-display tracking-tight","children":"What if nobody knows how the old system works?"}],["$","$L1b",null,{"iconNode":"$a:props:children:1:props:children:props:children:1:props:children:0:props:children:0:props:children:1:props:iconNode","className":"lucide-plus mt-1 size-4 shrink-0 text-steel transition-transform duration-300 ease-out-quint group-open:rotate-45 group-open:text-signal","aria-hidden":true}]]}],["$","p",null,{"className":"max-w-[70ch] pb-6 text-steel","children":"That is common and it is workable. The code and the database describe the behaviour precisely, and the people using it daily know the exceptions. Together those two sources are enough to reconstruct the rules."}]]}],["$","details","Should we rebuild or buy a product instead?",{"className":"group border-b border-edge","children":[["$","summary",null,{"className":"flex cursor-pointer list-none items-start justify-between gap-6 py-5 text-left text-base font-medium text-chrome transition-colors hover:text-signal sm:text-lg [&::-webkit-details-marker]:hidden","children":[["$","span",null,{"className":"font-display tracking-tight","children":"Should we rebuild or buy a product instead?"}],["$","$L1b",null,{"iconNode":"$a:props:children:1:props:children:props:children:1:props:children:0:props:children:0:props:children:1:props:iconNode","className":"lucide-plus mt-1 size-4 shrink-0 text-steel transition-transform duration-300 ease-out-quint group-open:rotate-45 group-open:text-signal","aria-hidden":true}]]}],["$","p",null,{"className":"max-w-[70ch] pb-6 text-steel","children":"It depends on whether the process is standard. Accounting, payroll and HR are usually better bought. The operational process that makes your business different is usually better built. We assess it honestly rather than defaulting to a rebuild."}]]}],"$L21","$L22"]}]]}]}]]}] b:["$","section",null,{"className":"relative isolate bg-hull py-16 sm:py-24","children":[["$","div",null,{"aria-hidden":true,"className":"pointer-events-none absolute inset-0 overflow-hidden","children":["$","div",null,{"className":"mx-auto h-full max-w-content px-5 sm:px-8 lg:px-10","children":["$","div",null,{"className":"relative h-full","children":[["$","span",null,{"className":"absolute inset-y-0 left-0 w-px bg-linear-to-b from-transparent via-edge to-transparent"}],["$","span",null,{"className":"absolute inset-y-0 right-0 w-px bg-linear-to-b from-transparent via-edge to-transparent"}]]}]}]}],["$","div",null,{"className":"mx-auto w-full px-5 sm:px-8 lg:px-10 max-w-content relative","children":[["$","div",null,{"className":"flex flex-col gap-5","children":[["$","div",null,{"className":"label-mono flex items-center gap-2.5 text-signal","children":[["$","span",null,{"aria-hidden":true,"className":"size-1.5 shrink-0 bg-signal"}],null,["$","span",null,{"children":"Related"}]]}],["$","h2",null,{"className":"text-3xl sm:text-4xl max-w-[22ch]","children":"Services that usually come with this"}],null,"$undefined"]}],["$","div",null,{"className":"mt-8 grid gap-px border border-edge bg-edge sm:grid-cols-3","children":[["$","$L1a","custom-software-development",{"href":"/services/custom-software-development","className":"group bg-hull p-6 transition-colors duration-300 hover:bg-panel","children":[["$","div",null,{"className":"flex items-center justify-between","children":[["$","$L1b",null,{"iconNode":[["path",{"d":"M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2","key":"1ah6g2"}],["rect",{"x":"14","y":"2","width":"8","height":"8","rx":"1","key":"88lufb"}]],"className":"lucide-blocks size-5 text-steel","aria-hidden":true,"strokeWidth":1.5}],["$","span",null,{"className":"label-mono text-slate","children":"01"}]]}],["$","h3",null,{"className":"mt-5 text-lg text-chrome","children":"Custom Software Development"}],["$","p",null,{"className":"mt-2 text-[0.9375rem] leading-relaxed text-steel","children":"Systems built around how your business actually works."}]]}],["$","$L1a","system-integration",{"href":"/services/system-integration","className":"group bg-hull p-6 transition-colors duration-300 hover:bg-panel","children":[["$","div",null,{"className":"flex items-center justify-between","children":[["$","$L1b",null,{"iconNode":[["path",{"d":"m10.586 5.414-5.172 5.172","key":"4mc350"}],["path",{"d":"m18.586 13.414-5.172 5.172","key":"8c96vv"}],["path",{"d":"M6 12h12","key":"8npq4p"}],["circle",{"cx":"12","cy":"20","r":"2","key":"144qzu"}],["circle",{"cx":"12","cy":"4","r":"2","key":"muu5ef"}],["circle",{"cx":"20","cy":"12","r":"2","key":"1xzzfp"}],["circle",{"cx":"4","cy":"12","r":"2","key":"1hvhnz"}]],"className":"lucide-waypoints size-5 text-steel","aria-hidden":true,"strokeWidth":1.5}],["$","span",null,{"className":"label-mono text-slate","children":"04"}]]}],["$","h3",null,{"className":"mt-5 text-lg text-chrome","children":"System Integration"}],["$","p",null,{"className":"mt-2 text-[0.9375rem] leading-relaxed text-steel","children":"Make your existing systems talk to each other."}]]}],["$","$L1a","software-maintenance",{"href":"/services/software-maintenance","className":"group bg-hull p-6 transition-colors duration-300 hover:bg-panel","children":[["$","div",null,{"className":"flex items-center justify-between","children":[["$","$L1b",null,{"iconNode":[["path",{"d":"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z","key":"1ngwbx"}]],"className":"lucide-wrench size-5 text-steel","aria-hidden":true,"strokeWidth":1.5}],["$","span",null,{"className":"label-mono text-slate","children":"07"}]]}],["$","h3",null,{"className":"mt-5 text-lg text-chrome","children":"Software Maintenance & Support"}],["$","p",null,{"className":"mt-2 text-[0.9375rem] leading-relaxed text-steel","children":"Keep working systems working, and keep improving them."}]]}]]}]]}]]}] c:["$","section",null,{"className":"relative isolate overflow-hidden border-t border-edge bg-hull","children":[["$","div",null,{"aria-hidden":true,"className":"pointer-events-none absolute inset-0 -z-10","children":[["$","div",null,{"className":"cta-photo absolute inset-0"}],["$","div",null,{"className":"field-grid field-mask absolute inset-0 opacity-50"}],["$","div",null,{"className":"absolute left-1/2 top-0 h-px w-56 -translate-x-1/2 bg-linear-to-r from-transparent via-signal to-transparent opacity-60"}]]}],["$","div",null,{"className":"mx-auto w-full px-5 sm:px-8 lg:px-10 max-w-content py-20 sm:py-28","children":["$","div",null,{"className":"max-w-3xl","children":[["$","p",null,{"className":"label-mono flex items-center gap-2.5 text-signal","children":[["$","span",null,{"aria-hidden":true,"className":"size-1.5 bg-signal"}],"Next step"]}],["$","h2",null,{"className":"mt-6 text-[2.1rem] leading-[1.06] sm:text-5xl","children":"Tell us where legacy system modernization would help."}],["$","p",null,{"className":"mt-6 max-w-[58ch] text-lg leading-relaxed text-steel","children":"Describe the process as it runs today — including the parts that are held together by people. We will tell you what is worth building, what is worth automating, and what is worth leaving alone."}],["$","div",null,{"className":"mt-9 flex flex-col gap-3 sm:flex-row sm:items-center","children":[["$","$L1a",null,{"href":"/contact","className":"group/btn relative inline-flex items-center justify-center gap-2.5 rounded-xs font-medium transition-[background-color,border-color,color,transform] duration-200 ease-signal disabled:pointer-events-none disabled:opacity-45 bg-signal text-signal-ink hover:bg-signal-bright active:translate-y-px shadow-[0_0_28px_-10px_var(--color-signal)] h-13 px-7 text-base","children":[["$","span",null,{"children":"Discuss Your Project"}],["$","$L1b",null,{"iconNode":[["path",{"d":"M5 12h14","key":"1ays0h"}],["path",{"d":"m12 5 7 7-7 7","key":"xquz4c"}]],"className":"lucide-arrow-right size-4 transition-transform duration-200 ease-signal group-hover/btn:translate-x-1","aria-hidden":true}]]}],["$","$L1a",null,{"href":"/use-cases","className":"group/btn relative inline-flex items-center justify-center gap-2.5 rounded-xs font-medium transition-[background-color,border-color,color,transform] duration-200 ease-signal disabled:pointer-events-none disabled:opacity-45 border border-edge-strong bg-panel/60 text-chrome hover:border-edge-bright hover:bg-panel-hi active:translate-y-px h-13 px-7 text-base","children":[["$","span",null,{"children":"See example solutions"}],null]}]]}]]}]}]]}] d:["$","script","script-0",{"src":"/_next/static/chunks/0wvhk94xdhsnj.js","async":true}] e:["$","$L23",null,{"children":["$","$24",null,{"name":"Next.MetadataOutlet","children":"$@25"}]}] 11:["$","$1","h",{"children":[null,["$","$L26",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#04070a"}],["$","meta","3",{"name":"color-scheme","content":"dark"}]]}],["$","div",null,{"hidden":true,"children":["$","$L27",null,{"children":["$","$24",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Legacy System Modernization Malaysia | Silver Shark"}],["$","meta","1",{"name":"description","content":"Legacy software modernization in Malaysia. Move desktop applications, Excel workflows and ageing PHP or .NET systems to maintainable web applications."}],["$","meta","2",{"name":"application-name","content":"Silver Shark"}],["$","meta","3",{"name":"author","content":"Silver Shark Sdn Bhd"}],["$","meta","4",{"name":"creator","content":"Silver Shark Sdn Bhd"}],["$","meta","5",{"name":"publisher","content":"Silver Shark Sdn Bhd"}],["$","link","6",{"rel":"canonical","href":"https://www.silvershark.com.my/services/legacy-modernization"}],["$","meta","7",{"name":"format-detection","content":"telephone=no, address=no, email=no"}],["$","meta","8",{"property":"og:title","content":"Legacy System Modernization Malaysia"}],["$","meta","9",{"property":"og:description","content":"Legacy software modernization in Malaysia. Move desktop applications, Excel workflows and ageing PHP or .NET systems to maintainable web applications."}],["$","meta","10",{"property":"og:url","content":"https://www.silvershark.com.my/services/legacy-modernization"}],["$","meta","11",{"property":"og:site_name","content":"Silver Shark Sdn Bhd"}],["$","meta","12",{"property":"og:locale","content":"en_MY"}],["$","meta","13",{"property":"og:image","content":"https://www.silvershark.com.my/opengraph-image"}],["$","meta","14",{"property":"og:image:width","content":"1200"}],["$","meta","15",{"property":"og:image:height","content":"630"}],["$","meta","16",{"property":"og:image:alt","content":"Silver Shark Sdn Bhd — custom software, automation and system integration in Malaysia"}],["$","meta","17",{"property":"og:type","content":"website"}],["$","meta","18",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","19",{"name":"twitter:title","content":"Legacy System Modernization Malaysia"}],["$","meta","20",{"name":"twitter:description","content":"Legacy software modernization in Malaysia. Move desktop applications, Excel workflows and ageing PHP or .NET systems to maintainable web applications."}],["$","meta","21",{"name":"twitter:image","content":"https://www.silvershark.com.my/opengraph-image"}],["$","link","22",{"rel":"icon","href":"/icon.png?icon.3lan0mcba9b_j.png","sizes":"300x300","type":"image/png"}],["$","$L28","23",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] 13:["$","$1","c",{"children":[null,["$","$L29",null,{"parallelRouterKey":"children","template":["$","$L2a",null,{}]}]]}] 16:["$","$1","c",{"children":[null,["$","$L29",null,{"parallelRouterKey":"children","template":["$","$L2a",null,{}]}]]}] 19:true 1d:["$","$L1c","Data migration & cleaning",{"delay":175,"className":"bg-hull p-6 sm:p-7","children":[["$","div",null,{"className":"flex items-baseline gap-3","children":[["$","span",null,{"className":"label-mono text-slate","children":"06"}],["$","h3",null,{"className":"text-lg","children":"Data migration & cleaning"}]]}],["$","p",null,{"className":"mt-2.5 text-[0.9375rem] leading-relaxed text-steel","children":"Years of accumulated records mapped, de-duplicated, validated and moved, with a dry run and a reconciliation report before cutover."}]]}] 1e:["$","$L1c","Infrastructure modernisation",{"delay":210,"className":"bg-hull p-6 sm:p-7","children":[["$","div",null,{"className":"flex items-baseline gap-3","children":[["$","span",null,{"className":"label-mono text-slate","children":"07"}],["$","h3",null,{"className":"text-lg","children":"Infrastructure modernisation"}]]}],["$","p",null,{"className":"mt-2.5 text-[0.9375rem] leading-relaxed text-steel","children":"Unsupported operating systems and single-server deployments moved to maintained environments with backups that are actually tested."}]]}] 1f:["$","$L1c","Documentation recovery",{"delay":245,"className":"bg-hull p-6 sm:p-7","children":[["$","div",null,{"className":"flex items-baseline gap-3","children":[["$","span",null,{"className":"label-mono text-slate","children":"08"}],["$","h3",null,{"className":"text-lg","children":"Documentation recovery"}]]}],["$","p",null,{"className":"mt-2.5 text-[0.9375rem] leading-relaxed text-steel","children":"Where knowledge was never written down, we reconstruct the data model, business rules and operational procedures from the system itself."}]]}] 20:["$","li","08",{"className":"bg-hull p-5","children":[["$","span",null,{"className":"label-mono text-slate","children":"08"}],["$","h3",null,{"className":"mt-2 text-base font-semibold text-chrome","children":"Support"}],["$","p",null,{"className":"mt-1.5 text-sm leading-relaxed text-steel","children":"Keep it working and keep it improving."}]]}] 21:["$","details","Will we lose historical data?",{"className":"group border-b border-edge","children":[["$","summary",null,{"className":"flex cursor-pointer list-none items-start justify-between gap-6 py-5 text-left text-base font-medium text-chrome transition-colors hover:text-signal sm:text-lg [&::-webkit-details-marker]:hidden","children":[["$","span",null,{"className":"font-display tracking-tight","children":"Will we lose historical data?"}],["$","$L1b",null,{"iconNode":"$a:props:children:1:props:children:props:children:1:props:children:0:props:children:0:props:children:1:props:iconNode","className":"lucide-plus mt-1 size-4 shrink-0 text-steel transition-transform duration-300 ease-out-quint group-open:rotate-45 group-open:text-signal","aria-hidden":true}]]}],["$","p",null,{"className":"max-w-[70ch] pb-6 text-steel","children":"No. Historical data is migrated, and where it cannot be cleanly mapped it is preserved in an accessible archive rather than discarded."}]]}] 22:["$","details","How do we justify the cost when the old system still works?",{"className":"group border-b border-edge","children":[["$","summary",null,{"className":"flex cursor-pointer list-none items-start justify-between gap-6 py-5 text-left text-base font-medium text-chrome transition-colors hover:text-signal sm:text-lg [&::-webkit-details-marker]:hidden","children":[["$","span",null,{"className":"font-display tracking-tight","children":"How do we justify the cost when the old system still works?"}],["$","$L1b",null,{"iconNode":"$a:props:children:1:props:children:props:children:1:props:children:0:props:children:0:props:children:1:props:iconNode","className":"lucide-plus mt-1 size-4 shrink-0 text-steel transition-transform duration-300 ease-out-quint group-open:rotate-45 group-open:text-signal","aria-hidden":true}]]}],["$","p",null,{"className":"max-w-[70ch] pb-6 text-steel","children":"The case is usually risk plus opportunity: what a failure would cost, what it costs to have one irreplaceable person, and what you currently cannot do — integrate, automate, work remotely — because the system will not allow it."}]]}] 25:null 10:300 10:C 18:0 12:"$undefined" 14:"$undefined" 17:"$undefined" f:"$undefined"