MCPcopy Index your code
hub / github.com/Andreaswt/figma-clone

github.com/Andreaswt/figma-clone @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
90 symbols 223 edges 57 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

alt text

https://youtu.be/43xmaSJbEVs

Overview

Hi 🤙 In this FREE 11 hour video you'll learn how to build a real-time Figma clone. You'll build features like real-time canvas updates, collaborative tools, advanced shape and text editing, and much more. We'll be using modern technologies such as Next.js 15, React 18, TypeScript and Liveblocks. You'll be able to build along with me from project setup to Vercel deployment.

Features: 🔄 Real-time canvas updates 👀 See others' cursors 🔗 Share rooms 🛠️ Property editor 📊 Dashboard ✏️ Shapes, drawings, and text ↩️ Undo and redo 🔀 Manage layer's z-indexes 🔑 Sign Up And In 🚀 Vercel Deployment 📊 Postgres Database

Setup

Follow these steps to install and set up the project.

Clone the Repository

git clone https://github.com/Andreaswt/figma-clone.git

Navigate to the Project Directory

cd figma-clone

Install Node.js

Download and install Node.js if not already installed. Use the link below for guidance on installation via package manager: Node.js Download

Install Node Modules

npm install

Liveblocks

Sign up for Liveblocks, and create a project. Grab the public and secret key for the project.

Setup Environment Variables

Create a .env file in the root of the project and add the necessary environment variables listed in env.js.

Run the Project

npm run dev

Access the Application

Open your browser and visit: http://localhost:3000

Extension points exported contracts — how you extend this code

Liveblocks (Interface)
(no doc)
liveblocks.config.ts
Session (Interface)
(no doc)
src/server/auth/config.ts

Core symbols most depended-on inside this repo

colorToCss
called by 15
src/utils.ts
connectionIdToColor
called by 5
src/utils.ts
pointerEventToCanvasPoint
called by 4
src/utils.ts
hexToRgb
called by 3
src/utils.ts
handleClick
called by 2
src/components/toolsbar/SelectionButton.tsx
handleClick
called by 2
src/components/toolsbar/ShapesSelectionButton.tsx
updateRoomTitle
called by 2
src/app/actions/rooms.ts
useSelectionBounds
called by 2
src/hooks/useSelectionBounds.ts

Shape

Function 85
Enum 3
Interface 2

Languages

TypeScript100%

Modules by API surface

src/utils.ts8 symbols
src/components/dashboard/RoomsView.tsx8 symbols
src/components/sidebars/ColorPicker.tsx6 symbols
src/components/canvas/Text.tsx5 symbols
src/app/actions/rooms.ts5 symbols
src/components/sidebars/NumberInput.tsx4 symbols
src/types.ts3 symbols
src/components/toolsbar/ShapesSelectionButton.tsx3 symbols
src/components/toolsbar/SelectionButton.tsx3 symbols
src/app/actions/auth.ts3 symbols
src/hooks/useSelectionBounds.ts2 symbols
src/components/sidebars/ShareMenu.tsx2 symbols

For agents

$ claude mcp add figma-clone \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact