Samsung LiveSpace Migration
LaravelReactExpressTailwind CSSshadcn/uiSamsung

Samsung LiveSpace Migration

Fullstack build at Cheil for Samsung Indonesia: a working replica of the Samsung Experience Store LiveSpace site, standing in while the original underwent maintenance. Laravel served as the primary backend with an Express.js service alongside it, and a React frontend on Tailwind, shadcn/ui, and Zustand reproduced the original experience closely enough that visitors wouldn't notice the switch.

Tech used

LaravelReactTypeScriptZustandTailwind CSSshadcn/uiExpress.jsMySQL

Situation

Samsung Indonesia needed to take their Samsung Experience Store LiveSpace site down for maintenance. Taking a live consumer-facing Samsung property offline isn't an option — traffic keeps arriving from campaigns, search, and store signage regardless of what engineering is doing behind it. They needed a working stand-in at a separate address, matching the original closely enough that visitors wouldn't perceive a downgrade, and ready before the maintenance window opened.

Task

Build a full replica of the LiveSpace site as fullstack developer at Cheil: reproduce the frontend experience faithfully, stand up the backend to serve its content and handle its interactions, and deliver against a maintenance window that was set by someone else and would not move.

Action

Built the frontend in React with TypeScript, using Tailwind CSS and shadcn/ui to reproduce the original's layout and interaction patterns quickly, and Zustand for client state. Reproduced the site section by section against the live original — layout, responsive behavior, transitions — treating visual and behavioral fidelity as the acceptance criterion rather than approximate resemblance. Built the primary backend in Laravel for content delivery and data handling, with a second Express.js API service alongside it for the endpoints better suited to a Node runtime, keeping the two behind a consistent contract so the frontend consumed one coherent API surface. Worked directly against Samsung brand requirements throughout, since a replica of a Samsung property is still a Samsung property and carries the same brand standards.

Result

Shipped before the maintenance window opened, giving Samsung Indonesia a live destination for LiveSpace traffic throughout the maintenance period rather than a downtime page. Visitors got the full experience while the original was offline. The mirror was retired once maintenance completed — the link is now dead by design.

Overview

At Cheil, Samsung Indonesia asked us to replicate one of their sites. The Samsung Experience Store LiveSpace page needed maintenance, and they couldn't simply take it down.

I built the replica as fullstack developer — frontend, backend, and the deadline that came with it.

Why a Replica Instead of a Downtime Page

Traffic to a live Samsung property doesn't pause because engineering scheduled work. Campaigns keep running, search keeps sending visitors, in-store signage keeps pointing at the URL. Every one of those arrivals during a maintenance window either gets the experience or gets a dead end.

A downtime page converts nothing. A working mirror converts as well as the original. That's the entire business case, and it set the standard for the build: close enough that a visitor doesn't notice they're somewhere else.

The Fidelity Standard

Replication has a harsher acceptance criterion than original work. On a new build, "looks good" is a defensible outcome. On a mirror, the reference is sitting right there — anything that differs is a defect, not a design choice.

I worked through the site section by section against the live original: layout, spacing, responsive breakpoints, transitions, interaction behavior. Tailwind CSS and shadcn/ui carried most of the speed here — accessible primitives to build on, utilities to match the original's specifics precisely.

Zustand handled client state, kept deliberately small. A campaign mirror doesn't need architecture it will outlive.

Two Backends

The backend ran on Laravel as the primary service — content delivery, data handling, the core application layer. Alongside it, an Express.js service handled endpoints better suited to a Node runtime.

Two runtimes is a decision that needs justifying. It was justified by fit rather than preference: each service took the work it handled naturally, and both sat behind a consistent contract so the React frontend saw a single coherent API surface and never had to care which service answered a given call.

Brand Constraints

A replica of a Samsung property is still a Samsung property. Brand guidelines applied in full — this wasn't a scratch build where visual decisions were mine to make. Working within those standards was part of the job, as it is on any Cheil engagement for Samsung.

The Deadline

The maintenance window was set by someone else and did not move. Everything about the stack selection — Laravel's conventions, shadcn/ui's ready primitives, Zustand's minimal setup — traced back to the same constraint: assemble fast, without shipping something fragile.

Delivered before the window opened.

Status

Retired. Maintenance finished, the original came back, and the mirror came down. The link is dead by design — that was always the plan.