CINXE.COM
Buffer - Sign Up
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,900|Poppins:700" rel="stylesheet"> <link rel="icon" type="image/svg+xml" sizes="512x512" href="https://static.buffer.com/login/public/favicon.svg" > <title>Buffer - Sign Up</title> <meta name="title" content="Buffer - Sign Up"> <meta name="description" content="Not a Buffer user? Sign up and start growing your brand on social media"> <meta name="apple-itunes-app" content="app-id=490474324, affiliate-data=ct=LoginSmartBanner&pt=936146"/> <meta name="theme-color" content="#6a75fa"/> <link rel="canonical" href="https://login.buffer.com/signup" /> <style data-styled="true" data-styled-version="5.3.11">html,body{font-family:"Roboto";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;height:100%;overflow:auto;}/*!sc*/ *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}/*!sc*/ #app{height:100%;width:100%;}/*!sc*/ .hidden{display:none;}/*!sc*/ data-styled.g1[id="sc-global-fXSflR1"]{content:"sc-global-fXSflR1,"}/*!sc*/ .iIDiUh{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;width:100%;-webkit-align-items:left;-webkit-box-align:left;-ms-flex-align:left;align-items:left;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;background-color:#FFFFFF;background-image:none;}/*!sc*/ .iIDiUh::before,.iIDiUh::after{content:' ';display:table;}/*!sc*/ .iIDiUh::after{clear:both;}/*!sc*/ data-styled.g2[id="sc-aXZVg"]{content:"iIDiUh,"}/*!sc*/ .hEQkXF{width:66.66666666666666%;background-color:none;height:100%;min-height:auto;}/*!sc*/ @media only screen and (max-width:1250px){.hEQkXF{width:100%;}}/*!sc*/ .liIOEs{width:33.33333333333333%;background-color:none;height:100%;min-height:auto;right:0;}/*!sc*/ @media only screen and (max-width:1250px){.liIOEs{display:none;}}/*!sc*/ data-styled.g3[id="sc-gEvEer"]{content:"hEQkXF,liIOEs,"}/*!sc*/ .chDGXa{width:100%;padding:0px 56px;margin:16px 0px;background-color:#FFFFFF;}/*!sc*/ @media only screen and (max-width:400px){.chDGXa{padding:0px 24px;}}/*!sc*/ data-styled.g4[id="sc-eqUAAy"]{content:"chDGXa,"}/*!sc*/ .gNqxMb{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%;min-height:100%;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:0px auto;overflow-y:auto;max-width:100%;background-color:#FFFFFF;}/*!sc*/ @media only screen and (max-width:400px){.gNqxMb{display:block;}}/*!sc*/ .cRmiwr{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%;min-height:100%;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:0px auto;overflow-y:auto;max-width:100%;background-color:#003366;}/*!sc*/ @media only screen and (max-width:400px){.cRmiwr{display:block;}}/*!sc*/ data-styled.g5[id="sc-fqkvVR"]{content:"gNqxMb,cRmiwr,"}/*!sc*/ .bGMGxb{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;font-size:14px;line-height:1.5;font-weight:500;border-radius:4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:0;-webkit-appearance:none;position:relative;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color;-webkit-transition-duration:0.1s;transition-duration:0.1s;-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;min-width:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-family:'Roboto';color:#FFFFFF;background-color:#2c4bff;padding-right:16px;padding-left:16px;margin:8px 0px;height:48px;}/*!sc*/ .bGMGxb:hover{background-color:#1F35B3;color:#FFFFFF;}/*!sc*/ .bGMGxb:active{top:1px;}/*!sc*/ .bGMGxb:focus{box-shadow:0 0 0 3px #ABB7FF;outline:0;}/*!sc*/ .bGMGxb.disabled{background-color:#E0E0E0;cursor:not-allowed;color:#636363;}/*!sc*/ data-styled.g6[id="sc-dcJsrY"]{content:"bGMGxb,"}/*!sc*/ .kLYBrU{font-style:normal;font-weight:bold;line-height:44px;font-size:32px;margin-bottom:8px;color:#3D3D3D;}/*!sc*/ @media (max-width:420px){.kLYBrU{font-size:24px;}}/*!sc*/ data-styled.g8[id="sc-gsFSXq"]{content:"kLYBrU,"}/*!sc*/ .gRAvGC{height:24px;}/*!sc*/ data-styled.g14[id="sc-dAlyuH"]{content:"gRAvGC,"}/*!sc*/ .imhXvo{width:100%;}/*!sc*/ @media only screen and (max-width:400px){.imhXvo{margin:56px 0px;}}/*!sc*/ data-styled.g16[id="sc-cwHptR"]{content:"imhXvo,"}/*!sc*/ .HVLxs{margin-bottom:8px;}/*!sc*/ .HVLxs .hidden-field{opacity:0;height:0;pointer-events:none;}/*!sc*/ .HVLxs .code-input-wrapper{width:63px;height:63px;}/*!sc*/ @supports (-ms-ime-align:auto){.HVLxs .hidden-field{display:none;}}/*!sc*/ @media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.HVLxs .hidden-field{display:none;}}/*!sc*/ data-styled.g17[id="sc-jEACwC"]{content:"HVLxs,"}/*!sc*/ .bQAjNf{width:100%;background-color:#FFFFFF;height:48px;padding-left:16px;padding-right:16px;border-radius:4px;margin:8px 0px;border:1px solid #B8B8B8;font-weight:400;font-size:14px;text-align:left;box-sizing:border-box;-webkit-transition-property:border-width,border-color,box-shadow;transition-property:border-width,border-color,box-shadow;-webkit-transition-duration:0.1s;transition-duration:0.1s;-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;box-shadow:2px 2px 0 2px transparent;text-overflow:ellipsis;overflow:hidden;}/*!sc*/ .bQAjNf:focus{background-color:#fff;outline:0;border-color:#2c4bff;box-shadow:0 0 0 3px #ABB7FF;-webkit-transition-property:border-width,border-color,box-shadow;transition-property:border-width,border-color,box-shadow;-webkit-transition-duration:0.1s;transition-duration:0.1s;-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;}/*!sc*/ .bQAjNf.cap-start{border-radius:4px 0 0 4px;}/*!sc*/ .bQAjNf.cap-start:focus{border-radius:4px;}/*!sc*/ .bQAjNf.cap-none{border-radius:0;border-left:none;border-right:none;}/*!sc*/ .bQAjNf.cap-none:focus{border-radius:4px;border:1px solid #2c4bff;}/*!sc*/ .bQAjNf.cap-end{border-radius:0 4px 4px 0;}/*!sc*/ .bQAjNf.cap-end:focus{border-radius:4px;}/*!sc*/ .bQAjNf.error{border:1px solid #9D2637;background-color:#FDF2F4;}/*!sc*/ .bQAjNf.error:focus{box-shadow:0 0 0 3px #F3AFB9;}/*!sc*/ .bQAjNf:disabled{background:#E0E0E0;border:1px solid #E0E0E0;color:#636363;cursor:not-allowed;}/*!sc*/ .bQAjNf:disabled::-webkit-input-placeholder{color:#B8B8B8;}/*!sc*/ .bQAjNf:disabled::-moz-placeholder{color:#B8B8B8;}/*!sc*/ .bQAjNf:disabled:-ms-input-placeholder{color:#B8B8B8;}/*!sc*/ .bQAjNf:disabled::placeholder{color:#B8B8B8;}/*!sc*/ data-styled.g18[id="sc-cPiKLX"]{content:"bQAjNf,"}/*!sc*/ .lirisC{position:relative;}/*!sc*/ data-styled.g19[id="sc-dLMFU"]{content:"lirisC,"}/*!sc*/ .bdnjgc{position:absolute;right:1px;top:-5px;cursor:pointer;color:#636363 fill:#636363 font-style:normal;font-weight:500;line-height:normal;font-size:14px;text-align:center;}/*!sc*/ .bdnjgc:hover{color:#3D3D3D;fill:#3D3D3D;}/*!sc*/ .bdnjgc.hidden{display:none;}/*!sc*/ data-styled.g21[id="sc-eldPxv"]{content:"bdnjgc,"}/*!sc*/ .jgEAjI{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#636363;gap:4px;background-color:transparent;border:none;padding:8px 0px;cursor:pointer;}/*!sc*/ .jgEAjI.hidden{display:none;}/*!sc*/ data-styled.g22[id="sc-fPXMVe"]{content:"jgEAjI,"}/*!sc*/ .dLUdlN{list-style-type:none;font-style:normal;font-weight:normal;line-height:normal;font-size:14px;margin-bottom:16px;}/*!sc*/ .dLUdlN.hidden{display:none;}/*!sc*/ data-styled.g23[id="sc-gFqAkR"]{content:"dLUdlN,"}/*!sc*/ .bmaoIS{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:4px;-webkit-text-decoration:none;text-decoration:none;margin-bottom:8px;color:#B8B8B8;}/*!sc*/ .bmaoIS.grey{color:#3D3D3D;}/*!sc*/ .bmaoIS.green{color:#158f56;}/*!sc*/ .bmaoIS.red{color:#9D2637;}/*!sc*/ data-styled.g24[id="sc-ikkxIA"]{content:"bmaoIS,"}/*!sc*/ .gqdaHb{height:10px;width:10px;border-radius:50%;background-color:#B8B8B8;}/*!sc*/ data-styled.g25[id="sc-dAbbOL"]{content:"gqdaHb,"}/*!sc*/ .hZxqak{margin-top:24px;}/*!sc*/ data-styled.g29[id="sc-fHjqPf"]{content:"hZxqak,"}/*!sc*/ .kwdawv{font-weight:500;font-size:14px;color:#3D3D3D;text-align:left;margin-bottom:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}/*!sc*/ data-styled.g36[id="sc-iHGNWf"]{content:"kwdawv,"}/*!sc*/ .gvvway{width:100%;height:100%;position:relative;background:url('https://static.buffer.com/login/public/img/signup-bkg-publish.png');background-position:left center;background-repeat:no-repeat;background-size:cover;}/*!sc*/ data-styled.g60[id="sc-fjvvzt"]{content:"gvvway,"}/*!sc*/ .gHTeNi{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:300px;text-align:center;font-family:Roboto;font-style:normal;font-weight:bold;color:#FFFFFF;}/*!sc*/ data-styled.g61[id="sc-bbSZdi"]{content:"gHTeNi,"}/*!sc*/ .jCVJWJ{line-height:32px;font-size:24px;margin-bottom:16px;-webkit-letter-spacing:-0.75px;-moz-letter-spacing:-0.75px;-ms-letter-spacing:-0.75px;letter-spacing:-0.75px;color:#FFFFFF;}/*!sc*/ data-styled.g62[id="sc-fBWQRz"]{content:"jCVJWJ,"}/*!sc*/ .eZCaYx{width:80px;height:80px;margin:8px 0px;}/*!sc*/ data-styled.g63[id="sc-hknOHE"]{content:"eZCaYx,"}/*!sc*/ .jxTKvW{-webkit-letter-spacing:-0.75px;-moz-letter-spacing:-0.75px;-ms-letter-spacing:-0.75px;letter-spacing:-0.75px;line-height:16px;font-size:16px;margin-bottom:10px;}/*!sc*/ data-styled.g64[id="sc-uVWWZ"]{content:"jxTKvW,"}/*!sc*/ .ftvomF{font-weight:500;line-height:16px;font-size:14px;margin-bottom:10px;}/*!sc*/ data-styled.g65[id="sc-hCPjZK"]{content:"ftvomF,"}/*!sc*/ .cUSKWK{max-width:480px;width:100%;margin:auto;}/*!sc*/ data-styled.g66[id="sc-Nxspf"]{content:"cUSKWK,"}/*!sc*/ .jZVXLN{margin:40px auto 0px auto;max-width:285px;}/*!sc*/ .jZVXLN p{text-align:center;padding:18px 0px;}/*!sc*/ .jZVXLN p:first-child{font-size:12px;color:#636363;border-bottom:1px solid #b8b8b8;}/*!sc*/ .jZVXLN p:first-child a{font-size:12px;}/*!sc*/ .jZVXLN p:last-child{color:#3d3d3d;font-size:14px;font-weight:500;}/*!sc*/ .jZVXLN p:last-child a{color:#3d3d3d;}/*!sc*/ .jZVXLN a{color:#2c4bff;}/*!sc*/ data-styled.g67[id="sc-cfxfcM"]{content:"jZVXLN,"}/*!sc*/ </style> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-58PRD29');</script> <!-- End Google Tag Manager --> <script> function onLoad() { hcaptcha.execute(); } </script> <script src="https://js.hcaptcha.com/1/api.js?onload=onLoad" async defer></script> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-58PRD29" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div id="app"><div class="sc-aXZVg iIDiUh"><div class="sc-gEvEer hEQkXF"><div class="sc-fqkvVR gNqxMb"><div class="sc-eqUAAy chDGXa"><img src="https://static.buffer.com/login/public/img/buffer-logo.svg" width="112" height="28" alt="Buffer Logo" class="sc-fHjqPf hZxqak"/></div><div class="sc-eqUAAy chDGXa"><div class="sc-Nxspf cUSKWK"><form method="post" id="signup-form" class="sc-cwHptR imhXvo"><h1 class="sc-gsFSXq kLYBrU">Let's get your account set up</h1><div height="24px" class="sc-dAlyuH gRAvGC"></div><div class="sc-jEACwC HVLxs"><label for="email" class="sc-iHGNWf kwdawv">Email</label><div class="sc-dLMFU lirisC"><input type="email" id="email" name="email" class="sc-cPiKLX bQAjNf" value=""/></div></div><div><div style="position:relative"><div id="toggle-show-password" class="sc-eldPxv bdnjgc hidden"><button type="button" class="sc-fPXMVe jgEAjI show"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none"><path fill="#636363" fill-rule="evenodd" d="M8 11.767c-2.897 0-5.337-1.485-6.871-3.767 1.534-2.282 3.974-3.767 6.87-3.767 2.898 0 5.338 1.485 6.872 3.767-1.534 2.282-3.974 3.767-6.871 3.767Zm0-8.534c-3.392 0-6.21 1.813-7.89 4.502a.5.5 0 0 0 0 .53c1.68 2.689 4.498 4.502 7.89 4.502 3.392 0 6.21-1.813 7.89-4.502a.5.5 0 0 0 0-.53C14.21 5.046 11.392 3.233 8 3.233Zm0 6.9a2.133 2.133 0 1 0 0-4.266 2.133 2.133 0 0 0 0 4.266Z" clip-rule="evenodd"></path></svg>Show</button><button type="button" class="sc-fPXMVe jgEAjI hide hidden"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none"><path fill="#636363" fill-rule="evenodd" d="M15.732 6.51a.5.5 0 0 1 .159.688 10.118 10.118 0 0 1-1.677 2.042l1.305 1.305a.5.5 0 0 1-.707.707l-1.368-1.367a9.006 9.006 0 0 1-2.889 1.453l.488 1.82a.5.5 0 0 1-.966.259l-.496-1.852A9.209 9.209 0 0 1 8 11.7c-.542 0-1.07-.046-1.58-.135l-.497 1.852a.5.5 0 0 1-.966-.259l.488-1.82a9.006 9.006 0 0 1-2.89-1.453l-1.367 1.367a.5.5 0 0 1-.707-.707L1.786 9.24A10.117 10.117 0 0 1 .11 7.198a.5.5 0 0 1 .848-.53 9.02 9.02 0 0 0 1.895 2.177A7.993 7.993 0 0 0 8 10.7c3.008 0 5.523-1.6 7.043-4.032a.5.5 0 0 1 .689-.159Z" clip-rule="evenodd"></path></svg>Hide</button></div><div class="sc-jEACwC HVLxs"><label for="password" class="sc-iHGNWf kwdawv">Create a Password</label><div class="sc-dLMFU lirisC"><input type="password" id="password" name="password" class="sc-cPiKLX bQAjNf" value=""/></div></div></div><ul id="checks" class="sc-gFqAkR dLUdlN hidden"><li id="check-longitude" class="sc-ikkxIA bmaoIS grey"><svg width="12" height="10" fill="none" xmlns="http://www.w3.org/2000/svg" class="tick hidden"><path d="M1.06 5.146a1 1 0 0 0 0 1.415l2.83 2.828 7.07-7.071A1 1 0 0 0 9.546.904L3.889 6.56 2.475 5.146a1 1 0 0 0-1.414 0Z" fill="#158F56"></path></svg><span class="sc-dAbbOL gqdaHb circle-icon"></span>At least 8 characters long</li><li id="check-uppercase" class="sc-ikkxIA bmaoIS grey"><svg width="12" height="10" fill="none" xmlns="http://www.w3.org/2000/svg" class="tick hidden"><path d="M1.06 5.146a1 1 0 0 0 0 1.415l2.83 2.828 7.07-7.071A1 1 0 0 0 9.546.904L3.889 6.56 2.475 5.146a1 1 0 0 0-1.414 0Z" fill="#158F56"></path></svg><span class="sc-dAbbOL gqdaHb circle-icon"></span>Contains 1 uppercase character</li><li id="check-number-symbol" class="sc-ikkxIA bmaoIS grey"><svg width="12" height="10" fill="none" xmlns="http://www.w3.org/2000/svg" class="tick hidden"><path d="M1.06 5.146a1 1 0 0 0 0 1.415l2.83 2.828 7.07-7.071A1 1 0 0 0 9.546.904L3.889 6.56 2.475 5.146a1 1 0 0 0-1.414 0Z" fill="#158F56"></path></svg><span class="sc-dAbbOL gqdaHb circle-icon"></span>Contains 1 number or symbol</li></ul></div><div id="hcaptcha" class="h-captcha" data-sitekey="32c73ee8-8e21-4cfd-b221-f822c7a8b78f" data-size="invisible"></div><button type="submit" disabled="" class="sc-dcJsrY bGMGxb disabled signup-form-submit">Sign Up</button><div class="sc-cfxfcM jZVXLN"><p>By proceeding, you agree to<!-- --> <a href="https://buffer.com/terms">Buffer's Terms of Service</a></p><p>Already have an account? <a href="/login?cta=bufferSite-globalNav-signup-1">Log in instead</a></p></div><input type="hidden" name="product" value="buffer"/><input type="hidden" name="plan" value="free"/><input type="hidden" name="cycle" value="year"/><input type="hidden" name="_csrf" value="F2Orkhn8-vHT1Qq3Sp223-w_0tRU2IC9u13E"/><input type="hidden" name="anonymousId" class="js-anonymous-id"/><input type="hidden" name="mixpanelDistinctId" class="js-mixpanel-distinct-id"/><input type="hidden" name="screenSize"/><input type="hidden" name="upgradePathName"/></form></div></div><div class="sc-eqUAAy chDGXa"></div></div></div><div class="sc-gEvEer liIOEs"><div class="sc-fqkvVR cRmiwr"><div class="sc-fjvvzt gvvway"><div class="sc-bbSZdi gHTeNi"><p class="sc-fBWQRz jCVJWJ">“With Buffer I can build social content out as far as I want into the future but also tailor campaigns if we see certain trends within the industry.”</p><div><img src="https://static.buffer.com/login/public/img/signup-avatar-publish.png" class="sc-hknOHE eZCaYx"/><p class="sc-uVWWZ jxTKvW">Justin Ozanich</p><p class="sc-hCPjZK ftvomF">Marketing Manager</p><p class="sc-hCPjZK ftvomF">Foster Coffee Company</p></div></div></div></div></div></div></div> <script> // Add shared/util functions. function disableButton(button, disable) { if (disable) { button.setAttribute('disabled', true); button.classList.add('disabled'); } else { button.removeAttribute('disabled'); button.classList.remove('disabled'); } } function disableButtonTemporaly(button, duration) { disableButton(button, true); setTimeout(function() { disableButton(button, false); }, duration || 5000); } function clearFormErrors(fields) { if (!fields) return; // @ts-expect-error TS(7006) FIXME: Parameter 'field' implicitly has an 'any' type. fields.forEach(function(field) { field.classList.remove('error'); }); } function getSegmentAnonymousId() { // @ts-expect-error TS(2304) FIXME: Cannot find name 'window'. if (!window.analytics || !window.analytics.user) { return false; } // @ts-expect-error TS(2304) FIXME: Cannot find name 'window'. return window.analytics.user().anonymousId(); } function getMixpanelDistinctId() { // @ts-expect-error TS(2304) FIXME: Cannot find name 'window'. if (!window.mixpanel || !window.mixpanel.get_distinct_id) { return false; } // @ts-expect-error TS(2304) FIXME: Cannot find name 'window'. return window.mixpanel.get_distinct_id(); } function validResetInfo(token, _id) { return !!(token && _id); } function validEmail(value) { // @see http://emailregex.com/ // IE11 throws a syntax error and prevents other JS from loading if the // following email address regex is on it's own line. All other browsers don't // seem to have a problem, so this is just to make IE11 happy // prettier-ignore return value.match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/); } function validPasswordLongitude(value) { return value.length >= 8; } function containsUppercase(value) { return value.match(/[A-Z]+/); } function containsNumberOrSymbol(value) { return value.match(/[^A-Za-z\s]+/); } function injectLogoutIframes() { const domains = [ 'publish', 'analyze', 'engage', 'account' ]; domains.forEach(function(domain) { const iframe = document.createElement('iframe'); iframe.style.display = 'none'; iframe.src = `https://${domain}.buffer.com/post-logout`; document.body.appendChild(iframe); }); } // Add and execute view behaviour. (function onLoad() { const companyInput = document.querySelector('#company'); const emailInput = document.querySelector('#email'); const passwordInput = document.querySelector('#password'); const checks = document.querySelector('#checks'); const longitudeChecker = document.querySelector('#check-longitude'); const uppercaseChecker = document.querySelector('#check-uppercase'); const numberSymbolChecker = document.querySelector('#check-number-symbol'); const showPassword = document.querySelector('#toggle-show-password'); const submitButton = document.querySelectorAll('.signup-form-submit'); const form = document.querySelector('#signup-form'); const $anonymousId = document.querySelector('.js-anonymous-id'); const $mixpanelDistinctId = document.querySelector('.js-mixpanel-distinct-id'); const $screenSize = document.querySelector('input[name="screenSize"]'); const $upgradePathName = document.querySelector('input[name="upgradePathName"]'); let validPassword = false; function setCheckerStatus(checker, checked) { const tick = checker.querySelector('.tick'); const circleIcon = checker.querySelector('.circle-icon'); if (!tick || !circleIcon) { console.error('Missing tick or circle icon'); return; } if (checked) { checker.classList.add('green'); checker.classList.remove('grey'); tick.classList.remove('hidden'); circleIcon.classList.add('hidden'); } else { checker.classList.add('grey'); checker.classList.remove('green'); tick.classList.add('hidden'); circleIcon.classList.remove('hidden'); } } function checkLongitude() { if (!passwordInput || !longitudeChecker) { return false; } const result = validPasswordLongitude(passwordInput.value); setCheckerStatus(longitudeChecker, result); return result; } function checkUppercase() { if (!passwordInput || !uppercaseChecker) { return false; } const result = containsUppercase(passwordInput.value); setCheckerStatus(uppercaseChecker, result); return result; } function checkNumberOrSymbol() { if (!passwordInput || !numberSymbolChecker) { return false; } const result = containsNumberOrSymbol(passwordInput.value); setCheckerStatus(numberSymbolChecker, result); return result; } function onShowPassword() { if (!passwordInput || !showPassword) { return; } const curtype = passwordInput.getAttribute('type'); const newType = curtype === 'text' ? 'password' : 'text'; passwordInput.setAttribute('type', newType); showPassword.querySelector('.show').classList.toggle('hidden'); showPassword.querySelector('.hide').classList.toggle('hidden'); } function showPasswordCheckers() { if (!showPassword || !checks) { return; } showPassword.classList.remove('hidden'); checks.classList.remove('hidden'); } function hidePasswordCheckers() { if (!passwordInput || !showPassword || !checks) { return; } if (!passwordInput.value) { showPassword.classList.add('hidden'); checks.classList.add('hidden'); } } function onPasswordChange(e) { const checkA = checkLongitude(); const checkB = checkUppercase(); const checkC = checkNumberOrSymbol(); validPassword = checkA && checkB && checkC; clearInputError(e.target); checkInputs(); } function onInputChange(e) { clearInputError(e.target); checkInputs(); } function clearInputError(inputField) { inputField.classList.remove('error'); const inputId = inputField.getAttribute('id'); const errorEl = document.querySelector(`#${inputId}-error`); if (errorEl) { errorEl.classList.remove('visible'); } } function checkInputs() { if (!emailInput || !passwordInput) { return; } const addedEmail = emailInput.value; const addedCompany = companyInput ? companyInput.value : true; if (addedEmail && addedCompany && validPassword) { submitButton.forEach((item)=>{ disableButton(item, false); }); } else { submitButton.forEach((item)=>{ disableButton(item, true); }); } } function getScreenSize(screenWidth) { if (!screenWidth) { return null; } // Screen sizes are based on commonly used breakpoints // Tailwind: https://tailwindcss.com/docs/responsive-design const SCREEN_SIZE_SMALL = 640; const SCREEN_SIZE_MEDIUM = 768; const SCREEN_SIZE_LARGE = 1024; const SCREEN_SIZE_EXTRA_LARGE = 1280; const SCREEN_SIZE_EXTRA_EXTRA_LARGE = 1536; if (screenWidth < SCREEN_SIZE_SMALL) { return 'xs'; } else if (screenWidth < SCREEN_SIZE_MEDIUM) { return 's'; } else if (screenWidth < SCREEN_SIZE_LARGE) { return 'm'; } else if (screenWidth < SCREEN_SIZE_EXTRA_LARGE) { return 'l'; } else if (screenWidth < SCREEN_SIZE_EXTRA_EXTRA_LARGE) { return 'xl'; } else { return 'xxl'; } } function onSubmit(e) { e.preventDefault(); const anonymousId = getSegmentAnonymousId(); if (anonymousId && $anonymousId) { $anonymousId.value = anonymousId; } const mixpanelDistinctId = getMixpanelDistinctId(); if (mixpanelDistinctId && $mixpanelDistinctId) { $mixpanelDistinctId.value = mixpanelDistinctId; } const screenSize = getScreenSize(document.body.scrollWidth); if (screenSize && $screenSize) { $screenSize.value = screenSize; } submitButton.forEach((item)=>{ disableButton(item, true); }); const target = e.target; target.textContent = 'Signing Up...'; if (companyInput) { companyInput.readOnly = true; } if (emailInput && passwordInput) { emailInput.readOnly = true; passwordInput.readOnly = true; } const productInput = document.querySelector("input[name='product']"); const planInput = document.querySelector("input[name='plan']"); const cycleInput = document.querySelector("input[name='cycle']"); const params = new URL(document.location.href).searchParams; const plan = params.get('plan') || 'free'; if (!productInput || !planInput || !cycleInput || !plan || !$upgradePathName) { console.error('Missing form inputs!'); return; } if (plan === 'agency') { productInput.value = 'buffer'; planInput.value = 'agency'; cycleInput.value = 'year'; $upgradePathName.value = 'bufferSite-trial'; } else if (plan === 'team') { productInput.value = 'buffer'; planInput.value = 'team'; cycleInput.value = 'year'; $upgradePathName.value = 'bufferSite-trial'; } else { productInput.value = 'buffer'; planInput.value = 'free'; cycleInput.value = 'year'; } if (form) form.submit(); } // Setup event listeners if (passwordInput) { passwordInput.addEventListener('change', showPasswordCheckers); passwordInput.addEventListener('focus', showPasswordCheckers); passwordInput.addEventListener('focusout', hidePasswordCheckers); passwordInput.addEventListener('change', onPasswordChange); passwordInput.addEventListener('keyup', onPasswordChange); } if (companyInput) { companyInput.addEventListener('change', onInputChange); companyInput.addEventListener('keyup', onInputChange); } if (emailInput) { emailInput.addEventListener('change', onInputChange); emailInput.addEventListener('keyup', onInputChange); } if (showPassword) { showPassword.addEventListener('click', onShowPassword); } // Add event listeners to submit buttons submitButton.forEach((item)=>{ item.addEventListener('click', onSubmit); }); // Autofocus on the password field if the email field is already filled if (passwordInput && emailInput && emailInput.value !== '') { passwordInput.focus(); } })(); </script> <script src="//d2wy8f7a9ursnm.cloudfront.net/v6/bugsnag.min.js"> </script> <script type="text/javascript"> window.bugsnagClient = bugsnag("d2743076cf64d07829239cb53377d2e8"); </script> <!-- segment.io snippet --> <script type="text/javascript"> function getUTMParams(urlParams) { const utmParams = {} // Define the UTM parameters we are interested in const utmKeys = [ 'utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', ] utmKeys.forEach((key) => { const value = urlParams.get(key) if (value) { utmParams[key] = value } }) return utmParams } !function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware"];analytics.factory=function(e){return function(){var t=Array.prototype.slice.call(arguments);t.unshift(e);analytics.push(t);return analytics}};for(var e=0;e<analytics.methods.length;e++){var key=analytics.methods[e];analytics[key]=analytics.factory(key)}analytics.load=function(src,options,onError){var t=document.createElement("script");t.type="text/javascript";t.async=!0;t.src=src;t.onerror=onError;var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n);analytics._loadOptions=options}; analytics._writeKey="KQLTyvXFs1ec4bIhZTGFGyAsAWveakPd"; analytics._cdn = 'https://segment-analytics.buffer.com'; analytics.SNIPPET_VERSION="4.15.2"; analytics.load( 'https://segment-analytics.buffer.com/analytics.js/v1/KQLTyvXFs1ec4bIhZTGFGyAsAWveakPd/analytics.min.js', { obfuscate: true, integrations: { "Segment.io": { apiHost: "segment-api.buffer.com/v1" }}}, (onError = () => {throw new Error('SegmentLibrary::NotLoaded')}), ); var isLogout = window.location.search.substr(1).split('&').indexOf('logout=true') > -1; if (isLogout) { // Reset all analytics upon logout injectLogoutIframes() analytics.reset() analytics.ready(function() { if (window.mixpanel) { window.mixpanel.reset(); } }); } else { const urlParams = new URLSearchParams(window.location.search) analytics.page({ cta: urlParams.get('cta'), ...getUTMParams(urlParams), screenWidth: screen.width, screenHeight: screen.height, viewportWidth: window.innerWidth, viewportHeight: window.innerHeight, }) } // If something breaks loading Segment let's try with the proxy window.onerror = (msg, source, line, col, err) => { if (msg === 'Uncaught Error: SegmentLibrary::NotLoaded') { analytics._cdn = 'https://breadcrumbs.buffer.com' analytics.load( 'https://breadcrumbs.buffer.com/?key=KQLTyvXFs1ec4bIhZTGFGyAsAWveakPd', { obfuscate: true, integrations: { 'Segment.io': { apiHost: 'breadcrumbs.buffer.com/v1' }, }, }, (onError = () => { data = { userAgent: navigator.userAgent } fetch( 'https://buffer-segment-monitor.bufferapp.workers.dev/', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data), }, ) throw new Error('SegmentProxy::NotLoaded') }), ) } } }}(); </script> </body> </html>