Succession.Media Operator Onboarding

Publishing System · for Hamid

Your Figma pages,
live in one line.

Design a landing page in Figma. Ship it as a real website on its own client subdomain. No code, no servers, no waiting.

Figma frame one command https://client.succession.media
00

How it works

You work entirely through your Claude Code, in two phases. First you turn a Figma frame into a live page. Then you polish that page until it is client-ready. The page is what the client sees, so the polish is where it gets finished.

Phase 1 · Figma to page

Publish

One command pulls your Figma frame and builds a live, responsive web page with HTTPS, on its own client subdomain.

Phase 2 · Claude polish

Finish it

Pull the live page down, let Claude edit the real page (copy, spacing, last touches), push it back live. Then share with the client.

Omar will send you one private file, hamid-deploy, over a secure channel. It is your key to the server. Keep it private, never paste it into chat. The setup below tells your Claude Code where to put it.

Give your Claude Code its brief: download this and add it as a section to your existing CLAUDE.md. Do not replace your file, paste it in alongside whatever is already there. It holds the exact commands and rules.

Download the CLAUDE.md section
01

One-time setup

Do this once. Hand these blocks to your Claude Code and it will wire everything up.

i

Install your key

Save the hamid-deploy file Omar sent you to ~/.ssh/hamid-deploy, lock its permissions, and add the server to your SSH config.

chmod 600 ~/.ssh/hamid-deploy

# add this to ~/.ssh/config
Host succ-lp
    HostName 18.246.162.246
    User deploy
    IdentityFile ~/.ssh/hamid-deploy
    IdentitiesOnly yes
ii

Set your own Figma token

When to do this: right now, before your first publish, to replace the temporary starter token already on the server. After that, you only set it again to rotate it, or if a publish ever fails with a token error.

In Figma: avatar, then Settings, then Security, then Personal access tokens. Generate a new token with scope File content: Read-only. Then register it on the server (it stays in your own account there, nobody else can read it):

$ ssh succ-lp 'succ-deploy set-token figd_your_token_here'

It prints your Figma account name on success. Re-run anytime to rotate.

A temporary token was set so the system works out of the box, but it is not private to you. Replace it with your own as your first step. Your token is personal: never paste it into a chat or message.
iii

Test the connection

Confirm your Claude Code can reach the server.

$ ssh succ-lp 'echo connected'
02

Phase 1 · Publish from Figma

Turn a Figma frame into a live page. One client at a time, each on its own subdomain.

i

Copy the Figma frame link

In Figma, right-click the frame you want to publish, then choose Copy link to selection. The link must contain node-id.

ii

Tell your Claude Code to publish

Pick a short client name (lowercase, hyphens, no spaces). That becomes the subdomain.

$ ssh succ-lp 'succ-deploy acme-skincare "<figma-frame-link>"'

Result: https://acme-skincare.succession.media

iii

New client? Settle the DNS record first

A brand-new client subdomain needs one DNS A record before it can go live. You choose who adds it:

Option A · You add it

Add the record yourself

In the DNS panel, add an A record <client>.succession.media pointing to 18.246.162.246.

Option B · Omar adds it

Send it to Omar

One command posts the exact record to Omar in the ops Slack channel.

$ ssh succ-lp 'succ-deploy request-dns acme-skincare'
Either way, wait until dig +short <client>.succession.media returns 18.246.162.246, then run the publish command. HTTPS is issued automatically on that first publish. Re-publishing the same client never needs this step.
03

Phase 2 · Polish before the client

The published page is the starting point, not the finish. Now you finish it: tell your Claude Code what to change and it edits the real page. This is the step that makes it client-ready.

i

Pull the live page down

Bring the published page into a local folder your Claude Code can edit.

$ rsync -avz succ-lp:/var/www/acme-skincare/ ~/succession-lps/acme-skincare/
ii

Let Claude make the last touches

Tell your Claude Code what to fix in plain language: copy, headlines, spacing, links, anything the auto-build missed. It edits ~/succession-lps/acme-skincare/index.html directly. Images sit in the assets/ folder beside it.

iii

Push it back live, then share

Changes go live instantly, no rebuild.

$ rsync -avz ~/succession-lps/acme-skincare/ succ-lp:/var/www/acme-skincare/

Open the live URL, confirm it looks right, then send it to the client.

Order matters. Do all Figma changes in Phase 1 first. Re-publishing from Figma rebuilds the page and replaces your Phase 2 edits, so always polish last. If a page published as a flat image and you cannot edit it, re-publish with --render=html first.
04

House rules

  • You run succ-deploy (Phase 1) and rsync to and from the server (Phase 2). Never touch the server config or other clients' folders.
  • No em dashes or en dashes in any copy. Use commas, periods, or colons.
  • If a publish throws an error, send the full error text to Omar. Do not try to fix the server yourself.
  • Your key and your Figma token are yours. Keep them private.