Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions .devcontainer/Dockerfile
Copy link
Copy Markdown
Collaborator

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:

  • The repo already uses chrome-headless-shell for rendering (not full Chromium); setting PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium diverges 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 as remoteUser: vscode (per devcontainer.json). The root install is unused by the interactive user — consider dropping it.
  • Installing chromium via apt plus PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true is a reasonable pattern, but it should be justified against the engine package's actual browser management.

Please drop these files from this PR.

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
94 changes: 94 additions & 0 deletions .devcontainer/devcontainer.json
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The 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: "postStartCommand": "bun run build" will re-run a full monorepo build every time the container starts, which is heavy and wasteful. Build typically belongs in postCreateCommand (alongside bun install, or as onCreateCommand/updateContentCommand). postStartCommand should be for fast per-start setup.

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
Copy link

Copilot AI Apr 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is titled as adding YouTube engagement assets, but it also adds a full devcontainer setup. If the devcontainer isn't required for the assets, consider moving it to a separate PR to keep scope/review risk smaller (or update the PR title/description to reflect the additional change).

Copilot uses AI. Check for mistakes.

// ── 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
Copy link

Copilot AI Apr 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment says this will "Build all packages and start the studio" on each start, but the command only runs bun run build. Either update the comment to match the behavior, or change the command to also start the studio if that's intended.

Suggested change
// Build all packages and start the studio after each start
// Build all packages after each start

Copilot uses AI. Check for mistakes.
"postStartCommand": "bun run build",

// ── Port forwarding ──────────────────────────────────────────────────────
"forwardPorts": [
// Hyperframes Studio dev server (Vite default)
5173,
// Alternative Vite ports
5174,
5175
],
"portsAttributes": {
"5173": {
"label": "Hyperframes Studio",
"onAutoForward": "openBrowser"
}
}
}
209 changes: 209 additions & 0 deletions YOUTUBE_ENGAGEMENT_ASSETS.md
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file shouldn't exist. A few reasons:

  1. Tone is off for the repo. "Ready-to-Sell Assets", green checkmarks, "Use Case / Customizable" marketing bullets — this reads like sales collateral, not engineering docs. The repo's style (see CONTRIBUTING.md, DESIGN.md, etc.) is concise, factual, and engineering-focused.
  2. Wrong location. Top-level markdown files in this repo are reserved for project-wide docs (README.md, CONTRIBUTING.md, DESIGN.md, SECURITY.md, etc.). Per-item documentation doesn't live here.
  3. Duplicates data. Everything useful here (title, duration, description) already lives in each item's registry-item.json — which is the source of truth the CLI and the catalog UI read from.
  4. Auto-generated docs are the established pattern. CONTRIBUTING.md says to run scripts/generate-catalog-pages.ts after adding items, which produces MDX pages automatically. Hand-writing a catalog doc sidesteps that pipeline.

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
```
Loading
Loading