CINXE.COM
Ghost: Sign in
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Ghost: Sign in</title> <link rel="preload" as="style" onload="this.rel='stylesheet'" href="/assets/fonts/inter.css"> <link rel="preload" as="font" href="/assets/fonts/Inter-roman.var.woff2" type="font/woff2" crossorigin="anonymous" /> <link rel="stylesheet" type="text/css" href="/styles/main.css"> <link rel="icon" type="image/png" href="/favicon.png" /> <script defer data-domain="ghost.org" src="/js/script.js"></script> </head> <body> <!-- Framebuster code starts here --> <style> plaintext { display: none } </style> <script> (function () { try { var win = this; while ("<plaintext>") { if (win.parent == win) break; eval("win.frameElement.src").substr(0, 1); win = win.parent; } if (win.frameElement != null) throw 'busted'; document.write("\x3Cxmp style\x3Ddisplay:none\x3E"); } catch (e) { try { if (!open(location, '_top')) alert('this content cant be framed'); top.location = location; } catch (e) { } } })(); </script> <xmp style="display:none"> <!-- do not remove the plaintext nor xmp tags --> <plaintext /> <xmp>.</xmp> <!-- framebuster code ends here --> <div class="viewport"> <div class="container"> <header class="mainhead"> <a class="home-link" href="https://ghost.org"> <img id="ghost-logo" src="/images/logos/ghost-logo-black-01.webp" alt="Ghost" width="300" height="110" loading="eager"> </a> </header> <div class="gh-form-wrapper"> <!-- Default signin --> <form id="signin-fresh" class="gh-form" method="POST" onsubmit="event.preventDefault()"> <header> <h1>Welcome back</h1> </header> <div class="gh-input-group"> <label for="site">Site address</label> <!-- <a class="forgot-site-link" href="#">Forgot?</a> --> <input id="site" class="gh-input" type="text" placeholder="site.ghost.io or myghostsite.com" name="site" autocapitalize="off" autocorrect="off" tabindex="1" autofocus required /> </div> <span> <!--intentionally blank--> </span> <button id="signin" class="gh-btn gh-btn-block spinner" type="submit" value="Sign in" tabindex="2">Continue →</button> <div class="form-error" style="display:none;"> <p class="error-msg"></p> </div> <footer> <span>Don鈥檛 have a Ghost site yet?</span> <a href="/signup/">Get started here</a> </footer> </form> <!-- Returning user signin --> <form id="signin-recent" class="gh-form" novalidate="novalidate" style="display:none" method="POST" onsubmit="event.preventDefault()"> <header> <h1>Welcome back</h1> </header> <div class="gh-input-group"> <label for="site">Recently accessed sites</label> <a id="clear-sites" class="forgot-site-link" href="javascript:;">Clear</a> <div class="recent-sites"></div> </div> <footer> <span>Can鈥檛 see the one you need?</span> <a id="add-site" href="javascript:;">Sign into another site →</a> </footer> </form> </div> </div> </div> <script> (function (document) { var logo = document.getElementById('ghost-logo'); var random = Math.floor(Math.random() * 10) + 1; var randomString = random > 9 ? random : '0' + random; var logoString = '/images/logos/ghost-logo-black-' + randomString + '.webp'; logo.setAttribute('src', logoString); })(document) </script> <script type="text/javascript" src="/scripts/signin.js"></script> <script src="https://status.ghost.org/embed/script.js"></script> </body> </html>