1<!doctype html> 2<html lang="en"> 3<head> 4 <meta charset="utf-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 <!-- Lemon Squeezy affiliate tracking: records the click and stores the ref in the ls_aff_ref cookie --> 7
7<script>window.lemonSqueezyAffiliateConfig = { store: "socialclaw" };</script>
7 8
8<script src="https://lmsqueezy.com/affiliate.js" defer></script>
8 9 <title>Pricing | SocialClaw</title> 10 <meta 11 name="description" 12 content="Start with a 7-day free trial, then choose a SocialClaw plan for hosted social publishing, workspace API access, and the CLI." 13 /> 14 <link rel="canonical" href="https://getsocialclaw.com/pricing" /> 15 <meta property="og:type" content="website" /> 16 <meta property="og:title" content="Pricing | SocialClaw" /> 17 <meta 18 property="og:description" 19 content="Start with a 7-day free trial, then choose a SocialClaw plan for hosted social publishing, workspace API access, and the CLI." 20 /> 21 <meta property="og:url" content="https://getsocialclaw.com/pricing" /> 22 <meta name="twitter:card" content="summary_large_image" /> 23 <meta name="twitter:title" content="Pricing | SocialClaw" /> 24 <meta 25 name="twitter:description" 26 content="Start with a 7-day free trial, then choose a SocialClaw plan for hosted social publishing, workspace API access, and the CLI." 27 /> 28 <link rel="icon" type="image/png" href="/branding/socialclaw-app-icon.png" /> 29 <link rel="preconnect" href="https://fonts.googleapis.com" /> 30 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> 31 <link href="https://fonts.googleapis.com/css2?family=Google+Sans:ital,opsz,wght@0,17..18,400..700;1,17..18,400..700&display=swap" rel="stylesheet" /> 32 <link rel="stylesheet" href="/ui/brand-theme.css" /> 33 <link rel="stylesheet" href="/ui/platform-page.css" /> 34 <link rel="stylesheet" href="/ui/support-widget.css" />
vendor: 66 bytes, lines 34-35
34 35 <script async src="https://www.googletagmanager.com/gtag/js?id=
35AW-18165043006
vendor: 14 bytes, lines 35-36
35"></script> 36
36<script> 37
vendor: 140 bytes, lines 37-41
37window.dataLayer = window.dataLayer || []; 38 function gtag(){dataLayer.push(arguments);} 39 gtag('js', new Date()); 40 41 gtag('config', '
41AW-18165043006
vendor: 8 bytes, lines 41-42
41'); 42
42gtag('config', 'G-3FNGE72PDV'); 43 </script>
43 44
44<script type="application/ld+json"> 45 { 46 "@context": "https://schema.org", 47 "@graph": [ 48 { 49 "@type": "Organization", 50 "@id": "https://getsocialclaw.com/#organization", 51 "name": "SocialClaw", 52 "url": "https://getsocialclaw.com/", 53 "logo": { 54 "@type": "ImageObject", 55 "url": "https://getsocialclaw.com/branding/socialclaw-app-icon.png" 56 } 57 }, 58 { 59 "@type": "WebSite", 60 "@id": "https://getsocialclaw.com/#website", 61 "name": "SocialClaw", 62 "url": "https://getsocialclaw.com/", 63 "publisher": { 64 "@id": "https://getsocialclaw.com/#organization" 65 } 66 }, 67 { 68 "@type": "SoftwareApplication", 69 "@id": "https://getsocialclaw.com/#software", 70 "name": "SocialClaw", 71 "url": "https://getsocialclaw.com/", 72 "applicationCategory": "BusinessApplication", 73 "operatingSystem": "Web", 74 "description": "Hosted social publishing workspace with a dashboard, workspace API, CLI access, and media storage.", 75 "publisher": { 76 "@id": "https://getsocialclaw.com/#organization" 77 } 78 }, 79 { 80 "@type": "WebPage", 81 "@id": "https://getsocialclaw.com/pricing#webpage", 82 "url": "https://getsocialclaw.com/pricing", 83 "name": "Pricing | SocialClaw", 84 "description": "Start with a 7-day free trial, then choose a SocialClaw plan for hosted social publishing, workspace API access, and the CLI.", 85 "isPartOf": { 86 "@id": "https://getsocialclaw.com/#website" 87 }, 88 "about": { 89 "@id": "https://getsocialclaw.com/#software" 90 }, 91 "publisher": { 92 "@id": "https://getsocialclaw.com/#organization" 93 } 94 }, 95 { 96 "@type": "BreadcrumbList", 97 "@id": "https://getsocialclaw.com/pricing#breadcrumb", 98 "itemListElement": [ 99 { 100 "@type": "ListItem", 101 "position": 1, 102 "name": "Home", 103 "item": "https://getsocialclaw.com/" 104 }, 105 { 106 "@type": "ListItem", 107 "position": 2, 108 "name": "Pricing", 109 "item": "https://getsocialclaw.com/pricing" 110 } 111 ] 112 } 113 ] 114 } 115 </script>
115 116 <style> 117 .pricingPanel { 118 margin-top: 24px; 119 padding: clamp(20px, 3vw, 38px); 120 width: min(940px, 100%); 121 margin-left: auto; 122 margin-right: auto; 123 border: 0; 124 border-radius: var(--radius-panel); 125 background: var(--panel-strong); 126 } 127 128 .pricingPanelInner { 129 display: grid; 130 gap: 26px; 131 } 132 133 .pricingHead { 134 display: flex; 135 align-items: center; 136 justify-content: space-between; 137 gap: 16px; 138 flex-wrap: wrap; 139 } 140 141 .pricingHeading { 142 margin: 0; 143 font-size: clamp(1.7rem, 3.4vw, 2.4rem); 144 line-height: 1; 145 letter-spacing: -0.03em; 146 font-weight: 600; 147 } 148 149 .pricingSub { 150 margin: 6px 0 0; 151 color: var(--muted); 152 font-size: 15px; 153 } 154 155 /* Billing toggle */ 156 .toggle { 157 display: inline-flex; 158 align-items: center; 159 gap: 4px; 160 padding: 5px; 161 border-radius: 999px; 162 border: 1px solid var(--line); 163 background: #f6f7f9; 164 } 165 166 .toggle button { 167 display: inline-flex; 168 align-items: center; 169 gap: 8px; 170 min-height: 40px; 171 padding: 0 18px; 172 border-radius: 999px; 173 border: 0; 174 background: transparent; 175 color: var(--muted); 176 font-family: inherit; 177 font-size: 15px; 178 font-weight: 500; 179 cursor: pointer; 180 transition: background 160ms ease, color 160ms ease; 181 } 182 183 .toggle button.isActive { 184 background: #ffffff; 185 color: var(--ink); 186 box-shadow: 0 1px 3px rgba(23, 32, 51, 0.12); 187 } 188 189 .saveTag { 190 font-size: 12px; 191 font-weight: 700; 192 letter-spacing: 0.01em; 193 color: #fff; 194 background: var(--blue); 195 padding: 2px 8px; 196 border-radius: 999px; 197 } 198 199 /* Two panels side by side: plan cards (left) + included features (right) */ 200 .pricingMain { 201 display: grid; 202 grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); 203 gap: 18px; 204 align-items: start; 205 } 206 207 /* Selectable plan cards */ 208 .cards { 209 display: grid; 210 grid-template-columns: 1fr 1fr; 211 gap: 14px; 212 } 213 214 .planCard { 215 position: relative; 216 display: grid; 217 gap: 10px; 218 padding: 22px 22px 22px 54px; 219 text-align: left; 220 border: 1.5px solid var(--line); 221 border-radius: 20px; 222 background: #fff; 223 cursor: pointer; 224 transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease; 225 } 226 227 .planCard:hover { 228 border-color: var(--line-strong); 229 } 230 231 .planCard.isSelected { 232 border-color: var(--blue); 233 background: rgba(40, 105, 254, 0.045); 234 box-shadow: inset 0 0 0 1px var(--blue); 235 } 236 237 .planCard:focus-visible { 238 outline: 3px solid var(--glow); 239 outline-offset: 2px; 240 } 241 242 .planTick { 243 position: absolute; 244 left: 20px; 245 top: 24px; 246 width: 22px; 247 height: 22px; 248 border-radius: 50%; 249 border: 2px solid var(--line-strong); 250 background: #fff; 251 display: grid; 252 place-items: center; 253 transition: border-color 150ms ease, background 150ms ease; 254 } 255 256 .planTick svg { 257 width: 13px; 258 height: 13px; 259 opacity: 0; 260 transition: opacity 120ms ease; 261 } 262 263 .planCard.isSelected .planTick { 264 border-color: var(--blue); 265 background: var(--blue); 266 } 267 268 .planCard.isSelected .planTick svg { 269 opacity: 1; 270 } 271 272 .planTop { 273 display: flex; 274 align-items: center; 275 gap: 10px; 276 flex-wrap: wrap; 277 } 278 279 .planName { 280 font-size: 1.25rem; 281 font-weight: 600; 282 line-height: 1; 283 } 284 285 .planTag { 286 font-size: 11px; 287 font-weight: 700; 288 text-transform: uppercase; 289 letter-spacing: 0.06em; 290 color: var(--blue); 291 background: rgba(40, 105, 254, 0.12); 292 padding: 3px 9px; 293 border-radius: 999px; 294 } 295 296 .planTag[data-tone="current"] { 297 color: var(--good); 298 background: var(--good-soft); 299 } 300 301 .planScale { 302 color: var(--ink); 303 font-size: 16.5px; 304 font-weight: 600; 305 line-height: 1.3; 306 letter-spacing: -0.01em; 307 } 308 309 .planPriceRow { 310 display: flex; 311 align-items: baseline; 312 gap: 6px; 313 margin-top: 2px; 314 } 315 316 .planPriceRow .priceBig { 317 font-size: 2.3rem; 318 line-height: 0.9; 319 font-weight: 600; 320 letter-spacing: -0.02em; 321 } 322 323 .planPriceRow .priceSuffix { 324 color: var(--muted); 325 font-size: 14px; 326 } 327 328 .trialPrice { 329 display: flex; 330 align-items: baseline; 331 gap: 8px; 332 flex-wrap: wrap; 333 } 334 335 .trialPrice .priceBig { 336 font-size: 2.3rem; 337 line-height: 0.9; 338 font-weight: 600; 339 letter-spacing: -0.02em; 340 } 341 342 .trialLead { 343 color: var(--good); 344 font-size: 14px; 345 font-weight: 600; 346 } 347 348 .trialAfter { 349 color: var(--muted); 350 font-size: 13px; 351 } 352 353 .trialAfter strong { 354 color: var(--ink); 355 font-weight: 700; 356 } 357 358 /* Included-in-every-plan box (shown once, not repeated per card) */ 359 .includedBox { 360 border: 1px dashed var(--line-strong); 361 border-radius: 20px; 362 padding: 22px 24px; 363 background: #fbfcfd; 364 height: 100%; 365 } 366 367 .includedTitle { 368 display: block; 369 font-size: 13px; 370 font-weight: 700; 371 letter-spacing: 0.08em; 372 text-transform: uppercase; 373 color: var(--muted); 374 margin-bottom: 16px; 375 } 376 377 .includedGrid { 378 list-style: none; 379 margin: 0; 380 padding: 0; 381 display: grid; 382 grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); 383 gap: 12px 28px; 384 } 385 386 .includedGrid li { 387 display: flex; 388 align-items: center; 389 gap: 11px; 390 color: var(--ink); 391 font-size: 15.5px; 392 line-height: 1.3; 393 } 394 395 .includedGrid svg { 396 flex: 0 0 auto;
397 width: 20px; 398 height: 20px; 399 } 400 401 .includedGrid img { 402 flex: 0 0 auto; 403 height: 24px; 404 width: auto; 405 max-width: 30px; 406 object-fit: contain; 407 } 408 409 /* Single conversion CTA â sticky to the bottom of the viewport */ 410 .ctaRow { 411 position: sticky; 412 bottom: 14px; 413 z-index: 6; 414 display: grid; 415 gap: 8px; 416 margin-top: 4px; 417 padding: 12px; 418 border-radius: 18px; 419 background: rgba(255, 255, 255, 0.92); 420 backdrop-filter: blur(12px); 421 border: 0; 422 box-shadow: 0 10px 30px -12px rgba(23, 32, 51, 0.18); 423 } 424 425 .ctaButton { 426 width: 100%; 427 min-height: 60px; 428 font-size: 18px; 429 font-weight: 600; 430 } 431 432 /* Busy is NOT the same as disabled. A greyed-out button reads as "broken" 433 to someone who just clicked it, which is the exact complaint this state 434 exists to fix â so keep full contrast and show motion instead. */ 435 .ctaButton.isBusy, 436 .ctaButton.isBusy:disabled { 437 opacity: 1; 438 cursor: progress; 439 } 440 441 .ctaSpinner { 442 display: inline-block; 443 width: 16px; 444 height: 16px; 445 margin-right: 9px; 446 vertical-align: -3px; 447 border: 2px solid rgba(255, 255, 255, 0.35); 448 border-top-color: #ffffff; 449 border-radius: 50%; 450 animation: ctaSpin 0.7s linear infinite; 451 } 452 453 @keyframes ctaSpin { 454 to { transform: rotate(360deg); } 455 } 456 457 @media (prefers-reduced-motion: reduce) { 458 .ctaSpinner { animation-duration: 2.4s; } 459 } 460 461 .ctaMeta { 462 display: flex; 463 align-items: center; 464 justify-content: center; 465 gap: 6px; 466 flex-wrap: wrap; 467 color: var(--muted); 468 font-size: 13.5px; 469 text-align: center; 470 } 471 472 .yearlyHint { 473 border: 0; 474 background: transparent; 475 color: var(--blue); 476 font-family: inherit; 477 font-size: 13.5px; 478 font-weight: 600; 479 cursor: pointer; 480 padding: 0; 481 } 482 483 .yearlyHint[hidden] { 484 display: none; 485 } 486 487 .statusBar { 488 display: none; 489 margin-top: 18px; 490 padding: 14px 16px; 491 border-radius: 22px; 492 border: 1px solid var(--line); 493 background: rgba(255, 255, 255, 0.9); 494 } 495 496 .statusBar.isVisible { 497 display: grid; 498 gap: 4px; 499 } 500 501 .statusBar strong { 502 font-size: 14px; 503 } 504 505 .statusBar span { 506 color: var(--muted); 507 font-size: 14px; 508 line-height: 1.45; 509 } 510 511 .statusBar[data-tone="warn"] { 512 background: var(--warn-soft); 513 border-color: rgba(181, 71, 8, 0.14); 514 } 515 516 .statusBar[data-tone="good"] { 517 background: var(--good-soft); 518 border-color: rgba(6, 118, 71, 0.14); 519 } 520 521 .logoTickerSection { 522 padding: 40px 0 64px; 523 } 524 525 .logoTickerWrap { 526 width: 100%; 527 max-width: 1280px; 528 margin: 0 auto; 529 overflow: hidden; 530 -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); 531 mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); 532 } 533 534 .logoTickerTrack { 535 display: flex; 536 align-items: center; 537 gap: 10px; 538 width: max-content; 539 min-width: max-content; 540 animation: pricingLogoTicker 26s linear infinite; 541 } 542 543 .logoTickerWrap:hover .logoTickerTrack { 544 animation-play-state: paused; 545 } 546 547 .logoTickerItem { 548 width: 104px; 549 height: 104px; 550 flex: 0 0 104px; 551 border-radius: 10px; 552 overflow: hidden; 553 background: #ffffff; 554 } 555 556 .logoTickerItem img { 557 display: block; 558 width: 100%; 559 height: 100%; 560 object-fit: cover; 561 } 562 563 @keyframes pricingLogoTicker { 564 from { 565 transform: translate3d(0, 0, 0); 566 } 567 568 to { 569 transform: translate3d(calc(-50% - 5px), 0, 0); 570 } 571 } 572 573 @media (max-width: 920px) { 574 .pricingMain { 575 grid-template-columns: 1fr; 576 } 577 } 578 579 @media (max-width: 640px) { 580 .pricingPanel { 581 padding: 18px; 582 } 583 584 .pricingHead { 585 justify-content: center; 586 text-align: center; 587 } 588 589 .cards { 590 grid-template-columns: 1fr; 591 } 592 593 .includedGrid { 594 grid-template-columns: 1fr; 595 } 596 597 .logoTickerSection { 598 padding: 28px 0 48px; 599 } 600 601 .logoTickerItem { 602 width: 84px; 603 height: 84px; 604 flex-basis: 84px; 605 } 606 } 607 </style> 608</head> 609<body> 610 <div class="backdrop"></div> 611 <main class="shell"> 612 <header class="scNav" data-site-nav> 613 <nav class="scNavBar" aria-label="Main"> 614 <a class="scNavBrand" href="/" aria-label="SocialClaw"> 615 <img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/socialclaw-new-icon.png" alt="" width="26" height="26">
616 <span>SocialClaw</span> 617 </a> 618 619 <div class="scNavItems"> 620 <div class="scNavGroup" data-nav-group="product"> 621 <button class="scNavItem" type="button" aria-expanded="false" aria-controls="scNavPanel-product"> 622 <span class="scNavItemIcon"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" aria-hidden="true"><rect x="3" y="3" width="8" height="8" rx="2" stroke="currentColor" stroke-width="1.6"/><rect x="13" y="3" width="8" height="8" rx="2" stroke="currentColor" stroke-width="1.6"/><rect x="3" y="13" width="8" height="8" rx="2" stroke="currentColor" stroke-width="1.6"/><rect x="13" y="13" width="8" height="8" rx="2" stroke="currentColor" stroke-width="1.6"/></svg></span>Product<svg class="scNavChev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 623 </button> 624 <div class="scNavPanel scNavPanel-product" id="scNavPanel-product" role="region" aria-label="Product" hidden> 625 <div class="scNavPanelGlass"> 626 <div class="scNavPanelBody scNavPanelBody-lists"> 627 <div class="scNavCol"> 628 <span class="scNavColLabel">Explore</span> 629 <a class="scNavRow" href="/viral-video-generator"> 630 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/video.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 631 <span class="scNavRowText"> 632 <span class="scNavRowTitle">Viral video generator</span> 633 <span class="scNavRowNote">AI-edited UGC promo videos from your app</span> 634 </span> 635 </a> 636 <a class="scNavRow" href="/ugc-marketplace"> 637 <span class="scNavRowIcon scNavRowIconRaw"><span class="scNavStack" aria-hidden="true"><img src="/ui/ugc-nav-1.jpg" alt="" width="16" height="21" loading="lazy" decoding="async"><img src="/ui/ugc-nav-2.jpg" alt="" width="16" height="21" loading="lazy" decoding="async"><img src="/ui/ugc-nav-3.jpg" alt="" width="16" height="21" loading="lazy" decoding="async"></span></span> 638 <span class="scNavRowText"> 639 <span class="scNavRowTitle">UGC creator marketplace</span> 640 <span class="scNavRowNote">Real human clips in reusable packs</span> 641 </span> 642 </a> 643 <a class="scNavRow" href="/social-media-scheduler"> 644 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/calendar.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 645 <span class="scNavRowText"> 646 <span class="scNavRowTitle">Scheduler</span> 647 <span class="scNavRowNote">Plan and queue posts across 11 networks</span> 648 </span> 649 </a> 650 <a class="scNavRow" href="/ai-social-media-scheduler"> 651 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/aichat.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 652 <span class="scNavRowText"> 653 <span class="scNavRowTitle">AI scheduler</span> 654 <span class="scNavRowNote">Let an agent pick the slots and write the copy</span> 655 </span> 656 </a> 657 <a class="scNavRow" href="/social-media-management"> 658 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/accounts.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 659 <span class="scNavRowText"> 660 <span class="scNavRowTitle">Management</span> 661 <span class="scNavRowNote">Accounts, assets, and approvals in one workspace</span> 662 </span> 663 </a> 664 </div> 665 <div class="scNavCol"> 666 <span class="scNavColLabel">Create</span> 667 <a class="scNavRow" href="/social-media-management">
668 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/video.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 669 <span class="scNavRowText"> 670 <span class="scNavRowTitle">Media studio</span> 671 <span class="scNavRowNote">Generate video, voice, and images in-app</span> 672 </span> 673 </a> 674 <a class="scNavRow" href="/social-media-management"> 675 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/Analytics.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 676 <span class="scNavRowText"> 677 <span class="scNavRowTitle">Analytics</span> 678 <span class="scNavRowNote">Reach and engagement per account</span> 679 </span> 680 </a> 681 <a class="scNavRow" href="/workflows"> 682 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/agentskills.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 683 <span class="scNavRowText"> 684 <span class="scNavRowTitle">Workflows</span> 685 <span class="scNavRowNote">Repeatable posting routines</span> 686 </span> 687 </a> 688 </div> 689 <div class="scNavCol"> 690 <span class="scNavColLabel">Free tools</span> 691 <a class="scNavRow scNavRowBare" href="/tools/instagram-caption-generator"> 692 <span class="scNavRowText"> 693 <span class="scNavRowTitle">Instagram caption generator</span> 694 695 </span> 696 </a> 697 <a class="scNavRow scNavRowBare" href="/tools/linkedin-post-generator"> 698 <span class="scNavRowText"> 699 <span class="scNavRowTitle">LinkedIn post generator</span> 700 701 </span> 702 </a> 703 <a class="scNavRow scNavRowBare" href="/tools/best-time-to-post-calculator"> 704 <span class="scNavRowText"> 705 <span class="scNavRowTitle">Best time to post</span> 706 707 </span> 708 </a> 709 <a class="scNavRow scNavRowBare" href="/tools/schedule-validator"> 710 <span class="scNavRowText"> 711 <span class="scNavRowTitle">Schedule validator</span> 712 713 </span> 714 </a> 715 </div> 716 </div> 717 <a class="scNavCallout" href="/instagram"> 718 <span class="scNavCalloutBadge">New</span><span class="scNavCalloutText">Schedule Instagram posts from Claude, Codex, or your own code</span> 719 <span class="scNavCalloutCta">Instagram</span> 720 </a> 721 </div> 722 </div> 723 </div> 724 <div class="scNavGroup" data-nav-group="platforms"> 725 <button class="scNavItem" type="button" aria-expanded="false" aria-controls="scNavPanel-platforms"> 726 <span class="scNavItemIcon"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" aria-hidden="true"><circle cx="12" cy="12" r="9" stroke="currentColor" stroke-width="1.6"/><path d="M3 12h18M12 3c2.8 2.6 4.2 5.8 4.2 9s-1.4 6.4-4.2 9c-2.8-2.6-4.2-5.8-4.2-9s1.4-6.4 4.2-9Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span>Platforms<svg class="scNavChev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 727 </button> 728 <div class="scNavPanel scNavPanel-platforms" id="scNavPanel-platforms" role="region" aria-label="Platforms" hidden> 729 <div class="scNavPanelGlass"> 730 <div class="scNavPanelBody scNavPanelBody-platforms"> 731 <div class="scNavCol scNavColWide"> 732 <span class="scNavColLabel">All platforms</span> 733 <div class="scNavPlatformGrid"> 734 <a class="scNavPlatform" href="/instagram"> 735 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/instagram.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span>
736 <span class="scNavRowTitle">Instagram</span> 737 </a> 738 <a class="scNavPlatform" href="/tiktok"> 739 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/tiktok.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 740 <span class="scNavRowTitle">TikTok</span> 741 </a> 742 <a class="scNavPlatform" href="/x"> 743 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/x.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 744 <span class="scNavRowTitle">X</span> 745 </a> 746 <a class="scNavPlatform" href="/linkedin"> 747 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/linkedin.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 748 <span class="scNavRowTitle">LinkedIn</span> 749 </a> 750 <a class="scNavPlatform" href="/facebook"> 751 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/facebook.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 752 <span class="scNavRowTitle">Facebook</span> 753 </a> 754 <a class="scNavPlatform" href="/youtube"> 755 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/youtube.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 756 <span class="scNavRowTitle">YouTube</span> 757 </a> 758 <a class="scNavPlatform" href="/reddit"> 759 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/reddit.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 760 <span class="scNavRowTitle">Reddit</span> 761 </a> 762 <a class="scNavPlatform" href="/discord"> 763 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/discord.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 764 <span class="scNavRowTitle">Discord</span> 765 </a> 766 <a class="scNavPlatform" href="/telegram"> 767 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/telegram.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 768 <span class="scNavRowTitle">Telegram</span> 769 </a> 770 <a class="scNavPlatform" href="/wordpress"> 771 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/wordpress.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 772 <span class="scNavRowTitle">WordPress</span> 773 </a> 774 <a class="scNavPlatform" href="/pinterest"> 775 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/pinterest.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 776 <span class="scNavRowTitle">Pinterest</span> 777 </a> 778 <a class="scNavPlatform" href="/snapchat"> 779 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/snapchat.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 780 <span class="scNavRowTitle">Snapchat</span> 781 </a> 782 </div> 783 </div><div class="scNavCol"> 784 <span class="scNavColLabel">Popular</span> 785 <a class="scNavRow scNavRowBare" href="/schedule-instagram-posts"> 786 <span class="scNavRowText"> 787 <span class="scNavRowTitle">Schedule Instagram posts</span> 788 <span class="scNavRowNote">Feed, reels, and stories</span> 789 </span> 790 </a> 791 <a class="scNavRow scNavRowBare" href="/linkedin-post-scheduler">
792 <span class="scNavRowText"> 793 <span class="scNavRowTitle">LinkedIn post scheduler</span> 794 <span class="scNavRowNote">Profiles and company pages</span> 795 </span> 796 </a> 797 <a class="scNavRow scNavRowBare" href="/best-time-to-post-on-instagram"> 798 <span class="scNavRowText"> 799 <span class="scNavRowTitle">Best time to post on Instagram</span> 800 801 </span> 802 </a> 803 <a class="scNavRow scNavRowBare" href="/best-time-to-post-on-tiktok"> 804 <span class="scNavRowText"> 805 <span class="scNavRowTitle">Best time to post on TikTok</span> 806 807 </span> 808 </a> 809 </div> 810 </div> 811 <a class="scNavCallout" href="/integrations"> 812 <span class="scNavCalloutText">Every network, one API and one schedule</span> 813 <span class="scNavCalloutCta">All integrations</span> 814 </a> 815 </div> 816 </div> 817 </div> 818 <div class="scNavGroup" data-nav-group="developers"> 819 <button class="scNavItem" type="button" aria-expanded="false" aria-controls="scNavPanel-developers"> 820 <span class="scNavItemIcon"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="3" stroke="currentColor" stroke-width="1.6"/><path d="m8 10 3 3-3 3M13 16h4" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg></span>Developers<svg class="scNavChev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 821 </button> 822 <div class="scNavPanel scNavPanel-developers" id="scNavPanel-developers" role="region" aria-label="Developers" hidden> 823 <div class="scNavPanelGlass"> 824 <div class="scNavPanelBody scNavPanelBody-cards"> 825 <div class="scNavCards"> 826 <a class="scNavCard scNavCard-img" href="/social-media-scheduling-api" style="background-image: url('https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/platform/spokes/spoke-api-v2.webp')" data-watermark="API"> 827 <img class="scNavCardIcon" src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/api.svg" alt="" width="26" height="26" loading="lazy" decoding="async"> 828 <span class="scNavCardTitle">API</span> 829 <span class="scNavCardNote">Validate and apply schedules over REST</span> 830 </a> 831 <a class="scNavCard scNavCard-img" href="/mcp" style="background-image: url('https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/platform/spokes/spoke-mcp-v2.webp')" data-watermark="MCP"> 832 <img class="scNavCardIcon" src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/mcp.svg" alt="" width="26" height="26" loading="lazy" decoding="async"> 833 <span class="scNavCardTitle">MCP</span> 834 <span class="scNavCardNote">18 tools for Claude, ChatGPT, and Cursor</span> 835 </a> 836 <a class="scNavCard scNavCard-img" href="/social-media-cli" style="background-image: url('https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/platform/spokes/spoke-cli-v2.webp')" data-watermark="CLI"> 837 <img class="scNavCardIcon" src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/cli.svg" alt="" width="26" height="26" loading="lazy" decoding="async"> 838 <span class="scNavCardTitle">CLI</span> 839 <span class="scNavCardNote">Post from your terminal or from CI</span> 840 </a> 841 </div><div class="scNavCol"> 842 <span class="scNavColLabel">AI clients</span> 843 <a class="scNavRow" href="/claude-social-media-integration"> 844 <span class="scNavRowIcon"><img src="/ui/agent-icons/claude.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 845 <span class="scNavRowText">
846 <span class="scNavRowTitle">Claude</span> 847 <span class="scNavRowNote">Desktop, web, and Claude Code</span> 848 </span> 849 </a> 850 <a class="scNavRow" href="/chatgpt-social-media-integration"> 851 <span class="scNavRowIcon"><img src="/ui/agent-icons/chatgpt.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 852 <span class="scNavRowText"> 853 <span class="scNavRowTitle">ChatGPT</span> 854 <span class="scNavRowNote">Connect via the hosted MCP server</span> 855 </span> 856 </a> 857 <a class="scNavRow" href="/codex-social-media-integration"> 858 <span class="scNavRowIcon"><img src="/ui/agent-icons/codex.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 859 <span class="scNavRowText"> 860 <span class="scNavRowTitle">Codex</span> 861 <span class="scNavRowNote">OpenAI's coding agent</span> 862 </span> 863 </a> 864 <a class="scNavRow" href="/ai-agent"> 865 <span class="scNavRowIcon"><img src="/ui/agent-icons/openclaw.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 866 <span class="scNavRowText"> 867 <span class="scNavRowTitle">OpenClaw</span> 868 <span class="scNavRowNote">Run the skill in your own agent</span> 869 </span> 870 </a> 871 </div> 872 </div> 873 <a class="scNavCallout" href="/docs"> 874 <span class="scNavCalloutText scNavCalloutMono">npm install -g socialclaw</span> 875 <span class="scNavCalloutCta">Documentation</span> 876 </a> 877 </div> 878 </div> 879 </div> 880 <div class="scNavGroup" data-nav-group="resources"> 881 <button class="scNavItem" type="button" aria-expanded="false" aria-controls="scNavPanel-resources"> 882 <span class="scNavItemIcon"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M4 5.5C4 4.7 4.7 4 5.5 4H12v16H5.5A1.5 1.5 0 0 1 4 18.5v-13Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><path d="M20 5.5c0-.8-.7-1.5-1.5-1.5H12v16h6.5a1.5 1.5 0 0 0 1.5-1.5v-13Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span>Resources<svg class="scNavChev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 883 </button> 884 <div class="scNavPanel scNavPanel-resources" id="scNavPanel-resources" role="region" aria-label="Resources" hidden> 885 <div class="scNavPanelGlass"> 886 <div class="scNavPanelBody scNavPanelBody-lists"> 887 <div class="scNavCol"> 888 <span class="scNavColLabel">Learn</span> 889 <a class="scNavRow" href="/blog"> 890 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/blog.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 891 <span class="scNavRowText"> 892 <span class="scNavRowTitle">Blog</span> 893 <span class="scNavRowNote">Guides, teardowns, and release notes</span> 894 </span> 895 </a> 896 <a class="scNavRow" href="/changelog"> 897 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/changelog.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 898 <span class="scNavRowText"> 899 <span class="scNavRowTitle">Changelog</span> 900 <span class="scNavRowNote">What shipped, and when</span> 901 </span> 902 </a> 903 <a class="scNavRow" href="/use-cases"> 904 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/usecases.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 905 <span class="scNavRowText">
906 <span class="scNavRowTitle">Use cases</span> 907 <span class="scNavRowNote">How teams run their posting</span> 908 </span> 909 </a> 910 </div> 911 <div class="scNavCol"> 912 <span class="scNavColLabel">Compare</span> 913 <a class="scNavRow scNavRowBare" href="/compare/postiz"> 914 <span class="scNavRowText"> 915 <span class="scNavRowTitle">SocialClaw vs Postiz</span> 916 917 </span> 918 </a> 919 <a class="scNavRow scNavRowBare" href="/compare/buffer"> 920 <span class="scNavRowText"> 921 <span class="scNavRowTitle">SocialClaw vs Buffer</span> 922 923 </span> 924 </a> 925 <a class="scNavRow scNavRowBare" href="/compare/hootsuite"> 926 <span class="scNavRowText"> 927 <span class="scNavRowTitle">SocialClaw vs Hootsuite</span> 928 929 </span> 930 </a> 931 <a class="scNavRow scNavRowBare" href="/compare/later"> 932 <span class="scNavRowText"> 933 <span class="scNavRowTitle">SocialClaw vs Later</span> 934 935 </span> 936 </a> 937 <a class="scNavRow scNavRowBare" href="/compare"> 938 <span class="scNavRowText"> 939 <span class="scNavRowTitle">All comparisons</span> 940 941 </span> 942 </a> 943 </div> 944 <div class="scNavCol"> 945 <span class="scNavColLabel">Alternatives</span> 946 <a class="scNavRow scNavRowBare" href="/postiz-alternatives"> 947 <span class="scNavRowText"> 948 <span class="scNavRowTitle">Postiz alternatives</span> 949 950 </span> 951 </a> 952 <a class="scNavRow scNavRowBare" href="/buffer-alternatives"> 953 <span class="scNavRowText"> 954 <span class="scNavRowTitle">Buffer alternatives</span> 955 956 </span> 957 </a> 958 <a class="scNavRow scNavRowBare" href="/hootsuite-alternatives"> 959 <span class="scNavRowText"> 960 <span class="scNavRowTitle">Hootsuite alternatives</span> 961 962 </span> 963 </a> 964 <a class="scNavRow scNavRowBare" href="/later-alternatives"> 965 <span class="scNavRowText"> 966 <span class="scNavRowTitle">Later alternatives</span> 967 968 </span> 969 </a> 970 <a class="scNavRow scNavRowBare" href="/metricool-alternatives"> 971 <span class="scNavRowText"> 972 <span class="scNavRowTitle">Metricool alternatives</span> 973 974 </span> 975 </a> 976 </div> 977 </div> 978 979 </div> 980 </div> 981 </div> 982 <a class="scNavItem scNavItemPlain" href="/pricing"><span class="scNavItemIcon"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M11.5 3H5.8A2.8 2.8 0 0 0 3 5.8v5.7c0 .5.2 1 .6 1.4l8.5 8.5c.8.8 2 .8 2.8 0l5.7-5.7c.8-.8.8-2 0-2.8l-8.5-8.5c-.4-.4-.9-.6-1.4-.6Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="8.3" cy="8.3" r="1.3" stroke="currentColor" stroke-width="1.6"/></svg></span>Pricing</a> 983 </div> 984 985 <div class="scNavActions"> 986 <button 987 class="scNavNpm" 988 type="button" 989 data-copy-install 990 data-copy-text="npm install -g socialclaw" 991 data-copy-success="Copied!" 992 data-copy-failure="Copy failed" 993 title="Copy npm install -g socialclaw" 994 ><span data-copy-install-label>npm i -g socialclaw</span></button> 995 <!-- No "Start free" here â every page already has that CTA in the hero 996 and again mid-page, so the bar just needs the way back in. --> 997 <a class="scNavCta" href="/sign-in?next=%2Fdashboard"> 998 <span class="scNavCtaShine" aria-hidden="true"></span> 999 <span class="scNavCtaLabel">Log in</span> 1000 </a> 1001 </div> 1002 1003 <button class="scNavBurger" type="button" aria-expanded="false" aria-controls="scNavDrawer" aria-label="Menu">
1004 <span></span><span></span> 1005 </button> 1006 </nav> 1007 1008 <div class="scNavDrawer" id="scNavDrawer" hidden> 1009 <div class="scNavAcc" data-nav-acc="product"> 1010 <button class="scNavAccHead" type="button" aria-expanded="false" aria-controls="scNavAccBody-product"> 1011 <span><span class="scNavItemIcon"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" aria-hidden="true"><rect x="3" y="3" width="8" height="8" rx="2" stroke="currentColor" stroke-width="1.6"/><rect x="13" y="3" width="8" height="8" rx="2" stroke="currentColor" stroke-width="1.6"/><rect x="3" y="13" width="8" height="8" rx="2" stroke="currentColor" stroke-width="1.6"/><rect x="13" y="13" width="8" height="8" rx="2" stroke="currentColor" stroke-width="1.6"/></svg></span>Product</span> 1012 <svg class="scNavChev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 1013 </button> 1014 <div class="scNavAccBody" id="scNavAccBody-product" hidden> 1015 <div class="scNavPanelBody scNavPanelBody-lists"> 1016 <div class="scNavCol"> 1017 <span class="scNavColLabel">Explore</span> 1018 <a class="scNavRow" href="/viral-video-generator"> 1019 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/video.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1020 <span class="scNavRowText"> 1021 <span class="scNavRowTitle">Viral video generator</span> 1022 <span class="scNavRowNote">AI-edited UGC promo videos from your app</span> 1023 </span> 1024 </a> 1025 <a class="scNavRow" href="/ugc-marketplace"> 1026 <span class="scNavRowIcon scNavRowIconRaw"><span class="scNavStack" aria-hidden="true"><img src="/ui/ugc-nav-1.jpg" alt="" width="16" height="21" loading="lazy" decoding="async"><img src="/ui/ugc-nav-2.jpg" alt="" width="16" height="21" loading="lazy" decoding="async"><img src="/ui/ugc-nav-3.jpg" alt="" width="16" height="21" loading="lazy" decoding="async"></span></span> 1027 <span class="scNavRowText"> 1028 <span class="scNavRowTitle">UGC creator marketplace</span> 1029 <span class="scNavRowNote">Real human clips in reusable packs</span> 1030 </span> 1031 </a> 1032 <a class="scNavRow" href="/social-media-scheduler"> 1033 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/calendar.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1034 <span class="scNavRowText"> 1035 <span class="scNavRowTitle">Scheduler</span> 1036 <span class="scNavRowNote">Plan and queue posts across 11 networks</span> 1037 </span> 1038 </a> 1039 <a class="scNavRow" href="/ai-social-media-scheduler"> 1040 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/aichat.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1041 <span class="scNavRowText"> 1042 <span class="scNavRowTitle">AI scheduler</span> 1043 <span class="scNavRowNote">Let an agent pick the slots and write the copy</span> 1044 </span> 1045 </a> 1046 <a class="scNavRow" href="/social-media-management"> 1047 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/accounts.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1048 <span class="scNavRowText"> 1049 <span class="scNavRowTitle">Management</span> 1050 <span class="scNavRowNote">Accounts, assets, and approvals in one workspace</span> 1051 </span> 1052 </a> 1053 </div> 1054 <div class="scNavCol"> 1055 <span class="scNavColLabel">Create</span> 1056 <a class="scNavRow" href="/social-media-management">
1057 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/video.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1058 <span class="scNavRowText"> 1059 <span class="scNavRowTitle">Media studio</span> 1060 <span class="scNavRowNote">Generate video, voice, and images in-app</span> 1061 </span> 1062 </a> 1063 <a class="scNavRow" href="/social-media-management"> 1064 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/Analytics.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1065 <span class="scNavRowText"> 1066 <span class="scNavRowTitle">Analytics</span> 1067 <span class="scNavRowNote">Reach and engagement per account</span> 1068 </span> 1069 </a> 1070 <a class="scNavRow" href="/workflows"> 1071 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/agentskills.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1072 <span class="scNavRowText"> 1073 <span class="scNavRowTitle">Workflows</span> 1074 <span class="scNavRowNote">Repeatable posting routines</span> 1075 </span> 1076 </a> 1077 </div> 1078 <div class="scNavCol"> 1079 <span class="scNavColLabel">Free tools</span> 1080 <a class="scNavRow scNavRowBare" href="/tools/instagram-caption-generator"> 1081 <span class="scNavRowText"> 1082 <span class="scNavRowTitle">Instagram caption generator</span> 1083 1084 </span> 1085 </a> 1086 <a class="scNavRow scNavRowBare" href="/tools/linkedin-post-generator"> 1087 <span class="scNavRowText"> 1088 <span class="scNavRowTitle">LinkedIn post generator</span> 1089 1090 </span> 1091 </a> 1092 <a class="scNavRow scNavRowBare" href="/tools/best-time-to-post-calculator"> 1093 <span class="scNavRowText"> 1094 <span class="scNavRowTitle">Best time to post</span> 1095 1096 </span> 1097 </a> 1098 <a class="scNavRow scNavRowBare" href="/tools/schedule-validator"> 1099 <span class="scNavRowText"> 1100 <span class="scNavRowTitle">Schedule validator</span> 1101 1102 </span> 1103 </a> 1104 </div> 1105 </div> 1106 <a class="scNavCallout" href="/instagram"> 1107 <span class="scNavCalloutBadge">New</span><span class="scNavCalloutText">Schedule Instagram posts from Claude, Codex, or your own code</span> 1108 <span class="scNavCalloutCta">Instagram</span> 1109 </a> 1110 </div> 1111 </div> 1112 <div class="scNavAcc" data-nav-acc="platforms"> 1113 <button class="scNavAccHead" type="button" aria-expanded="false" aria-controls="scNavAccBody-platforms"> 1114 <span><span class="scNavItemIcon"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" aria-hidden="true"><circle cx="12" cy="12" r="9" stroke="currentColor" stroke-width="1.6"/><path d="M3 12h18M12 3c2.8 2.6 4.2 5.8 4.2 9s-1.4 6.4-4.2 9c-2.8-2.6-4.2-5.8-4.2-9s1.4-6.4 4.2-9Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span>Platforms</span> 1115 <svg class="scNavChev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 1116 </button> 1117 <div class="scNavAccBody" id="scNavAccBody-platforms" hidden> 1118 <div class="scNavPanelBody scNavPanelBody-platforms"> 1119 <div class="scNavCol scNavColWide"> 1120 <span class="scNavColLabel">All platforms</span> 1121 <div class="scNavPlatformGrid"> 1122 <a class="scNavPlatform" href="/instagram"> 1123 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/instagram.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span>
1124 <span class="scNavRowTitle">Instagram</span> 1125 </a> 1126 <a class="scNavPlatform" href="/tiktok"> 1127 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/tiktok.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1128 <span class="scNavRowTitle">TikTok</span> 1129 </a> 1130 <a class="scNavPlatform" href="/x"> 1131 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/x.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1132 <span class="scNavRowTitle">X</span> 1133 </a> 1134 <a class="scNavPlatform" href="/linkedin"> 1135 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/linkedin.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1136 <span class="scNavRowTitle">LinkedIn</span> 1137 </a> 1138 <a class="scNavPlatform" href="/facebook"> 1139 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/facebook.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1140 <span class="scNavRowTitle">Facebook</span> 1141 </a> 1142 <a class="scNavPlatform" href="/youtube"> 1143 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/youtube.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1144 <span class="scNavRowTitle">YouTube</span> 1145 </a> 1146 <a class="scNavPlatform" href="/reddit"> 1147 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/reddit.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1148 <span class="scNavRowTitle">Reddit</span> 1149 </a> 1150 <a class="scNavPlatform" href="/discord"> 1151 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/discord.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1152 <span class="scNavRowTitle">Discord</span> 1153 </a> 1154 <a class="scNavPlatform" href="/telegram"> 1155 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/telegram.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1156 <span class="scNavRowTitle">Telegram</span> 1157 </a> 1158 <a class="scNavPlatform" href="/wordpress"> 1159 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/wordpress.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1160 <span class="scNavRowTitle">WordPress</span> 1161 </a> 1162 <a class="scNavPlatform" href="/pinterest"> 1163 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/pinterest.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1164 <span class="scNavRowTitle">Pinterest</span> 1165 </a> 1166 <a class="scNavPlatform" href="/snapchat"> 1167 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/snapchat.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1168 <span class="scNavRowTitle">Snapchat</span> 1169 </a> 1170 </div> 1171 </div><div class="scNavCol"> 1172 <span class="scNavColLabel">Popular</span> 1173 <a class="scNavRow scNavRowBare" href="/schedule-instagram-posts"> 1174 <span class="scNavRowText"> 1175 <span class="scNavRowTitle">Schedule Instagram posts</span> 1176 <span class="scNavRowNote">Feed, reels, and stories</span> 1177 </span> 1178 </a> 1179 <a class="scNavRow scNavRowBare" href="/linkedin-post-scheduler">
1180 <span class="scNavRowText"> 1181 <span class="scNavRowTitle">LinkedIn post scheduler</span> 1182 <span class="scNavRowNote">Profiles and company pages</span> 1183 </span> 1184 </a> 1185 <a class="scNavRow scNavRowBare" href="/best-time-to-post-on-instagram"> 1186 <span class="scNavRowText"> 1187 <span class="scNavRowTitle">Best time to post on Instagram</span> 1188 1189 </span> 1190 </a> 1191 <a class="scNavRow scNavRowBare" href="/best-time-to-post-on-tiktok"> 1192 <span class="scNavRowText"> 1193 <span class="scNavRowTitle">Best time to post on TikTok</span> 1194 1195 </span> 1196 </a> 1197 </div> 1198 </div> 1199 <a class="scNavCallout" href="/integrations"> 1200 <span class="scNavCalloutText">Every network, one API and one schedule</span> 1201 <span class="scNavCalloutCta">All integrations</span> 1202 </a> 1203 </div> 1204 </div> 1205 <div class="scNavAcc" data-nav-acc="developers"> 1206 <button class="scNavAccHead" type="button" aria-expanded="false" aria-controls="scNavAccBody-developers"> 1207 <span><span class="scNavItemIcon"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="3" stroke="currentColor" stroke-width="1.6"/><path d="m8 10 3 3-3 3M13 16h4" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg></span>Developers</span> 1208 <svg class="scNavChev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 1209 </button> 1210 <div class="scNavAccBody" id="scNavAccBody-developers" hidden> 1211 <div class="scNavPanelBody scNavPanelBody-cards"> 1212 <div class="scNavCards"> 1213 <a class="scNavCard scNavCard-img" href="/social-media-scheduling-api" style="background-image: url('https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/platform/spokes/spoke-api-v2.webp')" data-watermark="API"> 1214 <img class="scNavCardIcon" src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/api.svg" alt="" width="26" height="26" loading="lazy" decoding="async"> 1215 <span class="scNavCardTitle">API</span> 1216 <span class="scNavCardNote">Validate and apply schedules over REST</span> 1217 </a> 1218 <a class="scNavCard scNavCard-img" href="/mcp" style="background-image: url('https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/platform/spokes/spoke-mcp-v2.webp')" data-watermark="MCP"> 1219 <img class="scNavCardIcon" src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/mcp.svg" alt="" width="26" height="26" loading="lazy" decoding="async"> 1220 <span class="scNavCardTitle">MCP</span> 1221 <span class="scNavCardNote">18 tools for Claude, ChatGPT, and Cursor</span> 1222 </a> 1223 <a class="scNavCard scNavCard-img" href="/social-media-cli" style="background-image: url('https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/platform/spokes/spoke-cli-v2.webp')" data-watermark="CLI"> 1224 <img class="scNavCardIcon" src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/cli.svg" alt="" width="26" height="26" loading="lazy" decoding="async"> 1225 <span class="scNavCardTitle">CLI</span> 1226 <span class="scNavCardNote">Post from your terminal or from CI</span> 1227 </a> 1228 </div><div class="scNavCol"> 1229 <span class="scNavColLabel">AI clients</span> 1230 <a class="scNavRow" href="/claude-social-media-integration"> 1231 <span class="scNavRowIcon"><img src="/ui/agent-icons/claude.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1232 <span class="scNavRowText"> 1233 <span class="scNavRowTitle">Claude</span> 1234 <span class="scNavRowNote">
1234Desktop, web, and Claude Code</span> 1235 </span> 1236 </a> 1237 <a class="scNavRow" href="/chatgpt-social-media-integration"> 1238 <span class="scNavRowIcon"><img src="/ui/agent-icons/chatgpt.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1239 <span class="scNavRowText"> 1240 <span class="scNavRowTitle">ChatGPT</span> 1241 <span class="scNavRowNote">Connect via the hosted MCP server</span> 1242 </span> 1243 </a> 1244 <a class="scNavRow" href="/codex-social-media-integration"> 1245 <span class="scNavRowIcon"><img src="/ui/agent-icons/codex.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1246 <span class="scNavRowText"> 1247 <span class="scNavRowTitle">Codex</span> 1248 <span class="scNavRowNote">OpenAI's coding agent</span> 1249 </span> 1250 </a> 1251 <a class="scNavRow" href="/ai-agent"> 1252 <span class="scNavRowIcon"><img src="/ui/agent-icons/openclaw.png" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1253 <span class="scNavRowText"> 1254 <span class="scNavRowTitle">OpenClaw</span> 1255 <span class="scNavRowNote">Run the skill in your own agent</span> 1256 </span> 1257 </a> 1258 </div> 1259 </div> 1260 <a class="scNavCallout" href="/docs"> 1261 <span class="scNavCalloutText scNavCalloutMono">npm install -g socialclaw</span> 1262 <span class="scNavCalloutCta">Documentation</span> 1263 </a> 1264 </div> 1265 </div> 1266 <div class="scNavAcc" data-nav-acc="resources"> 1267 <button class="scNavAccHead" type="button" aria-expanded="false" aria-controls="scNavAccBody-resources"> 1268 <span><span class="scNavItemIcon"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M4 5.5C4 4.7 4.7 4 5.5 4H12v16H5.5A1.5 1.5 0 0 1 4 18.5v-13Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><path d="M20 5.5c0-.8-.7-1.5-1.5-1.5H12v16h6.5a1.5 1.5 0 0 0 1.5-1.5v-13Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/></svg></span>Resources</span> 1269 <svg class="scNavChev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 1270 </button> 1271 <div class="scNavAccBody" id="scNavAccBody-resources" hidden> 1272 <div class="scNavPanelBody scNavPanelBody-lists"> 1273 <div class="scNavCol"> 1274 <span class="scNavColLabel">Learn</span> 1275 <a class="scNavRow" href="/blog"> 1276 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/blog.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1277 <span class="scNavRowText"> 1278 <span class="scNavRowTitle">Blog</span> 1279 <span class="scNavRowNote">Guides, teardowns, and release notes</span> 1280 </span> 1281 </a> 1282 <a class="scNavRow" href="/changelog"> 1283 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/changelog.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1284 <span class="scNavRowText"> 1285 <span class="scNavRowTitle">Changelog</span> 1286 <span class="scNavRowNote">What shipped, and when</span> 1287 </span> 1288 </a> 1289 <a class="scNavRow" href="/use-cases"> 1290 <span class="scNavRowIcon"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/usecases.svg" alt="" width="20" height="20" loading="lazy" decoding="async"></span> 1291 <span class="scNavRowText"> 1292 <span class="scNavRowTitle">Use cases</span> 1293 <span class="scNavRowNote">How teams run their posting</span> 1294 </span> 1295 </a> 1296 </div> 1297 <div class="scNavCol">
1298 <span class="scNavColLabel">Compare</span> 1299 <a class="scNavRow scNavRowBare" href="/compare/postiz"> 1300 <span class="scNavRowText"> 1301 <span class="scNavRowTitle">SocialClaw vs Postiz</span> 1302 1303 </span> 1304 </a> 1305 <a class="scNavRow scNavRowBare" href="/compare/buffer"> 1306 <span class="scNavRowText"> 1307 <span class="scNavRowTitle">SocialClaw vs Buffer</span> 1308 1309 </span> 1310 </a> 1311 <a class="scNavRow scNavRowBare" href="/compare/hootsuite"> 1312 <span class="scNavRowText"> 1313 <span class="scNavRowTitle">SocialClaw vs Hootsuite</span> 1314 1315 </span> 1316 </a> 1317 <a class="scNavRow scNavRowBare" href="/compare/later"> 1318 <span class="scNavRowText"> 1319 <span class="scNavRowTitle">SocialClaw vs Later</span> 1320 1321 </span> 1322 </a> 1323 <a class="scNavRow scNavRowBare" href="/compare"> 1324 <span class="scNavRowText"> 1325 <span class="scNavRowTitle">All comparisons</span> 1326 1327 </span> 1328 </a> 1329 </div> 1330 <div class="scNavCol"> 1331 <span class="scNavColLabel">Alternatives</span> 1332 <a class="scNavRow scNavRowBare" href="/postiz-alternatives"> 1333 <span class="scNavRowText"> 1334 <span class="scNavRowTitle">Postiz alternatives</span> 1335 1336 </span> 1337 </a> 1338 <a class="scNavRow scNavRowBare" href="/buffer-alternatives"> 1339 <span class="scNavRowText"> 1340 <span class="scNavRowTitle">Buffer alternatives</span> 1341 1342 </span> 1343 </a> 1344 <a class="scNavRow scNavRowBare" href="/hootsuite-alternatives"> 1345 <span class="scNavRowText"> 1346 <span class="scNavRowTitle">Hootsuite alternatives</span> 1347 1348 </span> 1349 </a> 1350 <a class="scNavRow scNavRowBare" href="/later-alternatives"> 1351 <span class="scNavRowText"> 1352 <span class="scNavRowTitle">Later alternatives</span> 1353 1354 </span> 1355 </a> 1356 <a class="scNavRow scNavRowBare" href="/metricool-alternatives"> 1357 <span class="scNavRowText"> 1358 <span class="scNavRowTitle">Metricool alternatives</span> 1359 1360 </span> 1361 </a> 1362 </div> 1363 </div> 1364 1365 </div> 1366 </div> 1367 <a class="scNavDrawerTop" href="/pricing"><span class="scNavItemIcon"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M11.5 3H5.8A2.8 2.8 0 0 0 3 5.8v5.7c0 .5.2 1 .6 1.4l8.5 8.5c.8.8 2 .8 2.8 0l5.7-5.7c.8-.8.8-2 0-2.8l-8.5-8.5c-.4-.4-.9-.6-1.4-.6Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/><circle cx="8.3" cy="8.3" r="1.3" stroke="currentColor" stroke-width="1.6"/></svg></span>Pricing</a> 1368 <div class="scNavDrawerActions"> 1369 <a class="scNavCta" href="/sign-in?next=%2Fdashboard"> 1370 <span class="scNavCtaShine" aria-hidden="true"></span> 1371 <span class="scNavCtaLabel">Log in</span> 1372 </a> 1373 </div> 1374 </div> 1375 </header> 1376 1377 <section id="pricingStatus" class="statusBar" aria-live="polite"></section> 1378 1379 <section class="panel pricingPanel"> 1380 <div class="pricingPanelInner"> 1381 <div class="pricingHead"> 1382 <div> 1383 <h1 class="pricingHeading">Choose your plan</h1> 1384 <p class="pricingSub">Start free for 7 days. Cancel anytime.</p> 1385 </div> 1386 <div class="toggle" role="group" aria-label="Billing interval"> 1387 <button id="billingMonthly" class="isActive" type="button">Monthly</button> 1388 <button id="billingYearly" type="button">Yearly <span class="saveTag">Save 20%</span></button> 1389 </div> 1390 </div> 1391 1392 <div class="pricingMain"> 1393 <section class="cards" role="radiogroup" aria-label="Cho
1393ose a plan"> 1394 <article class="planCard" data-plan-card="starter" data-plan-name="Starter" role="radio" tabindex="0" aria-checked="false"> 1395 <span class="planTick" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none"><path d="M5 12.5l4 4L19 7" stroke="#fff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 1396 <div class="planTop"><span class="planName">Starter</span></div> 1397 <div class="planScale">3 accounts · 200 posts / month</div> 1398 <div class="trialPrice"> 1399 <span class="priceBig">$0</span> 1400 <span class="trialLead">Free for 7 days</span> 1401 <span class="trialAfter" data-monthly-after="then <strong>$15</strong>/mo" data-yearly-after="then <strong>$10</strong>/mo billed yearly">then <strong>$15</strong>/mo</span> 1402 </div> 1403 </article> 1404 1405 <article class="planCard" data-plan-card="startup" data-plan-name="Startup" role="radio" tabindex="0" aria-checked="false"> 1406 <span class="planTick" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none"><path d="M5 12.5l4 4L19 7" stroke="#fff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 1407 <div class="planTop"><span class="planName">Startup</span></div> 1408 <div class="planScale">6 accounts · 400 posts / month</div> 1409 <div class="planPriceRow"> 1410 <span class="priceBig" data-monthly="29" data-yearly="19">$29</span> 1411 <span class="priceSuffix" data-price-suffix>/ month</span> 1412 </div> 1413 </article> 1414 1415 <article class="planCard" data-plan-card="plus" data-plan-name="Plus" role="radio" tabindex="0" aria-checked="false"> 1416 <span class="planTick" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none"><path d="M5 12.5l4 4L19 7" stroke="#fff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 1417 <div class="planTop"><span class="planName">Plus</span><span class="planTag" data-plan-tag>Most popular</span></div> 1418 <div class="planScale">20 accounts · 1,000 posts / month</div> 1419 <div class="planPriceRow"> 1420 <span class="priceBig" data-monthly="67" data-yearly="49">$67</span> 1421 <span class="priceSuffix" data-price-suffix>/ month</span> 1422 </div> 1423 </article> 1424 1425 <article class="planCard" data-plan-card="pro" data-plan-name="Pro" role="radio" tabindex="0" aria-checked="false"> 1426 <span class="planTick" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none"><path d="M5 12.5l4 4L19 7" stroke="#fff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 1427 <div class="planTop"><span class="planName">Pro</span></div> 1428 <div class="planScale">50 accounts · 2,500 posts / month</div> 1429 <div class="planPriceRow"> 1430 <span class="priceBig" data-monthly="99" data-yearly="80">$99</span> 1431 <span class="priceSuffix" data-price-suffix>/ month</span> 1432 </div> 1433 </article> 1434 </section> 1435 1436 <div class="includedBox"> 1437 <span class="includedTitle">Included in every plan</span> 1438 <ul class="includedGrid"> 1439 <li><img src="/ui/pricing-icons/agents.png" alt="" aria-hidden="true" />CLI & agent skills</li> 1440 <li><img src="/ui/pricing-icons/api.png" alt="" aria-hidden="true" />Hosted workspace API</li> 1441 <li><img src="/ui/pricing-icons/cloud.png" alt="" aria-hidden="true" />Media storage included</li> 1442 </ul> 1443 </div> 1444 </div> 1445 1446 <div class="ctaRow"> 1447 <button class="primaryButton ctaButton" type="button" id="planCta">Continue with Plus</button> 1448 <p id="resumeNote" class="ctaMeta" hidden></p> 1449 <div class="ctaMeta"> 1450 <button class="yearlyHint" type="button" id="yearlyHint">Save 20% by switching to yearly billing</button> 1451 </div> 1452 </div> 1453 </div> 1454 </section> 1455 1456 <section class="logoTickerSection" aria-label="Supported publisher and agent ecosystems"> 1457 <div class="logoTickerWrap"> 1458 <div class="logoTickerTrack"> 1459 <div class="logoTickerItem"><img src="/ai-agent/assets/images/ynYWk8WViMHEFOFrhuc5s6Uk4--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1460 <div class="logoTickerItem"><img src="/ai-agent/assets/images/olHOplK69vWPpiwnwGzsgPO46r4--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1461 <div class="logoTickerItem"><img src="/ai-agent/assets/images/NW5hgMVyvCsbd39oOX9JsTxPTg--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1462 <div class="logoTickerItem"><img src="/ai-agent/assets/images/SdgTMwTPTw80SRjnYhxwsx9JERw--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1463 <div class="logoTickerItem"><img src="/ai-agent/assets/images/AbyKvu9Ua60C924WhwuMgI1sjxA--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1464 <div class="logoTickerItem"><img src="/ai-agent/assets/images/rnPOnoMto5Odpw0YUQ4K2ok0QDM--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1465 <div class="logoTickerItem"><img src="/ai-agent/assets/images/QPq8Tl5FxIrx5cUvS0AkOaPk--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1466 <div class="logoTickerItem"><img src="/ai-agent/assets/images/der9w9nQ8sICEBZQMnfZmqxKR8--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1467 <div class="logoTickerItem"><img src="/ai-agent/assets/images/kzUvZXKhzQzuSOvwp5q1dczGE--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1468 <div class="logoTickerItem"><img src="/ai-agent/assets/images/PccVjkoQ0XyjGbinfMBbG8z0NrI--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1469 <div class="logoTickerItem"><img src="/ai-agent/assets/images/wbLzW2xzoM7UrF4lZKt2DVmM4--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1470 <div class="logoTickerItem"><img src="/ai-agent/assets/images/k6azspIsIdhz7Or29ysVai6M3c--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1471 <div class="logoTickerItem"><img src="/ai-agent/assets/images/CYqZvESFsoAwQqdIgPxPwLcagFA--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1472 <div class="logoTickerItem"><img src="/ai-agent/assets/images/ynYWk8WViMHEFOFrhuc5s6Uk4--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1473 <div class="logoTickerItem"><img src="/ai-agent/assets/images/olHOplK69vWPpiwnwGzsgPO46r4--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1474 <div class="logoTickerItem"><img src="/ai-agent/assets/images/NW5hgMVyvCsbd39oOX9JsTxPTg--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1475 <div class="logoTickerItem"><img src="/ai-agent/assets/images/SdgTMwTPTw80SRjnYhxwsx9JERw--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1476 <div class="logoTickerItem"><img src="/ai-agent/assets/images/AbyKvu9Ua60C924WhwuMgI1sjxA--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1477 <div class="logoTickerItem"><img src="/ai-agent/assets/images/rnPOnoMto5Odpw0YUQ4K2ok0QDM--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1478 <div class="logoTickerItem"><img src="/ai-agent/assets/images/QPq8Tl5FxIrx5cUvS0AkOaPk--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1479 <div class="logoTickerItem"><img src="/ai-agent/assets/images/der9w9nQ8sICEBZQMnfZmqxKR8--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1480 <div class="logoTickerItem"><img src="/ai-agent/assets/images/kzUvZXKhzQzuSOvwp5q1dczGE--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1481 <div class="logoTickerItem"><img src="/ai-agent/assets/images/PccVjkoQ0XyjGbinfMBbG8z0NrI--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1482 <div class="logoTickerItem"><img src="/ai-agent/assets/images/wbLzW2xzoM7UrF4lZKt2DVmM4--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1483 <div class="logoTickerItem"><img src="/ai-agent/assets/images/k6azspIsIdhz7Or29ysVai6M3c--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1484 <div class="logoTickerItem"><img src="/ai-agent/assets/images/CYqZvESFsoAwQqdIgPxPwLcagFA--7428a38ad2.png" alt="" aria-hidden="true" /></div> 1485 </div> 1486 </div> 1487 </section> 1488 </main> 1489 1490 <footer class="sc-footer2"> 1491 <canvas class="sc-footer2-rays" aria-hidden="true"></canvas> 1492 <div class="sc-sec-inner sc-footer2-inner"> 1493 <div class="sc-footer2-cta"> 1494 <img class="sc-footer2-cta-claw" src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/claw-left-2.png" alt="" aria-hidden="true"> 1495 <div class="sc-footer2-cta-center"> 1496 <h2>Ready to grow<br>your socials?</h2> 1497 <a class="sc-hero-start-free" href="/sign-up?next=%2Fdashboard">Start free</a> 1498 </div> 1499 <img class="sc-footer2-cta-socials" loading="lazy" src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/socialicons-2.webp" alt="Supported social platforms" width="820" height="770"> 1500 </div> 1501 <div class="sc-footer2-grid"> 1502 <div class="sc-footer2-col">
1503 <span class="sc-footer2-label">Platforms</span> 1504 <div class="sc-footer2-platform"> 1505 <button class="sc-footer2-platform-toggle" type="button" aria-expanded="false"> 1506 <span class="sc-footer2-platform-name"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/instagram.png" alt="" width="14" height="14" loading="lazy" decoding="async">Instagram</span> 1507 <svg class="sc-footer2-platform-chev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 1508 </button> 1509 <div class="sc-footer2-platform-body" hidden> 1510 <a href="/instagram">Overview</a> 1511 <a href="/instagram/api">API</a> 1512 <a href="/instagram/mcp">MCP</a> 1513 <a href="/instagram/cli">CLI</a> 1514 </div> 1515 </div> 1516 <div class="sc-footer2-platform"> 1517 <button class="sc-footer2-platform-toggle" type="button" aria-expanded="false"> 1518 <span class="sc-footer2-platform-name"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/tiktok.png" alt="" width="14" height="14" loading="lazy" decoding="async">TikTok</span> 1519 <svg class="sc-footer2-platform-chev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 1520 </button> 1521 <div class="sc-footer2-platform-body" hidden> 1522 <a href="/tiktok">Overview</a> 1523 <a href="/tiktok/api">API</a> 1524 <a href="/tiktok/mcp">MCP</a> 1525 <a href="/tiktok/cli">CLI</a> 1526 </div> 1527 </div> 1528 <div class="sc-footer2-platform"> 1529 <button class="sc-footer2-platform-toggle" type="button" aria-expanded="false"> 1530 <span class="sc-footer2-platform-name"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/x.png" alt="" width="14" height="14" loading="lazy" decoding="async">X</span> 1531 <svg class="sc-footer2-platform-chev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 1532 </button> 1533 <div class="sc-footer2-platform-body" hidden> 1534 <a href="/x">Overview</a> 1535 <a href="/x/api">API</a> 1536 <a href="/x/mcp">MCP</a> 1537 <a href="/x/cli">CLI</a> 1538 </div> 1539 </div> 1540 <div class="sc-footer2-platform"> 1541 <button class="sc-footer2-platform-toggle" type="button" aria-expanded="false"> 1542 <span class="sc-footer2-platform-name"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/linkedin.png" alt="" width="14" height="14" loading="lazy" decoding="async">LinkedIn</span> 1543 <svg class="sc-footer2-platform-chev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 1544 </button> 1545 <div class="sc-footer2-platform-body" hidden> 1546 <a href="/linkedin">Overview</a> 1547 <a href="/linkedin/api">API</a> 1548 <a href="/linkedin/mcp">MCP</a> 1549 <a href="/linkedin/cli">CLI</a> 1550 </div> 1551 </div> 1552 <div class="sc-footer2-platform"> 1553 <button class="sc-footer2-platform-toggle" type="button" aria-expanded="false"> 1554 <span class="sc-footer2-platform-name"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/facebook.png" alt="" width="14" height="14" loading="lazy" decoding="async">Facebook</span> 1555 <svg class="sc-footer2-platform-chev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 1556 </button> 1557 <div class="sc-footer2-platform-body" hidden> 1558 <a href="/facebook">Overview</a> 1559 <a href="/facebook/api">API</a> 1560 <a href="/facebook/mcp">MCP</a> 1561 <a href="/facebook/cli">CLI</a> 1562 </div> 1563 </div> 1564 <div class="sc-footer2-platform"> 1565 <button class="sc-footer2-platform-toggle" type="button" aria-expanded="false">
1566 <span class="sc-footer2-platform-name"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/youtube.png" alt="" width="14" height="14" loading="lazy" decoding="async">YouTube</span> 1567 <svg class="sc-footer2-platform-chev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 1568 </button> 1569 <div class="sc-footer2-platform-body" hidden> 1570 <a href="/youtube">Overview</a> 1571 <a href="/youtube/api">API</a> 1572 <a href="/youtube/mcp">MCP</a> 1573 <a href="/youtube/cli">CLI</a> 1574 </div> 1575 </div> 1576 <div class="sc-footer2-platform"> 1577 <button class="sc-footer2-platform-toggle" type="button" aria-expanded="false"> 1578 <span class="sc-footer2-platform-name"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/reddit.png" alt="" width="14" height="14" loading="lazy" decoding="async">Reddit</span> 1579 <svg class="sc-footer2-platform-chev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 1580 </button> 1581 <div class="sc-footer2-platform-body" hidden> 1582 <a href="/reddit">Overview</a> 1583 <a href="/reddit/api">API</a> 1584 <a href="/reddit/mcp">MCP</a> 1585 <a href="/reddit/cli">CLI</a> 1586 </div> 1587 </div> 1588 <div class="sc-footer2-platform"> 1589 <button class="sc-footer2-platform-toggle" type="button" aria-expanded="false"> 1590 <span class="sc-footer2-platform-name"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/discord.png" alt="" width="14" height="14" loading="lazy" decoding="async">Discord</span> 1591 <svg class="sc-footer2-platform-chev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 1592 </button> 1593 <div class="sc-footer2-platform-body" hidden> 1594 <a href="/discord">Overview</a> 1595 <a href="/discord/api">API</a> 1596 <a href="/discord/mcp">MCP</a> 1597 <a href="/discord/cli">CLI</a> 1598 </div> 1599 </div> 1600 <div class="sc-footer2-platform"> 1601 <button class="sc-footer2-platform-toggle" type="button" aria-expanded="false"> 1602 <span class="sc-footer2-platform-name"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/telegram.png" alt="" width="14" height="14" loading="lazy" decoding="async">Telegram</span> 1603 <svg class="sc-footer2-platform-chev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 1604 </button> 1605 <div class="sc-footer2-platform-body" hidden> 1606 <a href="/telegram">Overview</a> 1607 <a href="/telegram/api">API</a> 1608 <a href="/telegram/mcp">MCP</a> 1609 <a href="/telegram/cli">CLI</a> 1610 </div> 1611 </div> 1612 <div class="sc-footer2-platform"> 1613 <button class="sc-footer2-platform-toggle" type="button" aria-expanded="false"> 1614 <span class="sc-footer2-platform-name"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/wordpress.png" alt="" width="14" height="14" loading="lazy" decoding="async">WordPress</span> 1615 <svg class="sc-footer2-platform-chev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 1616 </button> 1617 <div class="sc-footer2-platform-body" hidden> 1618 <a href="/wordpress">Overview</a> 1619 <a href="/wordpress/api">API</a> 1620 <a href="/wordpress/mcp">MCP</a> 1621 <a href="/wordpress/cli">CLI</a> 1622 </div> 1623 </div> 1624 <div class="sc-footer2-platform"> 1625 <button class="sc-footer2-platform-toggle" type="button" aria-expanded="false">
1626 <span class="sc-footer2-platform-name"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/pinterest.png" alt="" width="14" height="14" loading="lazy" decoding="async">Pinterest</span> 1627 <svg class="sc-footer2-platform-chev" width="10" height="10" viewBox="0 0 10 10" aria-hidden="true"><path d="M2 3.8 5 6.6l3-2.8" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> 1628 </button> 1629 <div class="sc-footer2-platform-body" hidden> 1630 <a href="/pinterest">Overview</a> 1631 <a href="/pinterest/api">API</a> 1632 <a href="/pinterest/mcp">MCP</a> 1633 <a href="/pinterest/cli">CLI</a> 1634 </div> 1635 </div> 1636 <a class="sc-footer2-platform-link" href="/snapchat"><img src="https://d3a8s0fssi8mjd.cloudfront.net/cdn/ui/redesign/social/glyph/snapchat.png" alt="" width="14" height="14" loading="lazy" decoding="async">Snapchat</a> 1637 </div> 1638 <div class="sc-footer2-col"> 1639 <span class="sc-footer2-label">Developers</span> 1640 <a href="/docs">Documentation</a> 1641 <a href="/docs/api">API</a> 1642 <a href="/mcp">MCP server</a> 1643 <a href="/social-media-cli">CLI</a> 1644 <a href="https://github.com/ndesv21/socialclaw" target="_blank" rel="noopener">GitHub</a> 1645 <a href="https://www.npmjs.com/package/socialclaw" target="_blank" rel="noopener">npm</a> 1646 </div> 1647 <div class="sc-footer2-col"> 1648 <span class="sc-footer2-label">AI clients</span> 1649 <a href="/claude-social-media-integration">Claude</a> 1650 <a href="/claude-code-social-media-integration">Claude Code</a> 1651 <a href="/chatgpt-social-media-integration">ChatGPT</a> 1652 <a href="/codex-social-media-integration">Codex</a> 1653 <a href="/cursor-social-media-integration">Cursor</a> 1654 <a href="/n8n-social-media-automation">n8n</a> 1655 <a href="/zapier-social-media-automation">Zapier</a> 1656 <a href="/make-social-media-automation">Make</a> 1657 </div> 1658 <div class="sc-footer2-col"> 1659 <span class="sc-footer2-label">Product</span> 1660 <a href="/pricing">Pricing</a> 1661 <a href="/agentic-social-media-scheduler">Agentic scheduler</a> 1662 <a href="/viral-video-generator">Viral video generator</a> 1663 <a href="/ugc-marketplace">UGC creator marketplace</a> 1664 <a href="/integrations">Integrations</a> 1665 <a href="/use-cases">Use cases</a> 1666 <a href="/workflows">Workflows</a> 1667 <a href="/changelog">Changelog</a> 1668 </div> 1669 <div class="sc-footer2-col"> 1670 <span class="sc-footer2-label">Compare</span> 1671 <a href="/compare/postiz">vs Postiz</a> 1672 <a href="/compare/buffer">vs Buffer</a> 1673 <a href="/compare/hootsuite">vs Hootsuite</a> 1674 <a href="/compare/later">vs Later</a> 1675 <a href="/compare/publer">vs Publer</a> 1676 <a href="/compare/socialbee">vs SocialBee</a> 1677 <a href="/compare/ayrshare">vs Ayrshare</a> 1678 <a href="/compare">All comparisons</a> 1679 </div> 1680 <div class="sc-footer2-col"> 1681 <span class="sc-footer2-label">Alternatives</span> 1682 <a href="/postiz-alternatives">Postiz alternatives</a> 1683 <a href="/buffer-alternatives">Buffer alternatives</a> 1684 <a href="/hootsuite-alternatives">Hootsuite alternatives</a> 1685 <a href="/later-alternatives">Later alternatives</a> 1686 <a href="/metricool-alternatives">Metricool alternatives</a> 1687 <a href="/publer-alternatives">Publer alternatives</a> 1688 <a href="/ayrshare-alternatives">Ayrshare alternatives</a> 1689 <a href="/blotato-alternatives">Blotato alternatives</a> 1690 </div> 1691 <div class="sc-footer2-col"> 1692 <span class="sc-footer2-label">Free tools</span> 1693 <a href="/tools/instagram-caption-generator">Instagram caption generator</a> 1694 <a href="/tools/linkedin-post-generator">LinkedIn post generator</a> 1695 <a href="/tools/best-time-to-post-calculator">Best time to post</a> 1696 <a href="/tools/schedule-validator">Schedule validator</a> 1697 <a href="/tools/api-payload-validator">API payload validator</a> 1698 <a href="/best-time-to-post-on-instagram">Best time on Instagram</a> 1699 <a href="/best-time-to-post-on-tiktok">Best time on TikTok</a> 1700 </div> 1701 <div class="sc-footer2-col">
1702 <span class="sc-footer2-label">Resources</span> 1703 <a href="/blog">Blog</a> 1704 <a href="/changelog">Changelog</a> 1705 <a href="/docs/api">API reference</a> 1706 <a href="/llms.txt">llms.txt</a> 1707 </div> 1708 <div class="sc-footer2-col"> 1709 <span class="sc-footer2-label">Company</span> 1710 <a href="/about">About</a> 1711 <a href="/contact">Contact</a> 1712 <a href="/privacy">Privacy</a> 1713 <a href="/terms">Terms</a> 1714 <a href="/legal/data-deletion">Data deletion</a> 1715 </div> 1716 </div> 1717 <div class="sc-footer2-badges"><a class="sc-footer2-badge" href="https://findly.tools/socialclaw?utm_source=socialclaw" target="_blank" rel="noopener"><img src="/media/badges/findly-featured-dark.svg" alt="Featured on Findly.tools" height="44" loading="lazy"></a><a class="sc-footer2-badge" href="https://fazier.com/launches/getsocialclaw.com" target="_blank" rel="noopener"><img src="/media/badges/fazier-featured-dark.svg" alt="Fazier badge" height="44" loading="lazy"></a><a class="sc-footer2-badge" href="https://goodaitools.com/ai/getsocialclaw" target="_blank" rel="noopener"><img src="/media/badges/goodaitools-featured-dark.png" alt="Good AI Tools" height="44" loading="lazy"></a><a class="sc-footer2-badge" href="https://twelve.tools" target="_blank" rel="noopener"><img src="/media/badges/twelve-tools-featured-dark.svg" alt="Featured on Twelve Tools" height="44" loading="lazy"></a><a class="sc-footer2-badge" href="https://wired.business" target="_blank" rel="noopener"><img src="/media/badges/wired-business-featured-dark.svg" alt="Featured on Wired Business" height="44" loading="lazy"></a><a class="sc-footer2-badge" href="https://dang.ai" target="_blank" rel="dofollow noopener"><img src="/media/badges/dang-verified-dark.png" alt="Verified on DANG!" height="44" loading="lazy"></a><a class="sc-footer2-badge" href="https://kittylaunch.com/p/socialclaw?utm_source=badge" target="_blank" rel="noopener"><img src="/media/badges/kittylaunch-verified-dark.svg" alt="SocialClaw â Verified by KittyLaunch" height="44" loading="lazy"></a></div> 1718 <div class="sc-footer2-bottom"> 1719 <a class="sc-footer2-brand" href="/"> 1720 <img src="/branding/socialclaw-app-icon.png" alt="" width="24" height="24" loading="lazy" decoding="async"> 1721 <span>SocialClaw</span> 1722 </a> 1723 <span>© 2026 SocialClaw Inc.</span> 1724 <span>getsocialclaw.com</span> 1725 </div> 1726 </div> 1727 </footer> 1728 1729 1730
1730<script src="/ui/site-topbar.js"></script>
1730 1731
1731<script src="/ui/platform-page.js"></script>
1731 1732
1732<script src="/ui/support-widget.js"></script>
1732 1733
1733<script> 1734 const monthlyBtn = document.getElementById("billingMonthly"); 1735 const yearlyBtn = document.getElementById("billingYearly"); 1736 const priceEls = Array.from(document.querySelectorAll("[data-monthly][data-yearly]")); 1737 const suffixEls = Array.from(document.querySelectorAll("[data-price-suffix]")); 1738 const starterAfterEls = Array.from(document.querySelectorAll("[data-monthly-after][data-yearly-after]")); 1739 const navSessionLinks = Array.from(document.querySelectorAll( 1740 "[data-site-nav] .scNavActions .scNavCta, [data-site-nav] .scNavDrawerActions .scNavCta" 1741 )); 1742 const statusEl = document.getElementById("pricingStatus"); 1743 const planCards = Array.from(document.querySelectorAll("[data-plan-card]")); 1744 const cardByPlan = new Map(planCards.map((card) => [card.dataset.planCard, card])); 1745 const planCta = document.getElementById("planCta"); 1746 const yearlyHint = document.getElementById("yearlyHint"); 1747 const searchParams = new URLSearchParams(window.location.search); 1748 const state = { 1749 billingMode: "monthly", 1750 billingState: null, 1751 billingStatePromise: null, 1752 billingStateLoaded: false, 1753 signedOut: false, 1754 processingPoll: null, 1755 autoStarted: false, 1756 checkoutPending: false, 1757 selectedPlan: "plus" 1758 }; 1759 1760 function escapeHtml(value) { 1761 return String(value || "").replace(/[&<>\"']/g, (match) => ({ 1762 "&": "&", 1763 "<": "<", 1764 ">": ">", 1765 "\"": """, 1766 "'": "'" 1767 })[match]); 1768 } 1769 1770 function showStatus(tone, title, detail = "") { 1771 statusEl.dataset.tone = tone || "info"; 1772 statusEl.classList.add("isVisible"); 1773 statusEl.innerHTML = `<strong>${escapeHtml(title)}</strong><span>${escapeHtml(detail)}</span>`; 1774 } 1775 1776 function hideStatus() { 1777 statusEl.classList.remove("isVisible"); 1778 statusEl.innerHTML = ""; 1779 delete statusEl.dataset.tone; 1780 } 1781 1782 // Opening a checkout takes a few seconds: our API call, then Lemon Squeezy's 1783 // redirect, then their ~280KB page. Until this existed the button sat silent 1784 // for all of it, so buyers concluded it was broken and clicked again â and 1785 // every extra click minted another checkout (one person managed six). 1786 function setCheckoutPending(pending, label = "Starting checkout") { 1787 state.checkoutPending = Boolean(pending); 1788 if (!planCta) { 1789 return; 1790 } 1791 if (state.checkoutPending) { 1792 planCta.disabled = true; 1793 planCta.classList.add("isBusy"); 1794 planCta.setAttribute("aria-busy", "true"); 1795 planCta.innerHTML = `<span class="ctaSpinner" aria-hidden="true"></span>${escapeHtml(label)}`; 1796 return; 1797 } 1798 planCta.classList.remove("isBusy"); 1799 planCta.removeAttribute("aria-busy"); 1800 updateCta(); 1801 } 1802 1803 async function apiRequest(method, url, body) { 1804 const response = await fetch(url, { 1805 method, 1806 headers: body ? { "content-type": "application/json" } : undefined, 1807 body: body ? JSON.stringify(body) : undefined, 1808 credentials: "same-origin" 1809 }); 1810 1811 const raw = await response.text(); 1812 let payload = {}; 1813 try { 1814 payload = raw ? JSON.parse(raw) : {}; 1815 } catch { 1816 payload = { message: raw || `HTTP ${response.status}` }; 1817 } 1818 1819 if (!response.ok) { 1820 const error = new Error(payload?.message || `HTTP ${response.status}`); 1821 error.status = response.status; 1822 error.code = payload?.code || null; 1823 error.details = payload?.details || null; 1824 throw error; 1825 } 1826 1827 return payload; 1828 } 1829 1830 function applyBillingMode(mode) { 1831 const yearly = mode === "yearly"; 1832 state.billingMode = yearly ? "yearly" : "monthly"; 1833 monthlyBtn.classList.toggle("isActive", !yearly); 1834 yearlyBtn.classList.toggle("isActive", yearly); 1835 1836 for (const el of priceEls) { 1837 const next = yearly ? el.dataset.yearly : el.dataset.monthly; 1838 el.textContent = `$${next}`; 1839 } 1840 1841 for (const el of suffixEls) { 1842 el.textContent = yearly ? "/ month billed yearly" : "/ month"; 1843 } 1844 1845 for (const el of starterAfterEls) { 1846 el.innerHTML = yearly ? el.dataset.yearlyAfter : el.dataset.monthlyAfter; 1847 } 1848 1849 if (yearlyHint) { 1850 yearlyHint.hidden = yearly; 1851 } 1852 1853 renderPricingUi(); 1854 } 1855 1856 // SocialClaw creates the Lemon Squeezy checkout server-side and redirects to a 1857 // *.lemonsqueezy.com URL, so affiliate.js (which only rewrites on-page <a href> links) 1858 // never gets to tag it. Mirror that behavior here: read the ref affiliate.js stored in 1859 // the ls_aff_ref cookie and append it as aff_ref before we send the buyer to checkout. 1860 function withAffiliateRef(checkoutUrl) {
1861 try { 1862 // Only touch Lemon Squeezy checkout URLs, and never if a ref is already present. 1863 if (typeof checkoutUrl !== "string" || !/^https?:\/\/[^/]+\.lemonsqueezy\.com\b/i.test(checkoutUrl)) { 1864 return checkoutUrl; 1865 } 1866 if (/[?&]aff_ref=/.test(checkoutUrl)) { 1867 return checkoutUrl; 1868 } 1869 const match = document.cookie.match(/(?:^|;\s*)ls_aff_ref=([^;]+)/); 1870 const ref = match ? match[1] : ""; 1871 if (!ref) { 1872 return checkoutUrl; 1873 } 1874 // Append only â do NOT re-serialize existing params, so any signed/expiring 1875 // params already on the checkout URL stay byte-for-byte intact. 1876 const sep = checkoutUrl.indexOf("?") === -1 ? "?" : "&"; 1877 return checkoutUrl + sep + "aff_ref=" + encodeURIComponent(ref); 1878 } catch (err) { 1879 /* never block checkout on affiliate tagging â fall back to the untagged URL */ 1880 } 1881 return checkoutUrl; 1882 } 1883 1884 function getSignInRedirect(plan = null) { 1885 const redirectUrl = new URL("/pricing", window.location.origin); 1886 if (plan) { 1887 redirectUrl.searchParams.set("plan", plan); 1888 redirectUrl.searchParams.set("interval", state.billingMode); 1889 } 1890 return `/auth/google/start?redirect=${encodeURIComponent(`${redirectUrl.pathname}${redirectUrl.search}`)}`; 1891 } 1892 1893 async function openBillingAction(plan) { 1894 // One checkout at a time. Without this, a second click while the first 1895 // request is in flight creates a second Lemon Squeezy checkout. 1896 if (state.checkoutPending) { 1897 return; 1898 } 1899 1900 hideStatus(); 1901 // Claim the button BEFORE the first await, so the feedback is instant 1902 // rather than arriving with the response it is meant to cover. 1903 setCheckoutPending(true); 1904 // Paths that navigate away leave the button claimed: releasing it would 1905 // invite another click during the (visible, multi-second) page unload. 1906 let navigating = false; 1907 1908 try { 1909 // A click can land before the initial billing-state fetch resolves. Wait 1910 // for the in-flight load so "still loading" is never mistaken for 1911 // "signed out" (which is what used to bounce logged-in buyers to Google). 1912 if (!state.billingStateLoaded && state.billingStatePromise) { 1913 try { 1914 await state.billingStatePromise; 1915 } catch { 1916 /* fall through to the checks below */ 1917 } 1918 } 1919 1920 // A transient initial failure should not poison the page until refresh. 1921 // Retry once on the buyer's click, then continue directly to checkout if 1922 // the retry succeeds. 1923 if (!state.billingState && !state.signedOut) { 1924 try { 1925 state.billingStatePromise = loadBillingState(); 1926 await state.billingStatePromise; 1927 renderPricingUi(); 1928 } catch (error) { 1929 showStatus("warn", "Couldn't reach billing", error.message || "Please try again in a moment."); 1930 return; 1931 } 1932 } 1933 1934 if (!state.billingState) { 1935 if (state.signedOut) { 1936 // Confirmed signed out (401 from billing/state) â start sign-in. 1937 navigating = true; 1938 setCheckoutPending(true, "Taking you to sign in"); 1939 window.location.href = getSignInRedirect(plan); 1940 return; 1941 } 1942 // Billing state failed to load for some other reason â let the buyer 1943 // retry instead of bouncing them through a pointless Google round-trip. 1944 showStatus("warn", "Couldn't reach billing", "Please try again in a moment."); 1945 return; 1946 } 1947 1948 const billing = state.billingState.billing || {}; 1949 const workspace = state.billingState.workspace || {}; 1950 1951 if (Boolean(billing.canManage) && !workspace.cancelAtPeriodEnd) { 1952 // Existing subscriber. If they picked a DIFFERENT plan, send them to the 1953 // Lemon Squeezy plan picker (change_plan) instead of the generic portal 1954 // overview â otherwise their plan choice is silently dropped. 1955 const wantsPlanChange = plan && (plan !== workspace.plan || workspace.billingInterval !== state.billingMode); 1956 const payload = await apiRequest( 1957 "POST", 1958 "/v1/billing/manage", 1959 wantsPlanChange ? { intent: "change_plan" } : undefined 1960 ); 1961 if (wantsPlanChange) { 1962 showStatus("info", "Opening plan change", "Confirm the switch on the next screen. Your trial and remaining time carry over."); 1963 } 1964 navigating = true; 1965 setCheckoutPending(true, "Opening billing"); 1966 window.location.href = payload.url; 1967 return; 1968 } 1969 1970 const payload = await apiRequest("POST", "/v1/billing/checkout", { 1971 plan, 1972 billingInterval: state.billingMode 1973 }); 1974 1975 if (["manage", "resume"].includes(payload.mode) && payload.url) { 1976 navigating = true; 1977 setCheckoutPending(true, "Opening billing"); 1978 window.location.href = payload.url; 1979 return; 1980 } 1981 1982 if (!payload.url) { 1983 throw new Error("Billing checkout did not return a redirect URL"); 1984 } 1985 1986 navigating = true; 1987 setCheckoutPending(true, "Opening secure checkout"); 1988 showStatus("info", "Opening secure checkout", "Lemon Squeezy is loading. This can take a few seconds, so please do not refresh."); 1989 window.location.href = withAffiliateRef(payload.url); 1990 } finally { 1991 // Only hand the button back when the buyer is staying on this page. 1992 if (!navigating) { 1993 setCheckoutPending(false); 1994 } 1995 } 1996 } 1997 1998 function planDisplayName(plan) { 1999 return cardByPlan.get(plan)?.dataset.planName || plan; 2000 } 2001 2002 const PLAN_TIER_ORDER = ["starter", "startup", "plus", "pro"]; 2003 2004 function getPlanActionLabel(plan) { 2005 // Existing subscriber choosing a different plan = a change, not a new trial. 2006 const workspace = state.billingState?.workspace || null; 2007 const billing = state.billingState?.billing || null; 2008 const hasSub = Boolean(billing?.canManage && workspace); 2009 if (billing?.canResume && plan === workspace?.plan) return "Resume subscription"; 2010 if (workspace?.hasBillingSubscription && (workspace.cancelAtPeriodEnd || workspace.subscriptionStatus === "canceled")) { 2011 return `Resubscribe to ${planDisplayName(plan)}`; 2012 } 2013 if (hasSub && plan === workspace.plan && workspace.billingInterval !== state.billingMode) return "Change billing interval"; 2014 if (hasSub && plan !== workspace.plan) { 2015 const from = PLAN_TIER_ORDER.indexOf(workspace.plan); 2016 const to = PLAN_TIER_ORDER.indexOf(plan); 2017 const verb = from >= 0 && to >= 0 && to < from ? "Switch to" : "Upgrade to"; 2018 return `${verb} ${planDisplayName(plan)}`; 2019 } 2020 return plan === "starter" 2021 ? "Start 7-day free trial" 2022 : `Continue with ${planDisplayName(plan)}`; 2023 } 2024 2025 function selectPlan(plan) { 2026 if (!cardByPlan.has(plan)) { 2027 return; 2028 } 2029 state.selectedPlan = plan; 2030 for (const card of planCards) { 2031 const active = card.dataset.planCard === plan; 2032 card.classList.toggle("isSelected", active); 2033 card.setAttribute("aria-checked", active ? "true" : "false"); 2034 } 2035 updateCta(); 2036 } 2037 2038 function updateCta() { 2039 if (!planCta) { 2040 return; 2041 } 2042 // A billing-state refresh must never relabel a button that is mid-checkout; 2043 // setCheckoutPending(false) clears the flag before calling back in here. 2044 if (state.checkoutPending) { 2045 return; 2046 } 2047 const plan = state.selectedPlan; 2048 const workspace = state.billingState?.workspace || null; 2049 const billing = state.billingState?.billing || null; 2050 const signedIn = Boolean(workspace); 2051 const isCurrent = signedIn && workspace.plan === plan && ["trialing", "active"].includes(workspace.subscriptionStatus) && !workspace.cancelAtPeriodEnd && (!workspace.billingInterval || workspace.billingInterval === state.billingMode); 2052 2053 const resumeNote = document.getElementById("resumeNote"); 2054 const canResume = Boolean(billing?.canResume && workspace?.plan === plan); 2055 if (resumeNote) { 2056 resumeNote.hidden = !canResume; 2057 resumeNote.textContent = canResume ? `Resumes your existing ${workspace.billingInterval === "yearly" ? "yearly" : "monthly"} subscription. Confirm renewal in billing.` : ""; 2058 } 2059 planCta.disabled = false;
2060 2061 if (signedIn && state.billingState.billingAdmin === false) { 2062 planCta.textContent = "Only the workspace owner can change billing"; 2063 planCta.disabled = true; 2064 return; 2065 } 2066 if (signedIn && billing && !billing.configured) { 2067 planCta.textContent = "Billing unavailable"; 2068 planCta.disabled = true; 2069 return; 2070 } 2071 if (signedIn && billing && !billing.checkoutEnabled && !billing.canManage) { 2072 planCta.textContent = "Checkout unavailable"; 2073 planCta.disabled = true; 2074 return; 2075 } 2076 if (isCurrent) { 2077 planCta.textContent = "Current plan"; 2078 planCta.disabled = true; 2079 return; 2080 } 2081 planCta.textContent = getPlanActionLabel(plan); 2082 } 2083 2084 function renderPricingUi() { 2085 const workspace = state.billingState?.workspace || null; 2086 const signedIn = Boolean(workspace); 2087 for (const link of navSessionLinks) { 2088 link.href = signedIn ? "/dashboard" : getSignInRedirect(); 2089 const label = link.querySelector(".scNavCtaLabel"); 2090 if (label) { 2091 label.textContent = signedIn ? "Dashboard" : "Log in"; 2092 } 2093 } 2094 2095 for (const card of planCards) { 2096 const plan = card.dataset.planCard; 2097 const isCurrent = signedIn && workspace.plan === plan && ["trialing", "active"].includes(workspace.subscriptionStatus) && !workspace.cancelAtPeriodEnd && (!workspace.billingInterval || workspace.billingInterval === state.billingMode); 2098 let tag = card.querySelector("[data-plan-tag]"); 2099 2100 if (isCurrent) { 2101 if (!tag) { 2102 tag = document.createElement("span"); 2103 tag.className = "planTag"; 2104 tag.dataset.planTag = ""; 2105 card.querySelector(".planTop").appendChild(tag); 2106 } 2107 tag.textContent = "Current plan"; 2108 tag.dataset.tone = "current"; 2109 tag.hidden = false; 2110 } else if (tag && tag.dataset.tone === "current") { 2111 if (plan === "plus") { 2112 tag.textContent = "Most popular"; 2113 delete tag.dataset.tone; 2114 } else { 2115 tag.remove(); 2116 } 2117 } 2118 } 2119 2120 updateCta(); 2121 } 2122 2123 async function loadBillingState() { 2124 state.billingStateLoaded = false; 2125 try { 2126 const payload = await apiRequest("GET", "/v1/billing/state"); 2127 state.billingState = payload; 2128 state.signedOut = false; 2129 } catch (error) { 2130 // 401 = signed out; 404 = endpoint unreachable (e.g. static preview). 2131 // Treat both as "signed out" and render pricing for a logged-out visitor. 2132 // Any other error is a load failure, NOT proof of being signed out â we 2133 // must not send an authenticated buyer to sign-in because of it. 2134 if (error.status === 401 || error.status === 404) { 2135 state.billingState = null; 2136 state.signedOut = true; 2137 return; 2138 } 2139 throw error; 2140 } finally { 2141 state.billingStateLoaded = true; 2142 } 2143 } 2144 2145 async function pollForProcessing() { 2146 if (state.processingPoll) { 2147 window.clearInterval(state.processingPoll); 2148 state.processingPoll = null; 2149 } 2150 2151 showStatus("info", "Activating workspace", "Waiting for Lemon Squeezy to confirm the subscription and sync the workspace."); 2152 2153 let attempts = 0; 2154 state.processingPoll = window.setInterval(async () => { 2155 attempts += 1; 2156 try { 2157 await loadBillingState(); 2158 renderPricingUi(); 2159 const status = state.billingState?.workspace?.subscriptionStatus; 2160 if (status === "trialing" || status === "active") { 2161 window.clearInterval(state.processingPoll); 2162 state.processingPoll = null; 2163 showStatus("good", "Plan active", "Your workspace is ready. Redirecting to the dashboard."); 2164 window.setTimeout(() => { 2165 window.location.href = "/dashboard"; 2166 }, 900); 2167 return; 2168 } 2169 } catch (error) { 2170 showStatus("warn", "Billing sync delayed", error.message || "Refresh in a moment if this keeps happening."); 2171 } 2172 2173 if (attempts >= 20) { 2174 window.clearInterval(state.processingPoll); 2175 state.processingPoll = null; 2176 showStatus("warn", "Still syncing", "Checkout completed, but the billing webhook has not updated the workspace yet."); 2177 } 2178 }, 3000); 2179 } 2180 2181 async function maybeAutoStartFromQuery() { 2182 const plan = searchParams.get("plan"); 2183 const interval = searchParams.get("interval"); 2184 const processing = searchParams.get("billing") === "processing"; 2185 2186 if (interval === "yearly") { 2187 applyBillingMode("yearly"); 2188 } 2189 2190 if (plan) { 2191 selectPlan(plan); 2192 } 2193 2194 if (processing) { 2195 await pollForProcessing(); 2196 return; 2197 } 2198 2199 if (!plan || state.autoStarted || !state.billingState) { 2200 return; 2201 } 2202 2203 state.autoStarted = true; 2204 searchParams.delete("plan"); 2205 searchParams.delete("interval"); 2206 history.replaceState({}, "", searchParams.toString() ? `/pricing?${searchParams.toString()}` : "/pricing"); 2207 await openBillingAction(plan); 2208 } 2209 2210monthlyBtn.addEventListener("click", () => applyBillingMode("monthly")); 2211 yearlyBtn.addEventListener("click", () => applyBillingMode("yearly")); 2212 2213 for (const card of planCards) { 2214 card.addEventListener("click", () => selectPlan(card.dataset.planCard)); 2215 card.addEventListener("keydown", (event) => { 2216 if (event.key === "Enter" || event.key === " ") { 2217 event.preventDefault(); 2218 selectPlan(card.dataset.planCard); 2219 } 2220 }); 2221 } 2222 2223 if (planCta) { 2224 planCta.addEventListener("click", async () => { 2225 try { 2226 await openBillingAction(state.selectedPlan); 2227 } catch (error) { 2228 showStatus("warn", "Checkout unavailable", error.message || "Try again in a moment."); 2229 } 2230 }); 2231 } 2232 2233 if (yearlyHint) { 2234 yearlyHint.addEventListener("click", () => applyBillingMode("yearly")); 2235 } 2236 2237 void (async () => { 2238 // Start auth/billing detection before any nonessential UI rendering. A 2239 // missing or changed shared-nav element must never prevent this request. 2240 state.billingStatePromise = loadBillingState();
2241 try { 2242 applyBillingMode("monthly"); 2243 selectPlan(state.selectedPlan); 2244 await state.billingStatePromise; 2245 renderPricingUi(); 2246 await maybeAutoStartFromQuery(); 2247 } catch (error) { 2248 showStatus("warn", "Pricing unavailable", error.message || "Unable to load billing state."); 2249 } 2250 })(); 2251 </script>
2251 2252</body> 2253</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.