Frontend Project

Save the Date

An interactive digital invitation that turns a physical scratch-card reveal into a mobile-friendly canvas experience with reward-state animations and calendar export.

CategoryFrontend / Interactive Invitation
StackReact, TypeScript, HTML5 Canvas
FocusCanvas Masking, Pointer UX, Calendar Export
Live Linksavethedate-dseikou.netlify.app

A digital invitation built around the feeling of discovery.

Save the Date translates the tactile experience of scratching open a physical card into a web-based reveal interaction. The user clears the hidden layer, unlocks the event detail, and receives a polished call-to-action to save the date.

Save the Date scratch-card reveal interaction preview

Save the Date is a premium interactive digital invitation built with React, TypeScript, HTML5 Canvas, and Web Audio API thinking. It turns a familiar scratch-card mechanic into a high-fidelity frontend experience.

The original concept uses procedural foil-style texturing and mathematical masking to hide the event information until the user clears enough of the surface. In this portfolio page, the supporting visuals are adapted into the D’SEIKOU palette, while the case study still explains the underlying creative-coding idea.

The interaction depends on precise pointer tracking rather than a simple click. The app follows mouse and touch movement, updates a canvas mask in real time, and measures the cleared area through pixel-level alpha data. Once the reveal passes the completion threshold, the app transitions into a reward state.

That reward state gives the project its sense of completion: particle bursts, delayed CTA reveal, background audio sync, and a client-side iCalendar file so the user can add the event to their calendar.

  • Core purpose: reveal event details through a tactile scratch-card interaction.
  • Frontend layer: React, TypeScript, canvas rendering, pointer events, and client-side export logic.
  • Interaction layer: scratch tracking, clearance threshold, reward animation, audio sync, and calendar CTA.
  • Experience layer: mobile-friendly gestures, polished reveal pacing, and a memorable event announcement flow.
React
TypeScript
Canvas
Pointer API
Web Audio
Alpha Mask
ICS Export
Netlify

The page moves from hidden detail to revealed reward.

The project is structured around a clear interactive sequence: scratch, reveal, celebrate, then save the date.

Save the Date revealed state with calendar CTA
The revealed state unlocks the date and introduces the calendar CTA after the user clears enough of the mask.
Save the Date mobile pointer interaction visual
Pointer capture supports mouse, stylus, and touch input so the scratch interaction works across devices.
Save the Date canvas engine flow visual
The canvas engine tracks contact, updates an alpha mask, checks the threshold, and triggers the reward state.

A small invitation with a lot of interaction engineering.

Canvas Scratch Reveal

The hidden layer is cleared through canvas masking, creating the feeling of physically scratching a card.

Pointer-Based Gestures

Pointer tracking supports mobile and desktop interaction without relying on click-only behaviour.

Calendar CTA

After the reveal threshold is reached, the app can generate a client-side iCalendar file for saving the event.

Procedural Texture Logic

The visual layer is generated programmatically rather than relying only on a flat static image, helping the scratch surface feel richer.

Alpha-Channel Tracking

The app uses pixel data to estimate how much of the hidden layer has been cleared before unlocking the reward state.

Reward State Machine

Once the threshold is reached, the app moves into a controlled reveal sequence with particles, audio, and CTA timing.

Frontend Portfolio Value

The project demonstrates creative coding, interaction design, canvas rendering, mobile UX, and practical client-side export behaviour.

An event announcement turned into an interaction.

Save the Date shows how frontend logic can make a simple message feel cinematic, tactile, and memorable.

Open Live App