Skip to content
LOCEN/Ontario · CAStandbyOK/--:--:--EST
M4M4RK_YUportfolio
  • Projects
    ProjectsOverview
    • WorkSelected case studies and write-ups
    • GamesPlayable prototypes and game-dev logs
  • Gallery
    GalleryOverview
    • ArchivePhoto collections and visual experiments
    • ShopPrints, posters, and one-off objects
  • Logs
    LogsOverview
    • BlogLong-form devlogs and field notes
    • NotesShort observations, links, snippets
  • Resources
    ResourcesOverview
    • Tools38 in-browser developer utilities
    • LinksDaily-use dev and design bookmarks
  • About
  • Contact
中文
← projects
Web app · 2024Ready

UI Studio

A real-time collaborative design canvas where multiple people sketch, arrange, and edit the same board at once.

Role
Solo developer: canvas architecture, multiplayer state, interface, and deployment.
Stack
Next.jsTypeScriptFabric.jsLiveblocksTailwind CSS
Links
LiveSource
UI Studio collaborative canvas cover

Context

Problem

Design tools tend to be either single-player or heavyweight. UI Studio explores how light a shared canvas can feel while still handling live presence and concurrent edits.

Approach

Solution

A Next.js canvas built on Fabric.js for vector editing and Liveblocks for multiplayer state, so cursors, selections, and shape changes sync between collaborators in real time.

Features

  • Live multiplayer canvas with presence
  • Vector shapes, text, and image objects
  • Per-user cursors and selections
  • Shareable room-based boards

Architecture notes

  • Fabric.js owns the canvas object model; Liveblocks owns the shared state.
  • Ephemeral presence is separated from durable storage so cursors stay fast on heavy boards.

Challenges

Outcome

A working real-time canvas deployed on Vercel — a study in multiplayer presence and conflict-tolerant editing.

What I learned

Lessons learned

  1. 01Multiplayer feels magical only when presence is instant and edits never fight.
  2. 02Separating ephemeral presence from durable storage keeps the canvas responsive.

Next steps

Next steps

  1. 01Add comments and reactions
  2. 02Support board export
  3. 03Tighten mobile canvas gestures

Related work

Web app

Nimbus

A secure file management platform shaped around calm organization, OTP access, and storage analytics.

Web app

M4rketView

A cryptocurrency screener built for quick scanning, watchlist thinking, and market table clarity.

PreviousDescent Into MadnessA 2D pixel-art roguelike shooter built in Unity — descend, fight, and survive escalating runs.
Back to archive
NextAI Agent ToolkitA Windows-first local AI coding toolkit — multi-agent workflows, Ollama automation, and developer dashboard utilities.
Back to archive
open channel·say hi anytime · 2026
--:--:--EST
get in touch

Saw something here?Tell me about it.

It's a portfolio, not a service · but I read every note — drop a line if anything here resonated, or just to say hi.

Start a conversation

Newsletter

Get the occasional dispatch

Notes and logs from m4rkyu.com — short, dated, no noise. Unsubscribe anytime.

Work

Production builds, games, and visual archives.

  • Projects
  • Games
  • Archive
  • Logs

Resources

Daily-use tools and a personal link library.

  • Search
  • Latest
  • Tools
  • Links
  • Notes
  • Topics
  • RSS
  • JSON feed
  • Shop

Studio

Background, contact, and channels for collaboration.

  • About
  • Contact
  • Changelog
  • Colophon
  • Resumepending

Socials

Find me on the usual feeds.

  • Facebooksoon
  • Instagramsoon
  • YouTubesoon
  • LinkedInsoon
M4RKYUM4RKYUM4RKYUM4RKYUM4RKYUM4RKYUM4RKYUM4RKYU
Crafted since 2024
ZhenXiao Mark YuZhenXiao Mark Yu
© 2026 ZhenXiao Mark Yu·Ontario, Canada
  • Email
  • GitHub
  • dev.to
  • LinkedIn (soon)
  • Twitter / X (soon)
  • Instagram (soon)
Built with Next.js 16 · React 19 · Tailwind 4

Built with Next.js 16 · React 19 · Tailwind 4