Screen recording There is no brand name yet, so the screens show ○○정과 (○○ Jeonggwa).

Online shop demo, brand name not yet decided

Hangwa brand shop demo

An online shop that tells the brand's story in six scroll scenes and carries on into choosing products and the cart.

Project notes

Real screens

Hangwa shop demo, first scene: a bowl of jeonggwa in hanji light, "정성을 담아, 달콤함을 빚다." (desktop)
Hangwa shop demo, product page: pecan jeonggwa photos, size options, quantity and a sample price (desktop)
Hangwa shop demo, first scene (phone)
Captures of the real pages and programs, set in device frames.

The product photos on screen are staged images made with an AI image tool.

Introduction

An online shop demo for a jeonggwa brand (nuts candied in syrup). There is no brand name yet, so it reads ○○정과. The home page is six scroll scenes, followed by products, gift sets and a cart.

Purpose

Show, before the brand is settled, a jeonggwa shop that holds both the brand story and a real buying flow.

Main features

  • Six home scenes, in order: the opening on hanji paper, which moves in on a bowl of jeonggwa (nuts candied in syrup); light and gloss; a closer look with two products side by side; the story of how they are made; gift wrapping; and the shop, with the product list. Scroll up and they play back in reverse.
  • Pages for all products, product details, gift sets, the brand story, the cart, FAQ and contact.
  • Choosing an option and quantity updates the total at once, and the item goes into the cart. Sold-out items are marked.
  • On phones a buy bar appears at the bottom only in the shopping section.
  • Per-page metadata, Open Graph, product structured data, sitemap.xml and robots.txt are included.
  • On slow phones it scales back the effects, and with reduced motion turned on, the pinned scenes and scroll effects switch off.

Technology

Next.js 16 (App Router)
The whole site
TypeScript
Code
Tailwind CSS 4
Styling
GSAP ScrollTrigger
Scroll scenes
Motion
Transitions and small motion
Lucide
Icons
localStorage
Cart and wishlist storage, on the device only
Playwright
Automated browser checks

How it was made

  1. Built the home, shop, product, gift, story, cart, FAQ and contact pages first.
  2. Turned the home page into six scroll scenes.
  3. Softened the hanji texture and made the scroll cue readable on phones.
  4. Checked it with 122 automated browser checks (the scenes, the cart and the layout at each screen width) and 26 interaction tests.

Problems and fixes

  1. Fixed

    Problem: Live blur and compositing stuttered on low-end devices.

    How it was fixed They were replaced with pre-rendered images, and only transform, opacity and CSS variables are animated.

  2. Fixed

    Problem: Scroll effects that hijack scrolling make a page hard to use.

    How it was fixed Scenes are pinned with CSS sticky only, and the scroll speed and position are never forced.

  3. Fixed

    Problem: There is no brand name, price list or real product photography yet. They go in once they are decided.

    How it was fixed All content lives in data files, and an empty value shows as “등록 대기” (pending). The photo slots hold staged images made with an AI image tool, demo mode labels prices as examples, and the order button only says payment is not connected yet.

  4. Still open

    Problem: Lighthouse's default (simulated) mobile LCP came out at 2.2 to 4.8 s, over the 2.5 s target.

    How it was fixed Measured with real network throttling and 4x CPU slowdown it was 0.7 to 2.0 s. It needs re-checking with real-user data after deployment.

Result

On a local production build (2026-10-13), it passed 122 automated browser checks and 26 interaction tests, layout shift (CLS) stayed at or under 0.005 on 8 pages, and the desktop Lighthouse performance score was 99 to 100. Payment is not connected, and it has not been checked on real iPhones, Galaxy phones, Safari or Firefox.

See it working

  • Working build

    Hangwa brand shop demo

    The shop front end as built, published as a static copy. The cart and wishlist are kept in this browser only; there is no ordering, payment or contact. The brand name is not settled, so it reads ○○정과. Product photos are staged images made with an AI image tool; the two raw ingredient photos are from Unsplash.

    Try it (Hangwa brand shop demo, opens in a new tab)

  • Demo video

    A recording of the real screen.

The screens in these demos are in Korean.

My part and AI tools

Where AI tools were used

  • Pages, scroll scenes and test code were made with an AI coding tool (Claude), per the repository history of 2026-10-13.
  • The placeholder copy was also written with AI and is marked on screen as placeholder copy.
  • The staged product and scene images were made with an AI image tool. Two reference photos are from Unsplash.