Communitygithub.com

snapcndev/snapcn

제품 출시 브리프로 Remotion 기반의 런칭 영상(소개 영상, 기능 발표, 버전 릴리스, Product Hunt / X / LinkedIn 홍보 영상 또는 랜딩 페이지 히어로 영상)을 제작합니다. snapcn의 수작업 튜닝된 Remotion 장면(@snapcn/announce-title, hero-launch, type-morph, count-grid, wordmark-cut 등)을 조합하여 일반 AI 영상과 차별화된 결과물을 제공합니다. 브리프 → 스토리보드 → snapcn 컴포넌트 설치 → 구성 → 렌더-감사 → 배포로 이어지는 워크플로우를 따릅니다. 트리거: 런칭 영상, 제품 출시 영상, remotion 런칭 영상, 발표 영상, 릴리스 영상, 홍보 영상, Product Hunt 영상, '내 출시를 위한 영상 제작', 'Claude Code로 런칭 필름 만들기'

snapcn란 무엇인가요?

이 스킬은 제품 출시 브리프를 15~30초 길이의 Remotion 기반 런칭 필름으로 변환해주는 전문 기술입니다. 모든 장면은 snapcn 컴포넌트로 구성되며, 이들은 shadcn CLI로 설치되고 사용자가 완전히 소유할 수 있는 코드로 프로젝트에 적용됩니다. 스킬의 핵심 원칙은 '수동 애니메이션 대신 snapcn 사용'입니다. 에이전트가 처음부터 애니메이션을 만들면 그라데이션 배경에 중앙 정렬 텍스트, 페이드 인, 끝에 로고만 등장하는 평범한 영상으로 귀결되기 쉽습니다. 반면 snapcn 장면은 실제 런칭 영상을 기준으로 프레임 단위로 제작되어, 이미 고급스러운 타이밍, 타이포그래피, 카메라 움직임을 갖추고 있습니다. 사용자는 적절한 장면을 선택하고 props만 채우면 됩니다. 워크플로우는 입력 수집 → 스토리보드 작성 → snapcn 컴포넌트 설치 → TransitionSeries로 구성 → 단일 프레임 및 전체 영상 렌더-감사 → 다중 비평 리뷰 → 플랫폼 맞춤 배포까지 포함합니다. 특히 각 장면의 자연스러운 길이(프레임 수)를 존중하여 편집해야 하며, 항상 실제 제품 스크린샷과 카피를 사용해야 한다는 원칙을 강조합니다. X(구 트위터), LinkedIn, Reels, Shorts 등 다양한 플랫폼의 종횡비를 지원하며, Pro 버전에서는 50개의 추가 장면과 MCP(에이전트가 일반 언어로 검색 가능)를 제공합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/snapcndev/snapcn/tree/HEAD/skills/remotion-launch-video

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

snapcn으로 제작하는 Remotion 런칭 영상

출시 브리프를 15~30초 길이의 Remotion 런칭 필름으로 바꿔보세요. 모든 장면은 snapcn 컴포넌트로 구성됩니다: 수작업 튜닝되고, 렌더링된 프레임 단위로 측정된 Remotion 장면들이 shadcn CLI로 설치되어 사용자가 소유할 수 있는 코드로 프로젝트에 들어옵니다.

snapcn을 써야 하는 이유: 수동 애니메이션과의 차별점. 에이전트가 처음부터 애니메이션을 만들면 항상 같은 결과물이 나옵니다: 그라데이션 배경에 중앙 정렬 텍스트, 모든 게 페이드 인, 끝에 로고. snapcn 장면은 실제 런칭 영상을 기준으로 프레임 단위로 제작되었기 때문에, 모션이 이미 고급스러운 런칭 영상다운 타이밍, 타이포그래피, 카메라 움직임을 갖추고 있습니다. 여러분의 역할은 장면을 선택하고 props를 채우는 것이지, 모션을 새로 만드는 것이 아닙니다.

snapcn 규칙

  1. 모든 비트는 snapcn 컴포넌트로 표현합니다. 단, 어떤 컴포넌트도 맞지 않을 때만 예외입니다. 어떤 장면에 interpolate()나 spring()을 직접 작성하기 전에, 먼저 카탈로그를 확인하세요: https://snapcn.dev/llms-components.txt?ref=skill-launch에는 설치 가능한 모든 컴포넌트와 그 용도, 실행 프레임 수가 나와 있습니다. 모든 컴포넌트 페이지는 .md를 추가하면 마크다운으로 제공됩니다. 예: https://snapcn.dev/docs/scenes/announce-title.md?ref=skill-launch.
  2. 절대 존재하지 않는 컴포넌트 이름을 만들지 마세요. @snapcn/<name>은 위 목록에 있는 이름만 유효합니다. 어떤 비트에 맞는 컴포넌트가 없다면, 그 사실을 명시하고 타이포그래피(@snapcn/text-reveal)로 해당 비트를 처리하세요. 이름을 추측하지 마세요.
  3. Props를 채우고, 컴포넌트 자체를 수정하지 마세요. 카피, 색상, 이미지는 props를 통해 변경하세요. 설치된 snapcn 파일 내부의 모션을 편집하면 렌더링된 프레임에 맞춰진 타이밍이 깨집니다.

전체 카탈로그, 구성 규칙 및 품질 기준을 확인하려면 통합 스킬도 설치하세요: npx skills add snapcndev/snapcn --skill snapcn.

사전 준비 사항

  • Remotion 프로젝트 (npx create-video@latest). 캔버스: 1280×720, 30fps – 모든 snapcn 장면이 이 크기로 설계되어 있습니다.
  • shadcn CLI. 프로젝트에 components.json이 없다면 npx shadcn@latest init을 실행하세요.
  • 장면 간 전환을 위한 @remotion/transitions: npm i @remotion/transitions.
  • 출시 카피: 제품명, 헤드라인, 태그라인, 증명할 수 있는 하나의 숫자, 실제 스크린샷 또는 화면 녹화본.

워크플로우

1. 입력 수집

아무것도 작성하기 전에 다음을 확보하세요:

  • 브리프: 출시 포스트, 랜딩 페이지 또는 원페이지. 헤드라인, 태그라인, 차별화 기능, 증명할 수 있는 숫자, 톤을 추출하세요.
  • 브랜드: 로고(SVG 경로 또는 PNG), 기본 색상, 폰트. snapcn 장면은 이들을 props(titleColor, logoSrc, symbolPath, fontFamily, theme)로 받습니다.
  • 실제 제품 스크린샷: 스크린샷 또는 30~60초 녹화본. 실제 UI 카피를 그대로 사용하세요. 절대 레이블, 기능 또는 숫자를 만들어내지 마세요. 이는 런칭 영상을 가짜처럼 보이게 하는 가장 빠른 지름길입니다.

2. 코드 작성 전에 스토리보드 먼저

먼저 장면 목록을 작성하고 각 비트를 snapcn 컴포넌트에 매핑하세요:

비트시간snapcn 컴포넌트프레임전달 내용
후크0~3초type-morph 또는 text-reveal94 / 90시청자의 문제를 약속으로 전환
제품명3~9초announce-title170눈썹 문구, 제품명, 태그라인, 마크
제품9~15초hero-launch, laptop-frame, phone-frame170 / 240 / 240기기 위의 실제 스크린샷
증거15~17초count-grid, follower-rush47 / 300실제 숫자 하나
마무리17~20초wordmark-cut, block-wordmark, logo-flicker, logo-assemble66 / 150 / 100 / 108제품명만, 그 외에는 아무것도 없음

리렌더링을 줄이는 규칙:

  • 제품명보다 시청자의 문제를 먼저 제시하세요.
  • 제품명을 언급한 후 3초 이내에 제품을 보여주세요.
  • 오직 당신의 제품만이 제공할 수 있는 그 순간에 가장 많은 화면 시간을 할애하세요. 모든 기능에 균등하게 시간을 분배하지 마세요.
  • 각 시퀀스를 컴포넌트의 자연스러운 길이(프레임 열, llms-components.txt에도 표시됨)에 맞게 예산을 책정하세요. 너무 짧게 잡으면 애니메이션이 중간에 잘리고, 너무 길게 잡으면 정적 구간이 생깁니다.
  • 텍스트는 영상에 박아 넣으세요. 대부분의 소셜 미디어 시청은 음소거 상태입니다.

3. 장면 설치

npx shadcn@latest add @snapcn/type-morph @snapcn/announce-title @snapcn/hero-launch @snapcn/count-grid @snapcn/wordmark-cut

각 컴포넌트는 components/snap-cn/<name>.tsx 경로에 설치되며, 의존성도 함께 설치됩니다.

4. 구성

하나의 TransitionSeries, 비트당 하나의 시퀀스, 짧은 페이드 전환으로 연결합니다. 다음 구성은 타입 체크와 렌더가 정상 작동하며, public/ 폴더에 네 개의 스크린샷이 있다고 가정합니다:

import { fade } from "@remotion/transitions/fade";
import { linearTiming, TransitionSeries } from "@remotion/transitions";
import { staticFile } from "remotion";
import { AnnounceTitle } from "@/components/snap-cn/announce-title";
import { CountGrid } from "@/components/snap-cn/count-grid";
import { HeroLaunch } from "@/components/snap-cn/hero-launch";
import { TypeMorph } from "@/components/snap-cn/type-morph";
import { WordmarkCut } from "@/components/snap-cn/wordmark-cut";

// 1280×720 @ 30fps. 각 Sequence는 컴포넌트의 자연스러운 길이에 맞게 예산이 책정됩니다.
const T = linearTiming({ durationInFrames: 12 });
// public/ 폴더의 실제 제품 스크린샷. 없으면 snapcn 샘플 이미지로 대체됩니다.
const shots = ["shot-1.jpg", "shot-2.jpg", "shot-3.jpg", "shot-4.jpg"].map((f) => staticFile(f));

export const LaunchVideo: React.FC = () => (
  <TransitionSeries>
    {/* 1. 후크: 시청자의 문제를 약속으로 전환 */}
    <TransitionSeries.Sequence durationInFrames={94}>
      <TypeMorph
        lead="당신의 런칭 영상 제작은 "
        emphasis="일주일 걸리지만,"
        morphTo="한 줄 프롬프트로 끝납니다."
        finally_="프롬프트로 끝납니다."
      />
    </TransitionSeries.Sequence>
    <TransitionSeries.Transition presentation={fade()} timing={T} />

    {/* 2. 제품명 소개 */}
    <TransitionSeries.Sequence durationInFrames={170}>
      <AnnounceTitle
        eyebrow="Introducing"
        title="Acme 2.0"
        tagline="스스로 정산되는 청구."
        symbolPath="" // 0 0 100 100 박스 안의 SVG 경로. 빈 문자열("")은 표시 안 함
      />
    </TransitionSeries.Sequence>
    <TransitionSeries.Transition presentation={fade()} timing={T} />

    {/* 3. 제품 보여주기: 실제 스크린샷 두 개 (이미지, 비디오, 또는 CSS 그라데이션 대체) */}
    <TransitionSeries.Sequence durationInFrames={170}>
      <HeroLaunch
        heading="모든 청구서가 일치합니다."
        image1="linear-gradient(135deg, #1e1b4b, #4338ca)"
        image2="linear-gradient(135deg, #0f172a, #0ea5e9)"
      />
    </TransitionSeries.Sequence>
    <TransitionSeries.Transition presentation={fade()} timing={T} />

    {/* 4. 증거: 실제 숫자 하나 */}
    <TransitionSeries.Sequence durationInFrames={60}>
      <CountGrid from="5" to="500" noun="팀" cards={shots} />
    </TransitionSeries.Sequence>
    <TransitionSeries.Transition presentation={fade()} timing={T} />

    {/* 5. 제품명으로 마무리 */}
    <TransitionSeries.Sequence durationInFrames={66}>
      <WordmarkCut word="acme." />
    </TransitionSeries.Sequence>
  </TransitionSeries>
);

durationInFrames={512} (시퀀스 프레임 합계 - 4 × 12프레임 겹침), fps={30}, width={1280}, height={720}로 등록하세요.

그라데이션을 실제 스크린샷이나 클립으로 바꾸려면: image1={staticFile("shot-1.png")} 형태로 사용하며, 파일은 public/ 폴더에 넣으세요.

5. 렌더-감사 루프

전체 영상을 렌더링하기 전에 단일 프레임을 먼저 렌더링하세요:

# 비트당 하나의 프레임: 각 시퀀스의 중간 지점, 그리고 각 컷 직전과 직후
npx remotion still LaunchVideo out/beat-1.png --frame=47
npx remotion render LaunchVideo out/launch.mp4 --codec=h264 --crf=18

스틸 이미지를 하나의 콘택트 시트로 타일링하여 전체를 렌더링하기 전에 확인하세요:

ffmpeg -y -pattern_type glob -i "out/beat-*.png" -vf "scale=480:-1,tile=5x1" out/contact.png

각 프레임을 확인하세요:

  • 잘리는 텍스트가 없고, 컷에 검은 프레임이 없으며, 해당 장면 시작 전에 어떤 것도 표시되지 않아야 합니다.
  • 화면에 표시되는 모든 문자열은 브리프의 실제 카피여야 합니다.
  • 제품명이 언급된 후 3초 이내에 제품이 나타나야 합니다.

6. 리뷰

두세 번의 자체 점검 후, 약 20프레임(피크 순간 및 모든 컷의 양쪽)을 렌더링하여 네 명의 비평가로 검토하세요. (또는 사용 중인 AI 도구가 지원한다면 네 개의 병렬 하위 에이전트로 검토하세요):

  1. 디자인/레이아웃: 정렬, 크롭, 비례 문제.
  2. 가독성: 720p 해상도로 휴대폰에서 읽기 쉬운지, 대비, 오탈자 확인.
  3. 페이싱: 각 비트가 충분한 시간을 가지고 있는지, 마무리가 강력한지.
  4. 브랜드 일관성: 색상, 폰트, UI가 실제 제품과 일치하는지.

다음 렌더링 전에 수정 목록을 하나의 수정 계획으로 통합하세요.

7. 플랫폼에 맞춰 배포

렌더링 전에 영상이 어디에 업로드될지 물어보세요. 이후에 크롭하는 대신 종횡비별로 하나의 컴포지션을 만드세요.

플랫폼종횡비크기
X / LinkedIn 피드16:91920×1080 (또는 1280×720 마스터 렌더링)
X 세로, Reels, Shorts, TikTok9:161080×1920
LinkedIn / Instagram 피드1:1 또는 4:51080×1080 / 1080×1350

npx remotion render LaunchVideo out/launch-1080.mp4 --scale=1.5 명령어는 1280×720 마스터를 1920×1080으로 업스케일하며, 어떤 장면도 다시 배치하지 않습니다.

힘들게 얻은 교훈

  • 절대 가짜 제품 UI 레이블을 만들지 마세요. 실제 앱을 스크린샷하고 그 카피를 그대로 사용하세요.
  • 엔드 카드에는 헤드라인 하나와 CTA 하나만. 랜딩 페이지의 실제 태그라인을 사용하세요.
  • 후크는 설명 없이도 시청자가 인식할 수 있는 것에 기반하세요. 설명이 한 문장 필요하다면 후크가 너무 추상적인 것입니다.
  • Before/After 비트는 동시에 보여주세요. "Before"를 약 1초간 보여준 후 "After"로 컷하세요.
  • snapcn 장면 내부에 자체 페이드를 넣어 서로 연결하지 마세요. 전환은 TransitionSeries가 담당합니다. 장면별로 종료 페이드를 넣으면 이중 페이드가 발생합니다.
  • 자체 추가는 절제하세요: 문장 케이스 사용, 장식용 자간 없음, 글로우나 그라데이션 텍스트 없음. 글로우가 있는 snapcn 장면(announce-title)은 글로우를 유지합니다. 그것이 효과이지 장식이 아닙니다.

snapcn Pro: 완성된 필름과 모든 props를 아는 에이전트

무료 장면 이상이 필요한 런칭을 위해:

  • 50개의 Pro 장면 – 런칭용으로 제작됨: version-drop (릴리스 번호 드롭), library-flight, app-reveal, gallery-push (체인지로그 벽), screen-wall, checkout-push, tally-rise, ticker-climb, thank-you-swarm 등 포함.
  • 템플릿 (2026년 10월 20일부터): 완성된 런칭 필름, 기능 둘러보기, 체인지로그 클립. 카피를 넣고 렌더링하세요: https://snapcn.dev/docs/templates?ref=skill-launch
  • snapcn MCP: 에이전트가 일반 영어로 레지스트리를 검색하고, 모든 컴포넌트의 실제 props를 읽고, 한 줄 브리프를 비트별 계획과 TransitionSeries 골격으로 바꿔줍니다. claude mcp add snapcn -- npx -y @snapcn/mcp@latest SNAPCN_API_KEY=YOUR_KEY

Pro 컴포넌트는 components.json에 키를 설정하면 무료 장면과 동일하게 설치됩니다 (세 줄 설정 방법: https://snapcn.dev/account?ref=skill-launch). 요금제: https://snapcn.dev/docs/pricing?ref=skill-launch

Pro가 아직 준비되지 않으셨나요? 하나의 Pro 컴포넌트인 Manifesto는 이메일 인증 시 무료로 제공됩니다: https://snapcn.dev/docs/pricing?ref=skill-launch#free

저작자 표시

워크플로우 구조 (입력 → 스토리보드 → 제작 → 렌더-감사 → 다중 비평 리뷰 → 플랫폼 표)와 여러 힘들게 얻은 교훈은 everyinc/product-launch-video (MIT, © 2026 Every Media, Inc.)에서 각색되었습니다. 콘택트 시트 감사 및 "디자인을 시작하기 전에 카탈로그를 검색하라" 규칙은 HeyGen의 hyperframes product-launch-video 스킬 (Apache-2.0)에서 각색되었습니다. 둘 다 Remotion 및 snapcn 컴포넌트에 맞게 재작성되었으며, 모든 snapcn 고유 콘텐츠는 snapcn의 자체 저작물입니다.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

snapcndev/snapcn

Make an explainer video in Remotion: a narrated 30–90s video that explains a product, feature, idea or process, with a voiceover and burned-in captions. Script → voiceover → word timings → one snapcn scene per beat → captions → render. Uses snapcn's Remotion components (@snapcn/punch-lines, status-cycle, count-grid, laptop-frame, word-captions, karaoke-captions and more) for every beat instead of hand-animated slides. Triggers: explainer video, animated explainer, how it works video, product explainer, narrated video, voiceover video, "explain my product in a video", "make an explainer in Remotion".

snapcndev/snapcn

Make a logo animation in Remotion: a logo reveal, logo sting, intro or outro bumper, brand reveal or end card for a video, launch or YouTube channel. Uses snapcn's hand-tuned Remotion logo scenes (@snapcn/logo-flicker, logo-assemble, logo-collapse, block-wordmark, wordmark-cut) with your real logo, instead of a logo that fades in and scales up. Triggers: logo animation, logo reveal, logo sting, animated logo, intro animation, outro, brand reveal, end card, bumper, "animate my logo", "logo intro in Remotion".

snapcndev/snapcn

Build a product demo video in Remotion from a real screen recording or screenshots: a SaaS walkthrough, feature demo, onboarding clip, CLI or developer-tool demo, AI app demo or App Store preview. Uses snapcn's Remotion components (@snapcn/screen-recording, cursor-track, laptop-frame, phone-frame, terminal-simulator, prompt-send, answer-stream, status-cycle) so the camera push, clicks, device frames and typed commands come pre-built instead of hand-animated. Triggers: product demo, demo video, remotion demo, product walkthrough, feature demo video, screen recording to video, app demo, SaaS demo, CLI demo, "turn my screen recording into a demo video".

snapcndev/snapcn

Build Remotion videos with snapcn — a shadcn registry of copy-paste animation components and timeline-driven UI primitives. Use when composing video scenes, adding text animations, transitions, backgrounds, UI blocks, brand/social cards, or full compositions in a Remotion project. Triggers include "snapcn", "video component", "add animation", "text reveal", "product demo video", "remotion component", "terminal simulator", "device frame", "phone mockup", "burned-in captions", "karaoke captions", "logo animation", "launch video", "changelog video", and the UI-primitive tier: "video input", "typing caret". Even if the user doesn't mention snapcn, activate when they need polished video primitives for Remotion.

관련 스킬