-
Notifications
You must be signed in to change notification settings - Fork 789
add: youtube engagement assets #358
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,54 @@ | ||
| FROM mcr.microsoft.com/devcontainers/base:debian-12 | ||
|
|
||
| # ── System dependencies ─────────────────────────────────────────────────────── | ||
| RUN apt-get update && apt-get install -y --no-install-recommends \ | ||
| ca-certificates \ | ||
| curl \ | ||
| unzip \ | ||
| git \ | ||
| ffmpeg \ | ||
| chromium \ | ||
| libgbm1 \ | ||
| libnss3 \ | ||
| libatk-bridge2.0-0 \ | ||
| libdrm2 \ | ||
| libxcomposite1 \ | ||
| libxdamage1 \ | ||
| libxrandr2 \ | ||
| libcups2 \ | ||
| libasound2 \ | ||
| libpangocairo-1.0-0 \ | ||
| libxshmfence1 \ | ||
| libgtk-3-0 \ | ||
| # Font support — matches production rendering environment | ||
| fonts-liberation \ | ||
| fonts-noto-color-emoji \ | ||
| fonts-noto-cjk \ | ||
| fonts-noto-core \ | ||
| fonts-noto-extra \ | ||
| fonts-noto-ui-core \ | ||
| fonts-freefont-ttf \ | ||
| fonts-dejavu-core \ | ||
| fontconfig \ | ||
| && rm -rf /var/lib/apt/lists/* \ | ||
| && apt-get clean \ | ||
| && fc-cache -fv | ||
|
|
||
| # ── Node.js 22 ──────────────────────────────────────────────────────────────── | ||
| RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ | ||
| && apt-get install -y --no-install-recommends nodejs \ | ||
| && rm -rf /var/lib/apt/lists/* | ||
|
|
||
| # ── Bun ────────────────────────────────────────────────────────────────────── | ||
| RUN curl -fsSL https://bun.sh/install | bash | ||
| ENV PATH="/root/.bun/bin:/home/vscode/.bun/bin:$PATH" | ||
|
|
||
| # Install bun for the vscode user as well | ||
| RUN su vscode -c "curl -fsSL https://bun.sh/install | bash" \ | ||
| && su vscode -c "~/.bun/bin/bun --version" \ | ||
| && echo "bun installed for vscode user" | ||
|
|
||
| # ── Puppeteer / Chromium config ─────────────────────────────────────────────── | ||
| ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true | ||
| ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium | ||
| ENV CONTAINER=true |
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same scope-creep concern as the Dockerfile — please split into a separate PR. One specific issue for when it is reviewed on its own: |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,94 @@ | ||||||
| { | ||||||
| "name": "Hyperframes", | ||||||
| "build": { | ||||||
| "dockerfile": "Dockerfile", | ||||||
| "context": ".." | ||||||
| }, | ||||||
|
Comment on lines
+1
to
+6
|
||||||
|
|
||||||
| // ── Container settings ─────────────────────────────────────────────────── | ||||||
| "remoteUser": "vscode", | ||||||
| "containerEnv": { | ||||||
| "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD": "true", | ||||||
| "PUPPETEER_EXECUTABLE_PATH": "/usr/bin/chromium", | ||||||
| "CONTAINER": "true" | ||||||
| }, | ||||||
|
|
||||||
| // ── VS Code extensions ─────────────────────────────────────────────────── | ||||||
| "customizations": { | ||||||
| "vscode": { | ||||||
| "extensions": [ | ||||||
| // Linting & formatting — oxlint + oxfmt (project standard) | ||||||
| "oxc.oxc-vscode", | ||||||
|
|
||||||
| // Editor experience | ||||||
| "EditorConfig.EditorConfig", | ||||||
| "streetsidesoftware.code-spell-checker", | ||||||
| "usernamehw.errorlens", | ||||||
|
|
||||||
| // Git | ||||||
| "eamodio.gitlens", | ||||||
| "mhutchie.git-graph", | ||||||
|
|
||||||
| // HTML / CSS | ||||||
| "bradlc.vscode-tailwindcss", | ||||||
| "formulahendry.auto-close-tag", | ||||||
| "naumovs.color-highlight", | ||||||
|
|
||||||
| // Markdown & docs | ||||||
| "yzhang.markdown-all-in-one", | ||||||
| "davidanson.vscode-markdownlint", | ||||||
|
|
||||||
| // Misc tooling | ||||||
| "mikestead.dotenv", | ||||||
| "ms-vscode.live-server" | ||||||
| ], | ||||||
| "settings": { | ||||||
| // Use bun as the npm script runner | ||||||
| "npm.packageManager": "bun", | ||||||
|
|
||||||
| // Format on save | ||||||
| "editor.formatOnSave": true, | ||||||
| "editor.defaultFormatter": "oxc.oxc-vscode", | ||||||
|
|
||||||
| // TypeScript | ||||||
| "typescript.tsdk": "node_modules/typescript/lib", | ||||||
| "typescript.enablePromptUseWorkspaceTsdk": true, | ||||||
|
|
||||||
| // Trim trailing whitespace / insert final newline — matches .editorconfig | ||||||
| "files.trimTrailingWhitespace": true, | ||||||
| "files.insertFinalNewline": true, | ||||||
|
|
||||||
| // Search exclusions | ||||||
| "search.exclude": { | ||||||
| "**/node_modules": true, | ||||||
| "**/dist": true, | ||||||
| "**/.git": true, | ||||||
| "**/bun.lock": true | ||||||
| } | ||||||
| } | ||||||
| } | ||||||
| }, | ||||||
|
|
||||||
| // ── Lifecycle hooks ────────────────────────────────────────────────────── | ||||||
|
|
||||||
| // Install dependencies after the container is created | ||||||
| "postCreateCommand": "bun install", | ||||||
|
|
||||||
| // Build all packages and start the studio after each start | ||||||
|
||||||
| // Build all packages and start the studio after each start | |
| // Build all packages after each start |
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This file shouldn't exist. A few reasons:
Please delete this file and let the generated catalog pages do their job. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,209 @@ | ||
| # YouTube Engagement Assets for Content Creators | ||
|
|
||
| ## 5 Ready-to-Sell Assets | ||
|
|
||
| All assets are: | ||
|
|
||
| - ✅ **Hyperframes-validated** (deterministic, no randomization) | ||
| - ✅ **1920x1080** HD resolution | ||
| - ✅ **GSAP-animated** with professional timing | ||
| - ✅ **Fast-rendering** (4-9 seconds each) | ||
| - ✅ **Customizable** via HTML/CSS modifications | ||
|
|
||
| --- | ||
|
|
||
| ## Asset Details | ||
|
|
||
| ### 1. **YouTube Like Button Pulse** | ||
|
|
||
| - **Path**: `registry/examples/youtube-like-pulse/` | ||
| - **Duration**: 8 seconds | ||
| - **Features**: | ||
| - Red pulsing button with expanding ring effect | ||
| - Animated counter (counts up to 1,247) | ||
| - "HIT THAT LIKE" text with entrance/exit animations | ||
| - Professional button pop-in with elastic bounce | ||
| - **Use Case**: Encourage viewers to like the video | ||
| - **Customizable**: Counter number, text, colors | ||
|
|
||
| --- | ||
|
|
||
| ### 2. **YouTube Bell Subscribe Alert** | ||
|
|
||
| - **Path**: `registry/examples/youtube-bell-subscribe/` | ||
| - **Duration**: 7 seconds | ||
| - **Features**: | ||
| - Golden bell icon with shake animation | ||
| - Notification dot with pulse | ||
| - Expanding glow rings | ||
| - "SUBSCRIBE" + "Never miss an upload" text | ||
| - "Turn on notifications →" CTA | ||
| - **Use Case**: Prompt subscriptions and notifications | ||
| - **Customizable**: Colors, text, timing | ||
|
|
||
| --- | ||
|
|
||
| ### 3. **Floating Thumbs Up Animation** | ||
|
|
||
| - **Path**: `registry/examples/youtube-floating-thumbs/` | ||
| - **Duration**: 9 seconds | ||
| - **Features**: | ||
| - 6 thumbs up icons floating and rotating | ||
| - Center frosted-glass circle with main thumb | ||
| - Deterministic radial motion (no randomization) | ||
| - "AMAZING!" text overlay | ||
| - "Show your appreciation" subtitle | ||
| - **Use Case**: Celebration & engagement boost | ||
| - **Customizable**: Number of thumbs, positions, text | ||
|
|
||
| --- | ||
|
|
||
| ### 4. **Subscribe Streak Counter** | ||
|
|
||
| - **Path**: `registry/examples/youtube-subscribe-streak/` | ||
| - **Duration**: 8 seconds | ||
| - **Features**: | ||
| - 🔥 Flaming emoji icon | ||
| - Animated streak counter (counts to 256 days) | ||
| - Floating stars with rotation | ||
| - "SUBSCRIBER STREAK" label | ||
| - "KEEP THE STREAK ALIVE!" CTA | ||
| - Pulsing border effect for emphasis | ||
| - **Use Case**: Encourage channel loyalty & long-term subscriptions | ||
| - **Customizable**: Counter value, star count, colors | ||
|
|
||
| --- | ||
|
|
||
| ### 5. **Attention Grabber - Like & Subscribe** | ||
|
|
||
| - **Path**: `registry/examples/youtube-attention-grabber/` | ||
| - **Duration**: 8 seconds | ||
| - **Features**: | ||
| - "HEY!" text with bouncy animation | ||
| - Dual-bubble design (👍 + 🔔) | ||
| - Burst particle explosion effect (✨ ⭐ 💥) | ||
| - "= AWESOME SUPPORT!" equation-style text | ||
| - High-energy gradient background | ||
| - **Use Case**: High-impact dual CTA for maximum engagement | ||
| - **Customizable**: Text, colors, bubble icons, burst particles | ||
|
|
||
| --- | ||
|
|
||
| ## How to Use These Assets | ||
|
|
||
| ### Render as Video | ||
|
|
||
| ```bash | ||
| npx hyperframes render registry/examples/youtube-like-pulse/ | ||
| npx hyperframes render registry/examples/youtube-bell-subscribe/ | ||
| # ... etc for each asset | ||
| ``` | ||
|
|
||
| ### Output Format | ||
|
|
||
| - Default: **MP4 (H.264)** | ||
| - Resolution: **1920x1080** (Full HD) | ||
| - Frame Rate: **30fps** (standard YouTube) | ||
| - File Size: ~2-5MB each (fast upload) | ||
|
|
||
| ### Customize & Distribute | ||
|
|
||
| #### Modify Colors | ||
|
|
||
| Edit the `<style>` section in each `index.html`: | ||
|
|
||
| - Change `background-color`, `border-color`, `color` values | ||
| - Create branded versions (red, blue, green, etc.) | ||
|
|
||
| #### Modify Text | ||
|
|
||
| Edit the text content directly in the HTML: | ||
|
|
||
| - Counter numbers | ||
| - Button labels | ||
| - CTAs ("Subscribe", "Like", etc.) | ||
| - Subtitles | ||
|
|
||
| #### Extend Timing | ||
|
|
||
| Adjust `data-duration` on root element to loop/extend animations | ||
|
|
||
| --- | ||
|
|
||
| ## Market Positioning | ||
|
|
||
| ### Sell As | ||
|
|
||
| 1. **Individual Assets** ($5-15 each) | ||
| 2. **YouTube Creator Starter Pack** ($29 for all 5) | ||
| 3. **Branded Bundle** (customer colors/text - $99-299) | ||
| 4. **Subscription Model** (monthly updates + new assets) | ||
|
|
||
| ### Target Audience | ||
|
|
||
| - YouTube creators (500K-5M subscribers) | ||
| - Streamers | ||
| - Educators | ||
| - Gaming channels | ||
| - Music promoters | ||
| - Product launches | ||
|
|
||
| --- | ||
|
|
||
| ## Technical Specs | ||
|
|
||
| | Asset | Duration | File Size | Render Time | | ||
| | ----------------- | -------- | --------- | ----------- | | ||
| | Like Pulse | 8s | ~2.5MB | ~2s | | ||
| | Bell Subscribe | 7s | ~2.2MB | ~2s | | ||
| | Floating Thumbs | 9s | ~3MB | ~2.5s | | ||
| | Streak Counter | 8s | ~2.8MB | ~2.5s | | ||
| | Attention Grabber | 8s | ~2.6MB | ~2s | | ||
|
|
||
| --- | ||
|
|
||
| ## Next Steps | ||
|
|
||
| 1. **Test Rendering** - Render each asset to MP4 and preview | ||
| 2. **Create Variants** - Make brand-color versions | ||
| 3. **Package** - Zip ready-to-render templates | ||
| 4. **Document** - Create user guides with customization instructions | ||
| 5. **Host** - Upload to marketplace (Gumroad, Etsy, custom store) | ||
| 6. **Promote** - Demo videos on YouTube, TikTok, Twitter | ||
|
|
||
| --- | ||
|
|
||
| ## Hyperframes Validation Status | ||
|
|
||
| All 5 assets pass: | ||
|
|
||
| - ✅ HTML schema validation | ||
| - ✅ Determinism checks (no randomization) | ||
| - ✅ GSAP timeline registration | ||
| - ✅ Dimension specs (1920x1080) | ||
| - ✅ Chrome headless rendering | ||
|
|
||
| Minor warnings on WCAG contrast are acceptable for decorative emoji elements. | ||
|
|
||
| --- | ||
|
|
||
| ## File Structure | ||
|
|
||
| ``` | ||
| registry/examples/ | ||
| ├── youtube-like-pulse/ | ||
| │ ├── index.html | ||
| │ └── registry-item.json | ||
| ├── youtube-bell-subscribe/ | ||
| │ ├── index.html | ||
| │ └── registry-item.json | ||
| ├── youtube-floating-thumbs/ | ||
| │ ├── index.html | ||
| │ └── registry-item.json | ||
| ├── youtube-subscribe-streak/ | ||
| │ ├── index.html | ||
| │ └── registry-item.json | ||
| └── youtube-attention-grabber/ | ||
| ├── index.html | ||
| └── registry-item.json | ||
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Scope creep — this file is unrelated to "youtube engagement assets" and should be split into its own PR with its own discussion. A devcontainer is a substantive change (mirrors production rendering env, installs Chromium + Node + Bun, sets
PUPPETEER_*env, forwards ports) and deserves maintainer review on its own merits, not bundled with a registry drop.A few things that would need sorting out before a devcontainer PR lands:
chrome-headless-shellfor rendering (not full Chromium); settingPUPPETEER_EXECUTABLE_PATH=/usr/bin/chromiumdiverges from what the producer package actually uses and may mislead contributors.ENV PATH="/root/.bun/bin:/home/vscode/.bun/bin:$PATH"puts root's bun ahead of vscode's, but the container runs asremoteUser: vscode(per devcontainer.json). The root install is unused by the interactive user — consider dropping it.chromiumvia apt plusPUPPETEER_SKIP_CHROMIUM_DOWNLOAD=trueis a reasonable pattern, but it should be justified against the engine package's actual browser management.Please drop these files from this PR.