Third-party service embed component. Supports booking (Calendly, Cal.com), payments (Stripe, Gumroad, Ko-fi), forms (Typeform, Tally, Jotform), newsletters (Mailchimp, ConvertKit, Beehiiv), audio (Spotify, SoundCloud, Apple Podcasts), social (Instagram, Twitter/X, TikTok), chat widgets (Crisp, Intercom, Tidio), Google Calendar, or custom HTML/iframe/script code.
All styling goes in props.className as a single Tailwind utility string. Non-class props (text, src, alt, etc.) stay on their own keys. root.animation for scroll effects.
{
"service": "calendly",
"url": "https://calendly.com/your-name/30min",
"title": "Book a meeting",
"className": "w-full"
}{
"service": "spotify",
"url": "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT",
"title": "Now playing",
"className": "w-full"
}{
"service": "stripe",
"url": "<stripe-buy-button buy-button-id=\"buy_btn_xxx\" publishable-key=\"pk_live_xxx\"></stripe-buy-button><script async src=\"https://js.stripe.com/v3/buy-button.js\"></script>",
"title": "Purchase product",
"className": "w-full"
}{
"service": "custom",
"code": "<iframe src=\"https://example.com/widget\" width=\"100%\" height=\"400\" frameborder=\"0\"></iframe>",
"title": "Custom widget",
"className": "w-full"
}{
"service": "custom",
"code": "",
"className": "hidden",
"title": "Cal.com popup loader",
"headCode": "<script type=\"text/javascript\">(function (C, A, L) { let p = function (a, ar) { a.q.push(ar); }; let d = C.document; C.Cal = C.Cal || function () { let cal = C.Cal; let ar = arguments; if (!cal.loaded) { cal.ns = {}; cal.q = cal.q || []; d.head.appendChild(d.createElement(\"script\")).src = A; cal.loaded = true; } if (ar[0] === \"init\") { const api = function () { p(api, arguments); }; api.q = api.q || []; const namespace = ar[1]; typeof namespace === \"string\" ? (cal.ns[namespace] = cal.ns[namespace] || api) && p(cal.ns[namespace], ar) && p(cal, [\"initNamespace\", namespace]) : p(cal, ar); return; } p(cal, ar); }; })(window, \"https://app.cal.com/embed/embed.js\", \"init\");Cal(\"init\", \"my-namespace\", {origin:\"https://cal.com\"});Cal.ns[\"my-namespace\"](\"ui\", {\"hideEventTypeDetails\":false,\"layout\":\"month_view\"});</script>"
}