feat: social video uploads + hero page video + TikTok content

Hero page:
- Replace GIF with squaremcp-hero-loop.mp4 (autoplay, muted, loop)
- Update styles, scripts, tests, Dockerfile, baselines
- Deployed and verified

Social video uploads:
- Twitter/X: uploadVideoAndTweet via v1.1 media/upload + v2 tweets
- Facebook: createVideoPost via Graph API /{pageId}/videos
- Instagram: createReel via Graph API (container → poll → publish)
- TikTok: REST endpoints + OpenAPI schema for video upload

Marketing:
- TikTok content prompts, scripts, and posting schedule

Note: Remotion not mentioned in any user-facing content
This commit is contained in:
Garfield
2026-05-11 13:55:58 -04:00
parent de9d74bb2b
commit ecdf332b78
17 changed files with 854 additions and 54 deletions

View File

@@ -59,11 +59,10 @@ function createEnv({ valid = true, fetchOk = true, clipboardFails = false } = {}
const timers = [];
const output = { textContent: "", classList: createClassList() };
const heroAnimation = {
src: "./squaremcp_launch.gif",
dataset: {
posterSrc: "./squaremcp_launch_poster.png",
playMs: "9600",
},
src: "./squaremcp-hero-loop.mp4",
autoplay: true,
loop: true,
muted: true,
};
const entries = [
["name", "Casey"],
@@ -157,10 +156,11 @@ function assert(condition, message) {
async function run() {
const validEnv = createEnv();
assert(validEnv.timers.length === 1, "hero animation timer missing");
assert(validEnv.timers[0].ms === 9600, "hero animation timer mismatch");
validEnv.timers[0].fn();
assert(validEnv.heroAnimation.src === "./squaremcp_launch_poster.png", "hero poster swap failed");
// Hero is now a looping video — no timer-based poster swap
assert(validEnv.timers.length === 0, "hero video should not set a poster swap timer");
assert(validEnv.heroAnimation.src === "./squaremcp-hero-loop.mp4", "hero video src mismatch");
assert(validEnv.heroAnimation.autoplay === true, "hero video should autoplay");
assert(validEnv.heroAnimation.loop === true, "hero video should loop");
let prevented = false;
await validEnv.form.dispatch("submit", {