- ID de l'analyse :
- 52cf2ddf-8f70-4ad2-a659-f72f53cf1d76Terminée
- URL soumise :
- https://octauthent.com/
- Fin du rapport :
Liens : 5 trouvé(s)
Liens sortants identifiés à partir de la page
Lien | texte |
---|---|
https://octauthent.medium.com/list/octauthent-guides-b101b59e5f48 | Guides |
https://www.producthunt.com/posts/octauthent?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-octauthent | |
https://github.com/octauthent | |
https://octauthent.medium.com | |
https://dev.to/bokub/how-to-add-a-login-form-to-any-website-without-a-single-line-of-code-39h |
Variables JavaScript : 17 trouvée(s)
Les variables JavaScript globales chargées dans l'objet fenêtre d'une page sont des variables déclarées en dehors des fonctions et accessibles depuis n'importe quel endroit du code au sein du champ d'application actuel
Nom | Type |
---|---|
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
$crisp | object |
CRISP_WEBSITE_ID | string |
d | object |
s | object |
___FONT_AWESOME___ | object |
FontAwesomeConfig | object |
FontAwesome | object |
Messages de journal de console : 0 trouvé(s)
Messages consignés dans la console web
HTML
Le corps HTML de la page en données brutes
<!DOCTYPE html><html lang="en" class="fontawesome-i2svg-active fontawesome-i2svg-complete"><head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Octauthent - Password protection made easy</title>
<style type="text/css">svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fad.fa-inverse{color:#fff}</style><link rel="canonical" href="https://octauthent.com">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon/favicon-16x16.png">
<link rel="icon" type="image/x-icon" href="/img/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/img/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon/favicon-16x16.png">
<link rel="manifest" href="/img/favicon/site.webmanifest">
<link rel="mask-icon" href="/img/favicon/safari-pinned-tab.svg" color="#5bbad5">
<link rel="shortcut icon" href="/img/favicon/favicon.ico">
<meta name="msapplication-TileColor" content="#6c63ff">
<meta name="msapplication-config" content="/img/favicon/browserconfig.xml">
<meta name="theme-color" content="#6c63ff">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/bulma.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/microtip.min.css">
<link rel="stylesheet" href="/css/styles.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Calistoga&family=Inter&display=swap" rel="stylesheet">
<script defer="" src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/js/all.js"></script>
<script defer="" src="https://cdn.jsdelivr.net/npm/@lottiefiles/[email protected]/dist/lottie-player.min.js"></script>
<script src="/js/index.js"></script>
<script async="" defer="" data-website-id="13d5277f-9108-408c-a225-bbea4cf66b6f" src="https://metrics.boris.sh/umami-script.js"></script>
<script type="text/javascript">
window.$crisp = [];
window.CRISP_WEBSITE_ID = '4041cfb2-158b-497a-bdd8-788aa0c90fdf';
(function () {
d = document;
s = d.createElement('script');
s.src = 'https://client.crisp.chat/l.js';
s.async = 1;
d.getElementsByTagName('head')[0].appendChild(s);
})();
</script><script src="https://client.crisp.chat/l.js" async=""></script>
<link href="https://client.relay.crisp.chat" rel="dns-prefetch" crossorigin=""><link href="https://client.crisp.chat" rel="preconnect" crossorigin=""><script src="https://client.crisp.chat/static/javascripts/client.js?3718772" type="text/javascript" async=""></script><link href="https://client.crisp.chat/static/stylesheets/client_default.css?3718772" type="text/css" rel="stylesheet"></head>
<body>
<!-- Wrapper -->
<div id="wrapper" class="has-text-centered-mobile">
<!-- Hero -->
<nav class="navbar" role="navigation" aria-label="main navigation">
<div class="container">
<div class="navbar-brand">
<a class="navbar-item has-text-dark" href="/">
<img src="/img/logo.svg" height="28" width="28" alt="Logo" class="mr-2">
<h1 class="logo is-size-4 is-family-secondary">Octauthent</h1>
</a>
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarBasicExample">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</a>
</div>
<div id="navbarBasicExample" class="navbar-menu">
<div class="navbar-start">
<a href="https://app.octauthent.com" class="navbar-item umami--click--dashboard-link-nav"> Dashboard </a>
<a href="https://demo.octauthent.com" class="navbar-item umami--click--demo-link-nav" target="_blank">
Demo
</a>
<a href="/pricing" class="navbar-item umami--click--pricing-link-nav"> Pricing </a>
<a href="https://octauthent.medium.com/list/octauthent-guides-b101b59e5f48" class="navbar-item umami--click--guide-link-nav" target="_blank">
Guides
</a>
</div>
<div class="navbar-end">
<div class="navbar-item">
<div class="buttons">
<a class="button has-mustard-bg has-text-white margin-auto umami--click--signup-button-nav" href="https://app.octauthent.com/login">
<strong>Sign up</strong>
</a>
</div>
</div>
</div>
</div>
</div>
</nav>
<section id="hero" class="hero is-medium has-mustard-bg">
<div class="hero-body">
<div class="columns is-gapless">
<div class="column is-narrow is-hidden-mobile">
<img src="/img/white_on_purple_1200.jpg" class="margin-auto" alt="Mobile screenshot" width="450">
</div>
<div class="column">
<h1 class="has-text-white is-size-1 is-size-3-mobile headline mb-5 is-family-secondary">
Password protection made easy
</h1>
<h2 class="has-text-white subtitle">
Octauthent is the easiest way to add authentication to <b>any</b> website
</h2>
<p class="has-text-white">
Create a login form in <b>less than a minute</b><br>
Integrate it to your site <b>without a single line of code</b><br>
Manage your users from your Octauthent dashboard
</p>
<p class="has-text-centered pt-5">
<a class="button mx-2 my-2 umami--click--get-started-button" href="https://app.octauthent.com/login">
<strong>Get started for free</strong>
</a>
<a class="button mx-2 my-2 is-dark has-text-white umami--click--demo-button" href="https://demo.octauthent.com" target="_blank">
Demo
</a>
</p>
<p>
<!-- Product hunt badge -->
<a href="https://www.producthunt.com/posts/octauthent?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-octauthent" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=307317&theme=light" alt="Octauthent - Password protection made easy | Product Hunt" style="width: 250px; height: 70px" width="250" height="70"></a>
<!-- End Product hunt badge -->
</p>
</div>
</div>
</div>
</section>
<!-- END Hero -->
<!-- Twitter Feed -->
<!-- <section id="twitter-feed" class="section has-white-mustard-gradient">-->
<!-- <div class="container">-->
<!-- <div class="columns">-->
<!-- <div class="column">-->
<!-- <div class="box">-->
<!-- <article class="media">-->
<!-- <div class="media-left">-->
<!-- <figure class="image is-64x64">-->
<!-- <img src="img/twitter-profile-guy.jpg" alt="Image" />-->
<!-- </figure>-->
<!-- </div>-->
<!-- <div class="media-content">-->
<!-- <div class="content has-text-left">-->
<!-- <p>-->
<!-- <strong>Some guy</strong> <small>@someguy</small>-->
<!-- <!–<small>5m</small>–>-->
<!-- <br />-->
<!-- Thanks to @octauthent, I was able to add a login from to my blog in less than 5 minutes!-->
<!-- Christmas came early, I guess-->
<!-- </p>-->
<!-- </div>-->
<!-- <nav class="level is-mobile">-->
<!-- <div class="level-left">-->
<!-- <span class="level-item" aria-label="reply">-->
<!-- <span class="icon is-small">-->
<!-- <i class="fas fa-reply" aria-hidden="true"></i>-->
<!-- </span>-->
<!-- </span>-->
<!-- <span class="level-item" aria-label="retweet">-->
<!-- <span class="icon is-small">-->
<!-- <i class="fas fa-retweet" aria-hidden="true"></i>-->
<!-- </span>-->
<!-- </span>-->
<!-- <span class="level-item" aria-label="like">-->
<!-- <span class="icon is-small">-->
<!-- <i class="fas fa-heart" aria-hidden="true"></i>-->
<!-- </span>-->
<!-- </span>-->
<!-- </div>-->
<!-- </nav>-->
<!-- </div>-->
<!-- </article>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="column">-->
<!-- <div class="box">-->
<!-- <article class="media">-->
<!-- <div class="media-left">-->
<!-- <figure class="image is-64x64">-->
<!-- <img src="img/twitter-profile-girl.jpg" alt="Image" />-->
<!-- </figure>-->
<!-- </div>-->
<!-- <div class="media-content">-->
<!-- <div class="content has-text-left">-->
<!-- <p>-->
<!-- <strong>Some girl</strong> <small>@somegirl</small>-->
<!-- <!–<small>5m</small>–>-->
<!-- <br />-->
<!-- The beta version of our plateform is protected by #octauthent. Controlling who has access to it-->
<!-- has never been easier!-->
<!-- </p>-->
<!-- </div>-->
<!-- <nav class="level is-mobile">-->
<!-- <div class="level-left">-->
<!-- <a class="level-item" aria-label="reply">-->
<!-- <span class="icon is-small">-->
<!-- <i class="fas fa-reply" aria-hidden="true"></i>-->
<!-- </span>-->
<!-- </a>-->
<!-- <a class="level-item" aria-label="retweet">-->
<!-- <span class="icon is-small">-->
<!-- <i class="fas fa-retweet" aria-hidden="true"></i>-->
<!-- </span>-->
<!-- </a>-->
<!-- <a class="level-item" aria-label="like">-->
<!-- <span class="icon is-small">-->
<!-- <i class="fas fa-heart" aria-hidden="true"></i>-->
<!-- </span>-->
<!-- </a>-->
<!-- </div>-->
<!-- </nav>-->
<!-- </div>-->
<!-- </article>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- <!– <p class="is-size-7 has-text-centered">See more at #octauthent</p>–>-->
<!-- </div>-->
<!-- </section>-->
<!-- END Twitter Feed -->
<!-- Features -->
<section id="features" class="section has-white-bg">
<div class="container">
<div class="columns reverse-row-order is-desktop py-6">
<div class="column">
<h3 class="is-size-3 mb-3 is-family-secondary title">Easy setup and integration</h3>
<p class="paragraph">
There are dozens of authentication solutions on the market, but most of them assume you're an
experienced developer ready to integrate libraries and SDKs to your web project.
<br>
<br>
Octauthent has been designed to integrate to your website without any technical knowledge. In fact, you
don't even need access to your website code
</p>
</div>
<div class="column">
<img class="feature-img" src="img/undraw_Setup_wizard_re_nday.svg" alt="feature">
</div>
</div>
</div>
<div class="container">
<div class="columns is-desktop py-6">
<div class="column">
<img src="img/customization.gif" alt="Customization">
</div>
<div class="column">
<h3 class="is-size-3 mb-3 is-family-secondary title">Complete customization</h3>
<p class="paragraph">
Using Octauthent doesn't mean you have to sacrifice user experience
<br>
<br>
You can control most of the aspects of your authentication process directly from your dashboard: session
expiration, authentication methods, and of course, the look and feel of your login form
<br>
<br>
You know what's even better? Your login form will always be displayed on your domain, like any other
page of your site. Say goodbye to annoying redirections
</p>
</div>
</div>
</div>
<div class="container">
<div class="columns reverse-row-order is-desktop py-6">
<div class="column">
<h3 class="is-size-3 mb-3 is-family-secondary title">Works with what you already use</h3>
<p class="paragraph">
Octauthent works on a large panel of systems and hosting platforms, even the most limited ones.
<br>
<br>
In fact, Octauthent can work on any website, as long as you own the domain name.
<br>
<br>
Read our integration guides and
<a href="https://octauthent.medium.com/list/octauthent-guides-b101b59e5f48" target="_blank">
step-to-step tutorials
</a>
for detailed explanations
</p>
</div>
<div class="column platforms py-6">
<div class="columns is-centered is-multiline is-mobile">
<div class="column is-half-mobile is-one-third-tablet is-half-desktop my-2">
<img src="/img/platforms/cloudflare.svg" alt="Cloudflare">
</div>
<div class="column is-half-mobile is-one-third-tablet is-half-desktop my-2">
<img src="/img/platforms/wordpress.svg" alt="Wordpress">
</div>
<div class="column is-half-mobile is-one-third-tablet is-half-desktop my-2 py-4">
<img src="/img/platforms/github-pages.svg" alt="GitHub Pages">
</div>
<div class="column is-half-mobile is-one-third-tablet is-half-desktop my-2">
<img src="/img/platforms/netlify.svg" alt="Netlify">
</div>
<div class="column is-half-mobile is-one-third-tablet is-half-desktop my-2 py-4">
<img src="/img/platforms/vercel.svg" alt="Vercel">
</div>
<div class="column is-half-mobile is-one-third-tablet is-half-desktop my-2">
<img src="/img/platforms/heroku.svg" alt="Heroku">
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="columns is-desktop py-6">
<div class="column">
<lottie-player src="/js/lottie_password.json" background="transparent" speed="1" loop="" autoplay=""></lottie-player>
</div>
<div class="column">
<h3 class="is-size-3 mb-3 is-family-secondary title">Production-ready security</h3>
<p class="paragraph">
The ease of Octauthent doesn't make it less secure than other authentication solutions or something you
would code yourself
<br>
<br>
Every request to your website domain is intercepted and evaluated by Octauthent, which acts as a
bouncer. Unauthorized requests are blocked, allowed ones are proxied to your website.
<br>
<br>
Under the hood, Octauthent uses well known industry standards, such as JSON Web Tokens (JWT), RSA with
SHA-256 for signatures, and bcrypt for hashing passwords.
</p>
</div>
</div>
</div>
</section>
<!-- END Features -->
<!-- Newsletter -->
<section id="newsletter" class="section">
<div class="container">
<h3 class="is-size-3 mb-3 is-family-secondary title">What are you waiting for?</h3>
<p>
You are one step away from having a secure authentication system on your website
<br>
<br>
Sign up today and protect your website for free!
</p>
<a class="button has-mustard-bg has-text-white mt-5 umami--click--sign-up-button-bottom" href="https://app.octauthent.com/login">
<strong>Sign up now</strong>
</a>
</div>
</section>
<!-- END Newsletter -->
</div>
<!-- END Wrapper -->
<!-- Footer -->
<footer id="footer" class="section has-mustard-bg">
<div class="container has-text-centered">
<a href="https://github.com/octauthent" target="_blank" class="is-size-4 social-link umami--click--github-button-footer">
<svg class="svg-inline--fa fa-github fa-w-16" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="github" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512" data-fa-i2svg=""><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg><!-- <i class="fab fa-github"></i> -->
</a>
<a href="https://octauthent.medium.com" target="_blank" class="is-size-4 social-link umami--click--medium-button-footer">
<svg class="svg-inline--fa fa-medium fa-w-14" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="medium" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg=""><path fill="currentColor" d="M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z"></path></svg><!-- <i class="fab fa-medium"></i> -->
</a>
<a href="https://dev.to/bokub/how-to-add-a-login-form-to-any-website-without-a-single-line-of-code-39h" target="_blank" class="is-size-4 social-link umami--click--dev-button-footer">
<svg class="svg-inline--fa fa-dev fa-w-14" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="dev" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg=""><path fill="currentColor" d="M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z"></path></svg><!-- <i class="fab fa-dev"></i> -->
</a>
</div>
</footer>
<div aria-live="polite" class="crisp-client"><div class="cc-rukbw"><div class="cc-9yvsj"><style type="text/css">.crisp-client *:focus-visible {
outline-color: #091C87 !important;
}
.crisp-client .cc-1brb6 .cc-co79q {
color: #FFFFFF !important;
}
.crisp-client .cc-1brb6 .cc-1dvce {
color: #2943D1 !important;
}
.crisp-client .cc-1brb6 .cc-5t1tm {
background-color: #FFFFFF !important;
}
.crisp-client .cc-1brb6 .cc-1q2sq {
background-color: #091C87 !important;
}
.crisp-client .cc-1brb6 .cc-62iw4 {
background-color: #1732C4 !important;
}
.crisp-client .cc-1brb6 .cc-1kgzy {
background-color: #2943D1 !important;
}
.crisp-client .cc-1brb6 .cc-1kgzy *:focus-visible {
outline-color: #F0F2F5 !important;
}
.crisp-client .cc-1brb6 .cc-m59gn {
background-color: #F5F5FB !important;
}
.crisp-client .cc-1brb6 .cc-jtuj4 {
background-color: #F0F2F5 !important;
}
.crisp-client .cc-1brb6 .cc-1ikmr {
border-color: #FFFFFF !important;
}
.crisp-client .cc-1brb6 .cc-1i61z,
.crisp-client .cc-1brb6 .cc-134r8:hover {
border-color: #2943D1 !important;
}
.crisp-client .cc-1brb6 .cc-un6tk {
border-color: rgba(41, 67, 209, 0.2) !important;
}
.crisp-client .cc-1brb6 .cc-weiiy {
border-bottom-color: #2943D1 !important;
}
.crisp-client .cc-1brb6 .cc-18tkz::placeholder {
color: #92A9C1 !important;
}
.crisp-client .cc-1brb6 .cc-10xgc::placeholder {
color: #92A9C1 !important;
}
.crisp-client .cc-1brb6 .cc-y2afy,
.crisp-client .cc-1brb6 .cc-y2afy:active,
.crisp-client .cc-1brb6 .cc-1swm7:hover .cc-17cww,
.crisp-client .cc-1brb6 .cc-1swm7 .cc-17cww:active {
background: #091C87 !important;
}
.crisp-client .cc-1brb6 .cc-coh7k,
.crisp-client .cc-1brb6 .cc-1cx9a:hover,
.crisp-client .cc-1brb6 .cc-1xhex[data-active="true"] .cc-ydjl9 {
background: #112BB9 !important;
}
.crisp-client .cc-1brb6 .cc-y2afy:hover,
.crisp-client .cc-1brb6 .cc-coh7k:hover,
.crisp-client .cc-1brb6 .cc-1cx9a:active {
background: #0F249A !important;
}
.crisp-client .cc-1brb6 .cc-coh7k:active {
background: #091C87 !important;
}
.crisp-client .cc-1brb6 .cc-aoc5z:hover .cc-fajgc {
background: #112BB9 !important;
}
.crisp-client .cc-1brb6 .cc-aoc5z .cc-fajgc:active {
background: #0F249A !important;
}
.crisp-client .cc-1brb6 .cc-f5i1a,
.crisp-client .cc-1brb6 .cc-70ynx:hover .cc-iuh54,
.crisp-client .cc-1brb6 .cc-70ynx .cc-iuh54:active {
background: #2943D1 !important;
}
.crisp-client .cc-1brb6 .cc-f5i1a:hover {
background: #1732C4 !important;
}
.crisp-client .cc-1brb6 .cc-f5i1a:active {
background: #112BB9 !important;
}
.crisp-client .cc-1brb6 .cc-vibqn::selection,
.crisp-client .cc-1brb6 .cc-vibqn *::selection {
color: #1c293b !important;
background-color: #DDE2FF !important;
}</style></div><div class="cc-k4lmp"><style type="text/css">.crisp-client .cc-1brb6 {
z-index: 1000000;
}</style></div></div><div id="crisp-chatbox" lang="en" dir="ltr" translate="no" tabindex="-1" class="cc-1brb6" data-hidden="false" data-force-show="false" data-color-mode="light" data-availability="away" data-lock-maximized="false" data-website-logo="false" data-last-operator-face="false" data-ongoing-operator-face="false" data-availability-tooltip="false" data-hide-vacation="false" data-blocked="false" data-mobile-view="false" data-full-view="false" data-small-view="true" data-large-view="false" data-has-local-messages="false" data-was-availability-online="false" data-is-activity-ongoing="false" data-hide-on-away="false" data-hide-on-mobile="false" data-position-reverse="false"><div class="cc-1yy0g cc-1wive cc-vibqn"><a data-maximized="false" data-is-failure="false" class="cc-1m2mf" tabindex="0" role="button" aria-label="Open chat" data-pane-animate-entrance="false" data-pop="minimized:open"><span class="cc-6lwfw"><!--v-if--></span><span class="cc-157aw cc-1kgzy"><span data-id="chat_closed" data-is-ongoing="false" class="cc-d73fc"><span class="cc-1bvfm cc-hshc7"><!--v-if--></span></span></span></a></div></div></div></body></html>