Files
hermes-mcp/product/site/script.js
Garfield ecdf332b78 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
2026-05-11 13:55:58 -04:00

86 lines
2.1 KiB
JavaScript

const form = document.getElementById("pilotIntakeForm");
const output = document.getElementById("pilotOutput");
const copyButton = document.getElementById("copyRequestButton");
const submitEndpoint = "/api/pilot-request";
function buildMessage(data) {
return [
"Pilot request for SquareMCP",
"",
`Name: ${data.name}`,
`Email: ${data.email}`,
`Company: ${data.company}`,
`Role: ${data.role}`,
`Primary use case: ${data.use_case}`,
`Timeline: ${data.timeline}`,
"",
"Internal systems to connect:",
data.systems,
"",
"Security or compliance requirements:",
data.requirements,
].join("\n");
}
function getFormData() {
const formData = new FormData(form);
return Object.fromEntries(formData.entries());
}
function setOutput(message, isReady = false) {
output.textContent = message;
output.classList.toggle("ready", isReady);
}
form.addEventListener("submit", async (event) => {
event.preventDefault();
if (!form.reportValidity()) {
return;
}
const data = getFormData();
const message = buildMessage(data);
setOutput("Submitting your pilot request...", false);
try {
const response = await fetch(submitEndpoint, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(data),
});
if (!response.ok) {
throw new Error(`submit failed (${response.status})`);
}
const result = await response.json();
setOutput(
`${message}\n\nSaved to SquareMCP intake successfully.${result.request_id ? `\nRequest ID: ${result.request_id}` : ""}`,
true
);
form.reset();
} catch {
setOutput(
`${message}\n\nSubmission failed. Copy the request below and send it to info@squaremcp.com manually.`,
true
);
}
});
copyButton.addEventListener("click", async () => {
if (!form.reportValidity()) {
return;
}
const message = buildMessage(getFormData());
try {
await navigator.clipboard.writeText(message);
setOutput(`${message}\n\nCopied to clipboard.`, true);
} catch {
setOutput(`${message}\n\nClipboard access failed. Copy the text manually.`, true);
}
});