{"componentChunkName":"component---src-templates-blog-list-template-js","path":"/105","result":{"data":{"allMarkdownRemark":{"edges":[{"node":{"excerpt":"Many of us have to choose between Merge and Rebase as a Developer. Here I'll explain what merge and rebase are, why you should use them, and…","fields":{"slug":"/engineering/git-rebase-vs-git-merge/"},"html":"<p>Many of us have to choose between Merge and Rebase as a Developer. Here I'll explain what merge and rebase are, why you should use them, and how to do so.</p>\n<p>The same function is fulfilled by Git Merge and Git Rebase. They are built to incorporate adjustments into one from different divisions. Although the end objective is the same, it is done in various ways by those two approaches, and it is useful to know the difference as you become a better developer of software.</p>\n<h2 id=\"what-are-git-merge-and-git-rebase\" style=\"position:relative;\"><a href=\"#what-are-git-merge-and-git-rebase\" aria-label=\"what are git merge and git rebase permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What are Git Merge and Git Rebase?</h2>\n<p><em>Git Merge and Git Rebase are both used to combine the changes of branches but in a distinct way.</em></p>\n<p><strong>Git Merge</strong> - For developers using version control systems, merging is a prevalent method. Merging takes the contents of a source branch and combines them with a target branch, to be more precise. Only the <a href=\"https://medium.com/@loginradius/how-to-fetch-a-remote-branch-using-git-5c0f6d28264d\">target branch is updated</a> in this process. The history of the source branch remains similar.</p>\n<p><strong>Git Rebase</strong> - Another way to integrate modifications from one branch to another is by Rebase. Rebase compresses all the modifications into a single patch. The patch is then inserted into the target branch.</p>\n<h3 id=\"git-merge\" style=\"position:relative;\"><a href=\"#git-merge\" aria-label=\"git merge permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Git Merge</h3>\n<p>Combine multiple branch histories together.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">  A---B---C feature</span>\n<span class=\"grvsc-line\"> /</span>\n<span class=\"grvsc-line\">D---E---F---G master </span></code></pre>\n<p>if we are merging feature and master branch, then it would be</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">  A---B---C feature</span>\n<span class=\"grvsc-line\"> /               \\</span>\n<span class=\"grvsc-line\">D---E---F---G---H master</span></code></pre>\n<p><strong>Commands</strong> for merging feature and master branch</p>\n<p><code>git checkout feature</code>\n<code>git merge master</code></p>\n<p><strong>Note:</strong></p>\n<ul>\n<li>merge executes only one new commit</li>\n<li>if the feature branch has a completely different development </li>\n<li>If you get conflict while merging\n<code>resolve conflicts</code>\n<code>git add (changes)</code>\n<code>git merge --continue</code></li>\n</ul>\n<h3 id=\"git-rebase\" style=\"position:relative;\"><a href=\"#git-rebase\" aria-label=\"git rebase permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Git Rebase</h3>\n<p>Reapply commits on top of the base branch</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">   A---B---C feature</span>\n<span class=\"grvsc-line\"> /</span>\n<span class=\"grvsc-line\">D---E---F---G master</span></code></pre>\n<p>if we are rebasing the feature branch onto the master branch, then it would be</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"3\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">\t   A&#39;--B&#39;--C&#39; feature</span>\n<span class=\"grvsc-line\">\t /</span>\n<span class=\"grvsc-line\">\tD---E---F---G master</span></code></pre>\n<p><strong>Commands</strong> for merging feature and master branch</p>\n<p><code>git checkout feature</code>\n<code>git rebase master</code></p>\n<p><strong>Note:</strong> </p>\n<ul>\n<li>rebase typically executes multiple (number of commits in current branch).</li>\n<li>If you get conflict while rebasing\n<code>resolve conflicts</code>\n<code>git add (changes)</code>\n<code>git rebase --continue</code></li>\n</ul>\n<h2 id=\"when-to-use-git-rebase-or-git-merge\" style=\"position:relative;\"><a href=\"#when-to-use-git-rebase-or-git-merge\" aria-label=\"when to use git rebase or git merge permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>When to use Git Rebase or Git Merge</h2>\n<h3 id=\"choose-merge\" style=\"position:relative;\"><a href=\"#choose-merge\" aria-label=\"choose merge permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Choose Merge</h3>\n<ul>\n<li>whenever we want to add changes of a feature branch back into the base branch.</li>\n<li>if you want to keep the same history rather than rewrite it.</li>\n<li>if you want to revert the changes quickly</li>\n</ul>\n<h3 id=\"choose-rebase\" style=\"position:relative;\"><a href=\"#choose-rebase\" aria-label=\"choose rebase permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Choose Rebase</h3>\n<ul>\n<li>whenever we want to add changes of a base branch back to a feature branch.</li>\n<li>squash multiple commits</li>\n<li>reiterate each commit and update the changes</li>\n<li>reverting rebase would be very difficult</li>\n</ul>\n<h3 id=\"conclusion\" style=\"position:relative;\"><a href=\"#conclusion\" aria-label=\"conclusion permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Conclusion</h3>\n<p>I hope some perspectives on Git merge and Git rebase have been provided by this description. The strategy of merge vs rebase is still debatable. But maybe this article will help to dispel your doubts and encourage you to take an approach that works for your team. Here are few articles posted by me that will help you in learning few more things in Git:</p>\n<ol>\n<li><a href=\"https://www.loginradius.com/blog/engineering/git-cherry-pick/\">How to use Git Cherry Pick</a></li>\n<li><a href=\"https://www.loginradius.com/blog/engineering/git-pull-force/\">How to Perform a Git Force Pull</a></li>\n</ol>\n<p>Do comment on the subjects that you would like me to write about in the coming weeks :)</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n  .dark-default-dark {\n    background-color: #1E1E1E;\n    color: #D4D4D4;\n  }\n</style>","frontmatter":{"date":"January 27, 2021","updated_date":null,"description":"In this post, I will give you a walkthrough on merge and rebase, comparing Git rebase vs. Git merge to find out the similarities and differences.","title":"Git merge vs. Git Rebase: What's the difference?","tags":["GIT"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/23c891d4a8760d428bfc6f05aa86f387/58556/merge.webp","srcSet":"/static/23c891d4a8760d428bfc6f05aa86f387/61e93/merge.webp 200w,\n/static/23c891d4a8760d428bfc6f05aa86f387/1f5c5/merge.webp 400w,\n/static/23c891d4a8760d428bfc6f05aa86f387/58556/merge.webp 800w,\n/static/23c891d4a8760d428bfc6f05aa86f387/99238/merge.webp 1200w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Abhimanyu Singh Rathore","github":"abhir9","avatar":null}}}},{"node":{"excerpt":"An Identity Broker is an intermediary service that connects multiple service providers (SP) with different identity providers (IdP). It is…","fields":{"slug":"/identity/loginradius-identity-brokering/"},"html":"<p>An Identity Broker is an intermediary service that connects multiple service providers (SP) with different identity providers (IdP). It is responsible for developing trustworthy relationships with external IdPs and utilizing their respective identities to gain access to the service providers' internal services. </p>\n<p>Businesses can link an existing account with one or more identities from various IdPs, or even create new identities based on the information obtained from them. </p>\n<p>Using LoginRadius' Identity Brokering, businesses do not require consumers to provide their credentials to authenticate. Instead, LoginRadius acts as an identity broker service between the Identity and Service Providers and enables the authentication process between the two using the <a href=\"https://www.loginradius.com/protocols/\">industry-standard protocols</a>.</p>\n<h2 id=\"intend-behind-the-launch\" style=\"position:relative;\"><a href=\"#intend-behind-the-launch\" aria-label=\"intend behind the launch permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Intend Behind the Launch</h2>\n<p>With LoginRadius Identity Brokering service, businesses can enjoy a seamless authentication experience and delegate all single sign-on requirements to a click of a button. A few other  benefits include:</p>\n<ul>\n<li><strong>Better flexibility</strong>: Businesses can easily configure IdPs of their choice, including Google, Facebook, Linked In, and even custom ones. </li>\n<li><strong>Eliminate complexity</strong>: Businesses can delegate their <a href=\"https://www.loginradius.com/single-sign-on/\">SSO requirements to LoginRadius</a>, thereby eliminating the need to understand and implement complex SSO protocols like SAML, OpenID, JWT, and OAuth. </li>\n<li><strong>Verified digital identity</strong>: Businesses need not worry about verifying the consumers who authenticate themselves using configured IdPs. Such identities are already verified with respective IdPs.</li>\n</ul>\n<p><a href=\"https://www.loginradius.com/resource/identity-brokering-datasheet\"><img src=\"/da693b6edc2fcd47bb8d4dc420b1a1b0/identity-brokering.webp\" alt=\"identity-brokering\"></a></p>\n<h2 id=\"key-features-offered-by-loginradius\" style=\"position:relative;\"><a href=\"#key-features-offered-by-loginradius\" aria-label=\"key features offered by loginradius permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Key Features Offered by LoginRadius</h2>\n<ul>\n<li><strong>Configurable IdP and SP</strong>: Businesses can choose from the list of pre-configured IdPs or configure a custom IdP by choosing the supported protocol and providing the required details in the LoginRadius Admin Console. </li>\n<li><strong>Multiple protocol support</strong>: LoginRadius supports multiple SSO protocols like SAML, JWT, OAuth for identity brokering. Businesses can choose and configure their apps with LoginRadius for any of these protocols.</li>\n<li><strong>SP and IdP Initiated SSO</strong>: LoginRadius supports both SP and IdP initiated SSO flows with the SAML protocol. SP initiated is where the consumer lands on the service provider and redirects the identity provider for authentication. From IdP, the consumer is redirected back to the SP with an authentication response. IdP initiated is where the consumer lands on the identity provider and then redirects to the service provider with an authentication response.</li>\n</ul>\n<h2 id=\"conclusion\" style=\"position:relative;\"><a href=\"#conclusion\" aria-label=\"conclusion permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Conclusion</h2>\n<p>With Identity Brokering, businesses can skip the use of complex protocols and enjoy the luxury of simply calling an HTTPS endpoint—a much easier option to implement than understanding standards SSO protocols.</p>\n<p>Moreover, businesses acquire flexibility and verified digital identities, whereas consumers gain a <a href=\"https://www.loginradius.com/authentication/\">seamless authentication experience</a>. A win-win for both parties! </p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=loginradius-identity-brokering\"><img src=\"/8fce571f703a5970dbb1359a2fe0e51a/book-a-demo-loginradius.webp\" alt=\"book-a-demo-loginradius\"></a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"January 27, 2021","updated_date":null,"description":"Using Identity Brokering, businesses do not require consumers to provide their credentials to authenticate. Instead, LoginRadius acts as an identity broker service between the Identity and Service Providers and enables the authentication process between the two.","title":"Announcement - LoginRadius Announces Identity Brokering To Establish Trust Between Identity and Service Providers","tags":["identity management","authentication","sso","cx"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.408450704225352,"src":"/static/839cf09f4bf02d1e0413101ff032e7e7/c0524/loginradius-identity-brokering.webp","srcSet":"/static/839cf09f4bf02d1e0413101ff032e7e7/61e93/loginradius-identity-brokering.webp 200w,\n/static/839cf09f4bf02d1e0413101ff032e7e7/1f5c5/loginradius-identity-brokering.webp 400w,\n/static/839cf09f4bf02d1e0413101ff032e7e7/c0524/loginradius-identity-brokering.webp 769w","sizes":"(max-width: 769px) 100vw, 769px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.webp"}}}},{"node":{"excerpt":"Onboarding is the process of helping new users understand and experience how your product is intending to help them in achieving their goals…","fields":{"slug":"/identity/user-onboarding-revamp-application/"},"html":"<p>Onboarding is the process of helping new users understand and experience how your product is intending to help them in achieving their goals. In general, you confirm to your consumers that your product is the best solution to their problem, which inspired them to find your product.</p>\n<p>Meanwhile, the onboarding process is your user's first impression about your application and, if correctly designed, it can be successfully adopted. </p>\n<p>When the user launches your app for the first time, the onboarding process reinforces your application's value and offers instructions that focus on potential features and benefits. </p>\n<h2 id=\"5-ways-how-user-onboarding-can-upgrade-your-application\" style=\"position:relative;\"><a href=\"#5-ways-how-user-onboarding-can-upgrade-your-application\" aria-label=\"5 ways how user onboarding can upgrade your application permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>5 Ways How User Onboarding Can Upgrade Your Application</h2>\n<ol>\n<li>All consumers are different; if you are analyzing your consumer through the same script, you might be missing some information about their needs, which might lead to missed opportunities throughout or after the onboarding process.</li>\n<li>The onboarding process cannot be explained in one minute. It should be clear and precise. If you cannot explain the process within a minute, then you cannot expect your consumer to follow the whole process.</li>\n<li>If you do not have an internal transition process, you cannot ask your consumer to trust the process to onboard correctly and manage them efficiently. The consumer should know that whatever is discussed and agreed upon during the sales process is documented. The consumer success team has already been briefed and should pick up and start the onboarding process.</li>\n<li>Onboarding involves people, products, and processes. It is more likely that any one of these components will evolve within the year. They might evolve simultaneously or independently. However, the main criteria is they might change if you do not upgrade your onboarding process according to their convenience. It's time you start incorporating these developments according to the changes.</li>\n<li>You need to know the time frame that it takes to onboard your consumer. So, if you don't know it yet, consider it as a warning sign. If you have a clear number, it is easy to measure whether your process is working or not and gauge where you need to make alterations.</li>\n</ol>\n<h2 id=\"what-are-the-primary-elements-of-an-ideal-user-onboarding-process\" style=\"position:relative;\"><a href=\"#what-are-the-primary-elements-of-an-ideal-user-onboarding-process\" aria-label=\"what are the primary elements of an ideal user onboarding process permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What Are the Primary Elements of an Ideal User Onboarding Process</h2>\n<p><img src=\"/59b5eafe30d1ffa7e2d8895cb07a8b0f/ideal-user-onboarding-process.webp\" alt=\"ideal-user-onboarding-process\"></p>\n<p>The onboarding process should be a mix of inspiration, education, timely and actionable insights. Each product is unique, and how you are going to handle the onboarding will help you to know about your users, their needs, and how your product is going to stay with them.</p>\n<p>So, here are the different <a href=\"https://www.loginradius.com/blog/fuel/2021/01/user-onboarding-tools/\">user onboarding tools</a> and resources that you can use to revamp your application. </p>\n<ul>\n<li>Personalized welcome.</li>\n</ul>\n<p>A greeting is one of the best ways to interact with new users during offline engagements; the same applies to online ones. Welcome your consumer by offering bonus materials such as additional integration, e-books, which will help them get started. </p>\n<p>Also, you can personalize the welcome message by using the consumer's name or their company. It can act as a lovely gesture and will show users that you value their business. </p>\n<ul>\n<li>Demonstrate the product.</li>\n</ul>\n<p>You can demonstrate key functions and explain to users how they can accomplish a particular task. If you do not highlight your product's purpose, then the user might fail to see the benefit of your product. </p>\n<p>Besides, consumers' success depends on using the product correctly; if they find it difficult, they might be frustrated with your product.</p>\n<ul>\n<li>Set specific goals.</li>\n</ul>\n<p>One of the major steps is setting specific goals for active users. Once you send your goals, create logical steps to reach the desired outcome of your product. </p>\n<p>Also, adding a checklist within the app can help your consumers stay on track and motivated.</p>\n<ul>\n<li>Offer consumer service.</li>\n</ul>\n<p>You should know that offering <a href=\"https://www.loginradius.com/customer-experience-solutions/\">exceptional consumer service</a> is imperative for a business to succeed. If your consumer service is good, your consumer will come back to you for more. You can also add a live chat feature or add phone assistance and email assistance to your application. </p>\n<ul>\n<li>Produce quality content.</li>\n</ul>\n<p>Add more value to your application by producing quality content that will help consumers solve their problems. When you provide advice that greatly benefits them, you can become your client’s trusted advisor. And with added trust comes the prospect of earning more sales.</p>\n<ul>\n<li>The Aha! moment.</li>\n</ul>\n<p>This happens when your customer truly appreciates the value of your software. Complex <a href=\"/blog/growth/sign-up-tips-conversion-rate/\">sign-up forms</a> and painful login processes can create a tough barrier between the new user and the ‘Aha Moment.’ </p>\n<p>The main goal of onboarding is to show new users the key features and guide users towards the ‘Aha Moment,’ which is called the moment of delight, where the value of the product becomes instantly clear.</p>\n<p><a href=\"https://www.loginradius.com/resource/ciam-101/\"><img src=\"/a767d6e8343518669ff37c6733fb5799/ciam-101.webp\" alt=\"ciam-101\"></a></p>\n<ul>\n<li>In-app messaging and ‘empty states’.</li>\n</ul>\n<p>One of the most powerful tools for engaging users completely is by using the in-app message function. These touchpoints are highly effective when introducing new updates and features or conveying some important information to your users. </p>\n<p>Empty space is how your product or app looks when you first use it before it is filled with useful content. The empty state design should prompt the user to fill content or add sample content illustrating the app’s value, thereby helping the user feel more confident to take the next step.</p>\n<ul>\n<li>Set up automated alerts.</li>\n</ul>\n<p>If you are looking for people who have not completed the onboarding process, you can use alerts to remind them to finish it. You can also set up automated alerts that will push people to complete it.</p>\n<ul>\n<li>Onboard your current users to new features.</li>\n</ul>\n<p>The onboarding process is not just for new users but for current users to receive updates and on new features.</p>\n<ul>\n<li>Offer multiple channels of communication.</li>\n</ul>\n<p>To increase user interaction and retention, use multiple channels for communication. You can also use outside channels like text messages, live chat, and automated email sequences to aid the onboarding process along with in-app messaging.</p>\n<h2 id=\"how-loginradius-helps-businesses-to-enhance-a-great-user-onboarding-experience\" style=\"position:relative;\"><a href=\"#how-loginradius-helps-businesses-to-enhance-a-great-user-onboarding-experience\" aria-label=\"how loginradius helps businesses to enhance a great user onboarding experience permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>How LoginRadius Helps Businesses to Enhance a Great User Onboarding Experience</h2>\n<p>Data breaches can cost companies loss of revenue and fines. To earn your consumers' trust and protect your brand, you need to take up advanced data security measures to keep the threats at bay. </p>\n<p>LoginRadius protects the identity of customers through multi-level security systems with <a href=\"https://www.loginradius.com/press/loginradius-is-the-only-identity-platform-to-deliver-100-system-availability-in-2018/\">99.99% availability</a>. To help businesses deliver a dedicated consumer experience and win customer trust, the platform offers the following: </p>\n<ul>\n<li><strong>Design an ideal consumer journey</strong>. From the first step of onboarding to the thousandth login, the <a href=\"https://www.loginradius.com/blog/identity/2019/06/customer-identity-and-access-management/\">CIAM platform</a> creates a welcoming and intelligent process.</li>\n<li><strong>Offer localization</strong>. Businesses can customize their forms, email messages, and texts for the worldwide market according to the local language. </li>\n<li><strong>Tailor-make interfaces</strong>. Businesses can choose their custom fields and design their own registration, login, and forgotten password forms. </li>\n<li><strong>Use an email workflow that actually works</strong>. LoginRadius provides customizable templates and sequences to get into the consumers' inbox and manage the login process. </li>\n<li><strong>Unify the login process with single sign-on</strong>. Businesses can connect their websites, mobile apps, and third-party dependencies so consumers can interact with <a href=\"https://www.loginradius.com/blog/identity/2019/05/what-is-single-sign-on/\">a single identity</a>.</li>\n</ul>\n<p>LoginRadius's identity platform can streamline the login process and also protect customer accounts by complying with global data privacy regulations during the onboarding process.</p>\n<h2 id=\"conclusion\" style=\"position:relative;\"><a href=\"#conclusion\" aria-label=\"conclusion permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Conclusion</h2>\n<p>You know by now how user onboarding software can revamp your application. But, onboarding is not an easy process or just about offering new users a warm welcome. There's more to it. And that includes helping <a href=\"https://www.loginradius.com/blog/fuel/2019/11/improve-customer-experience-ecommerce/\">new users experience the value of your product</a> and retaining current users. </p>\n<p>It takes time to build an onboarding process and a lot of work to update it. You cannot change everything immediately, but you can make small changes over a period of time to smoothen the onboarding process.</p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=user-onboarding-revamp-application\"><img src=\"/8fce571f703a5970dbb1359a2fe0e51a/book-a-demo-loginradius.webp\" alt=\"book-a-demo-loginradius\"></a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"January 27, 2021","updated_date":null,"description":"The onboarding process should be a mix of inspiration, education, timely and actionable insights. Each product is unique, and how you are going to handle the onboarding will help you to know about your users, their needs, and how your product is going to stay with them.","title":"5 Ways User Onboarding Software Can Revamp Your Application","tags":["customer-experience"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.408450704225352,"src":"/static/bc1d90dc8e869db17c97f94dd4190922/176df/user-onboarding-application.webp","srcSet":"/static/bc1d90dc8e869db17c97f94dd4190922/61e93/user-onboarding-application.webp 200w,\n/static/bc1d90dc8e869db17c97f94dd4190922/1f5c5/user-onboarding-application.webp 400w,\n/static/bc1d90dc8e869db17c97f94dd4190922/176df/user-onboarding-application.webp 767w","sizes":"(max-width: 767px) 100vw, 767px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.webp"}}}},{"node":{"excerpt":"As the world becomes increasingly digitized, individuals, organizations, and government agencies are producing staggering quantities of data…","fields":{"slug":"/growth/360-degree-growth-data-driven/"},"html":"<p>As the world becomes increasingly digitized, individuals, organizations, and government agencies are producing staggering quantities of data every day. In fact, <a href=\"https://www.domo.com/solution/data-never-sleeps-6\">according to a report</a>, 1.7MB of data is created every second for every person on earth.  </p>\n<p>But are companies leveraging such massive amounts of data for competitive advantage? The response, for the most part, is, 'no.'</p>\n<p>This shortfall in capability can seriously limit the growth of an organization or even undermine its overall performance.</p>\n<p>A data-driven approach can save the day. </p>\n<p>Data plays a pivotal role in enabling long-term and sustainable growth. This means, if you want to take quick actions with minimum risk, data is your only savior. </p>\n<p>A data-driven approach is adopting strategic actions based on analysis and interpretation of data rather than observation. So, how do you identify and unlock a 360-degree growth of your data? </p>\n<p>Let's find out. </p>\n<h3 id=\"prioritize-and-focus\" style=\"position:relative;\"><a href=\"#prioritize-and-focus\" aria-label=\"prioritize and focus permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>Prioritize and focus.</strong></h3>\n<p>The first step is to understand and monitor the right metrics, also known as the <a href=\"https://www.loginradius.com/blog/fuel/2021/01/north-star-metrics-nsm/\">North Star Metics</a>. To qualify as a North Star, a metric must cover three primary parameters: </p>\n<ul>\n<li>Your data should help generate revenue. </li>\n<li>Your data should reflect your consumer value.</li>\n<li>Your data should help measure progress. </li>\n</ul>\n<p>Take note if you aren't measuring the right metric yet. </p>\n<h3 id=\"measure-relevant-data\" style=\"position:relative;\"><a href=\"#measure-relevant-data\" aria-label=\"measure relevant data permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Measure relevant data.</h3>\n<p>The second step is to analyze the right set of data, period, and context. Therefore, once you identify your data source, start capturing it. Set the time period and segregate the data into relevant buckets.</p>\n<p>Though this step may seem simple, you may end up with insights that are not even relevant if you collect data in the wrong frame. It won't be easy to make the right choices at the right time. </p>\n<p>Therefore, remove all useless data before you start analyzing.</p>\n<p>Let's understand with an example that a sales team wants to accelerate their revenue growth. (P.S. Revenue growth is the North Star metrics here). So, how can they achieve that?</p>\n<ul>\n<li>By implementing strategies to add new businesses.</li>\n<li>By increasing their consumer base.</li>\n<li>By reducing revenue leakages.</li>\n</ul>\n<p>Start collecting data for adding new business and review where targets are most likely to buy. Consequently, you can research data based on demographics, firmographics, economics, etc. </p>\n<p>Furthermore, to uncover key predictors of growth in existing customers and who are likely to buy add-on services, you could be capturing data of existing customers, their purchase and usage behavior, product use trends, and more. </p>\n<p>Finally, to reduce revenue leakage, you could capture data for pricing strategy or discount strategy. You could also be monitoring industry data, deal sizes, and details to analyze and maximize revenue for each deal.  </p>\n<p><a href=\"https://www.loginradius.com/resource/loginradius-consumer-audit-trail\"><img src=\"/3415fb3613a33348a8315ccda1da6186/consumer-audit-trail.webp\" alt=\"consumer-audit-trail\"></a></p>\n<h3 id=\"analyze-and-capture-insights\" style=\"position:relative;\"><a href=\"#analyze-and-capture-insights\" aria-label=\"analyze and capture insights permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>Analyze and capture insights.</strong></h3>\n<p>The third step is to analyze the collected data. You can use <a href=\"https://www.loginradius.com/customer-insights/\">various tools to generate insights</a>, trends, and patterns. For example, you can add historical behavior and customer feedback for data-based insights. Next, set a strategy and plan of action based on those insights. </p>\n<h3 id=\"execution-is-key\" style=\"position:relative;\"><a href=\"#execution-is-key\" aria-label=\"execution is key permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>Execution is key.</strong></h3>\n<p>So, you have received the insights and planned your actions. What about execution? Well, that's crucial too. Here's what you can do: </p>\n<ul>\n<li>Communicate your insights to all relevant stakeholders.</li>\n<li>Formulate a team for execution.</li>\n<li>Timely execute and review progress.</li>\n<li>Measure and take course correction, if required.</li>\n</ul>\n<p>Note that it is important to analyze your data in realtime and share it with all stakeholders. Also, to implement a successful data-driven approach, it is crucial that you manage, integrate, and analyze your data from one source. </p>\n<p>Research suggests that <em>only 62% of organizations implement their strategies in a timely manner after analysis.</em> Companies that use data-driven decisions make high profits and can reduce substantial costs. </p>\n<p>So, there you go —</p>\n<p>\"Leverage\" data, \"analyze,\" \"implement,\" \"measure,\" and then \"repeat success.\" </p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=360-degree-growth-data-driven\"><img src=\"/8fce571f703a5970dbb1359a2fe0e51a/book-a-demo-loginradius.webp\" alt=\"book-a-demo-loginradius\"></a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"January 25, 2021","updated_date":null,"description":"In order to optimize their marketing efforts, marketers are continually searching for a better plan, and a 360 data driven approach would be crucial to unravelling the required customer insights.","title":"How to Achieve a 360-Degree Growth with Data-Driven Approach","tags":null,"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":0.6666666666666666,"src":"/static/2431033287ce081448eacaa0e24d2485/58556/360-degree-growth-with-data-driven.webp","srcSet":"/static/2431033287ce081448eacaa0e24d2485/61e93/360-degree-growth-with-data-driven.webp 200w,\n/static/2431033287ce081448eacaa0e24d2485/1f5c5/360-degree-growth-with-data-driven.webp 400w,\n/static/2431033287ce081448eacaa0e24d2485/58556/360-degree-growth-with-data-driven.webp 800w,\n/static/2431033287ce081448eacaa0e24d2485/99238/360-degree-growth-with-data-driven.webp 1200w,\n/static/2431033287ce081448eacaa0e24d2485/135cd/360-degree-growth-with-data-driven.webp 1280w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Shachindra Saxena","github":null,"avatar":null}}}},{"node":{"excerpt":"An infrastructure layer that allows you to manage communication between the microservices of your application is a service mesh. As more…","fields":{"slug":"/engineering/istio-installation-and-service-configuration/"},"html":"<p>An infrastructure layer that allows you to manage communication between the microservices of your application is a service mesh. As more developers work with microservices, by consolidating common management and administrative tasks in a distributed setup, service meshes have developed to make the job easier and more effective.</p>\n<p>To know more about Istio, you can read this article on <a href=\"https://www.loginradius.com/blog/engineering/istio-service-mesh\">Istio service mesh</a> to understand the basic terminology, In this tutorial, will explain how to install and configure Istio. Let's get started.</p>\n<h2 id=\"installing-istio\" style=\"position:relative;\"><a href=\"#installing-istio\" aria-label=\"installing istio permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Installing Istio</h2>\n<p>Get the latest Istio release:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">curl -L https://istio.io/downloadIstio | sh -</span></code></pre>\n<p>Extract the archive and export the bin directory in the environment path.</p>\n<p>This will also install istioctl, a command-line tool to manage Istio service mesh.</p>\n<h3 id=\"configuration-profiles\" style=\"position:relative;\"><a href=\"#configuration-profiles\" aria-label=\"configuration profiles permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Configuration Profiles</h3>\n<p>Istio provides various built-in configuration profiles, a set of pre-defined configs related to data and control plane. We can customize the configs according to our needs.</p>\n<p>For testing locally or trying it ou, you can use a demo profile. For dev and other environments, we will be using the default configuration profile.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">istioctl install --set profile=demo</span></code></pre>\n<h3 id=\"customizing-configs\" style=\"position:relative;\"><a href=\"#customizing-configs\" aria-label=\"customizing configs permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Customizing configs</h3>\n<p>Run:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">istioctl profile dump default</span></code></pre>\n<p>to see the various configurations. We can change those flag using istioctl commands and --set flag.</p>\n<p>For development purpose, we can enabled/changes following flags:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"3\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">istioctl install --set addonComponents.kiali.enabled=true \\ </span>\n<span class=\"grvsc-line\">--set components.telemetry.enabled=true \\ </span>\n<span class=\"grvsc-line\">--set components.citadel.enabled=true \\ </span>\n<span class=\"grvsc-line\">--set values.global.proxy.privileged=true \\ </span>\n<span class=\"grvsc-line\">--set addonComponents.tracing.enabled=true \\ </span>\n<span class=\"grvsc-line\">--set values.pilot.traceSampling=100.0 \\ </span>\n<span class=\"grvsc-line\">--set values.global.proxy.tracer=datadog</span></code></pre>\n<p>The path value of <code>--set</code> flag is the YAML path, which you can see in the profile dump command.</p>\n<blockquote>\n<p>While changing any config, make sure to pass all the previous flags with the new ones. For example, if first time, you enabled istioctl install --set addonComponents.kiali.enabled=true and now let’s say, you want to enable citadel, then you have to pass both flags like this: istioctl install --set addonComponents.kiali.enabled=true --set components.telemetry.enabled=true.\nFailing to add any previously enabled variable will revert the config to its default values.\nOne way to store the dump in a file and do istioctl apply or use helm charts for Istio.</p>\n</blockquote>\n<h3 id=\"sidecar-injection\" style=\"position:relative;\"><a href=\"#sidecar-injection\" aria-label=\"sidecar injection permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Sidecar injection</h3>\n<p>For Istio to work properly, a sidecar Envoy proxy needs to be enabled for the services. By default, the Istio control plane will not enable any sidecar to any services. To enable sidecar, we have to add labels at the namespace level.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"4\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">kubectl label namespace dsl-test istio-injection=enabled</span></code></pre>\n<p>You need to have this label even if you do not want to add a sidecar to all your services.</p>\n<p>You need to restart the pods.</p>\n<p>For services, which do not require sidecar, we need to add the following annotation in the deployment template:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"5\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"># Pod Annotations </span>\n<span class=\"grvsc-line\">podAnnotations: </span>\n<span class=\"grvsc-line\">\tsidecar.istio.io/inject: &quot;false&quot;</span></code></pre>\n<h2 id=\"configuring-services\" style=\"position:relative;\"><a href=\"#configuring-services\" aria-label=\"configuring services permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Configuring Services</h2>\n<p>For demonstration, we will take two demo services demo-1 and demo-2, and configure both services with Istio, and will try to call demo-2 service from demo-1. Make sure there is an env variable in demo-1, which we will configure with demo-2 internal DNS url. The programming language for the two services does not matter here.</p>\n<p>A service configuration requires a VirtualService, DestinationRule, PeerAuthentication, and optionally a Gateway configuration.</p>\n<h3 id=\"gateway\" style=\"position:relative;\"><a href=\"#gateway\" aria-label=\"gateway permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Gateway</h3>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"6\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">apiVersion: networking.istio.io/v1alpha3 </span>\n<span class=\"grvsc-line\">kind: Gateway </span>\n<span class=\"grvsc-line\">metadata: </span>\n<span class=\"grvsc-line\">\tname: demo-1</span>\n<span class=\"grvsc-line\">spec: </span>\n<span class=\"grvsc-line\">\tselector: </span>\n<span class=\"grvsc-line\">\t\tistio: ingressgateway </span>\n<span class=\"grvsc-line\">\tservers: </span>\n<span class=\"grvsc-line\">\t- port: </span>\n<span class=\"grvsc-line\">\t\tnumber: 80 </span>\n<span class=\"grvsc-line\">\t\tname: http </span>\n<span class=\"grvsc-line\">\t\tprotocol: HTTP </span>\n<span class=\"grvsc-line\">\t- hosts: </span>\n<span class=\"grvsc-line\">\t\t- &quot;demo-1.example.com&quot;</span></code></pre>\n<p>Gateway is used when we want to access the services from the public network.</p>\n<p>Here we are using the default gateway provided by the Istio. We can also create multiple gateways and assign the proper name here.</p>\n<p>The above gateway configuration enables both HTTP and HTTPS communication. In the case of HTTPS, we have to supply the secret containing the CA certs and key.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"7\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">spec:</span>\n<span class=\"grvsc-line\">\tservers: </span>\n<span class=\"grvsc-line\">\t- port: </span>\n<span class=\"grvsc-line\">\t\tnumber: 443</span>\n<span class=\"grvsc-line\">\t\tname: http </span>\n<span class=\"grvsc-line\">\t\tprotocol: HTTP</span>\n<span class=\"grvsc-line\">\t  tls: </span>\n<span class=\"grvsc-line\">\t\tmode: SIMPLE </span>\n<span class=\"grvsc-line\">\t\tcredentialName: div4-dev-certs</span>\n<span class=\"grvsc-line\">\t  hosts: </span>\n<span class=\"grvsc-line\">\t\t- &quot;demo-1.example.com&quot;</span></code></pre>\n<p>We can apply the same gateway for demo-2. We just have to update the hosts and metadata name. Since we will demo-2 internally from demo-1, there is no need for an external gateway for demo-2 here.</p>\n<h3 id=\"virtualservices\" style=\"position:relative;\"><a href=\"#virtualservices\" aria-label=\"virtualservices permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>VirtualServices</h3>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"8\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">---</span>\n<span class=\"grvsc-line\">apiVersion: networking.istio.io/v1alpha3</span>\n<span class=\"grvsc-line\">kind: VirtualService</span>\n<span class=\"grvsc-line\">metadata:</span>\n<span class=\"grvsc-line\">  name: demo-1</span>\n<span class=\"grvsc-line\">spec:</span>\n<span class=\"grvsc-line\">  hosts:</span>\n<span class=\"grvsc-line\">  - &quot;demo-1.test.svc.cluster.local&quot;</span>\n<span class=\"grvsc-line\">  - &quot;demo-1.example.com&quot;</span>\n<span class=\"grvsc-line\">  gateways:</span>\n<span class=\"grvsc-line\">    - demo-1</span>\n<span class=\"grvsc-line\">  http:</span>\n<span class=\"grvsc-line\">  - route:</span>\n<span class=\"grvsc-line\">    - destination:</span>\n<span class=\"grvsc-line\">        host: demo-1.test.svc.cluster.local</span>\n<span class=\"grvsc-line\">        port:</span>\n<span class=\"grvsc-line\">          number: 80</span></code></pre>\n<p><strong>spec.hosts:</strong> Specifies the URL which the caller of the service will use. Here, dsl-es.pbdp.svc.cluster.local will be used by the services calling internally. The endpoint demo-1.example.com will be exposed publicly, and it should match the <strong>spec.servers.hosts</strong> value in Gateway config.</p>\n<p><strong>spec.gateways:</strong> In order for the gateways configured above to reach the service, we need to define the gateway metadata name here.</p>\n<p><strong>http.route.destination.host:</strong> This value should be the actual service FQDN.</p>\n<h3 id=\"destinationrule\" style=\"position:relative;\"><a href=\"#destinationrule\" aria-label=\"destinationrule permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>DestinationRule</h3>\n<p>After the virtualservice decides the destination hosts, DestinationRule defines the configuration on the actual service. DestinationRule is optional and is needed only in case we want to override the default behavior.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"9\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">---</span>\n<span class=\"grvsc-line\">apiVersion: networking.istio.io/v1alpha3</span>\n<span class=\"grvsc-line\">kind: DestinationRule</span>\n<span class=\"grvsc-line\">metadata:</span>\n<span class=\"grvsc-line\">  name: demo-1</span>\n<span class=\"grvsc-line\">spec:</span>\n<span class=\"grvsc-line\">  host: &quot;demo-1.test.svc.cluster.local&quot;</span>\n<span class=\"grvsc-line\">  trafficPolicy:</span>\n<span class=\"grvsc-line\">    loadBalancer:</span>\n<span class=\"grvsc-line\">      simple: ROUND_ROBIN</span>\n<span class=\"grvsc-line\">    tls:</span>\n<span class=\"grvsc-line\">      mode: ISTIO_MUTUAL</span></code></pre>\n<p><strong>spec.host:</strong> specifies service FQDN</p>\n<p><strong>spec.trafficPolicy:</strong> Specifies policy on the traffic. Here we can specify load balancing algorithms, TLS mode, circuit breaking policies.</p>\n<p><strong>spec.trafficPolicy.tls.mode:</strong> ISTIO_MUTUAL mode is a TLS mode where we will use the certificates generated by the Istio.</p>\n<p>A configuration like circuit breakers, outlier detection comes under the Destination Rule.</p>\n<h3 id=\"peerauthentication\" style=\"position:relative;\"><a href=\"#peerauthentication\" aria-label=\"peerauthentication permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>PeerAuthentication</h3>\n<p>This configuration defines how the other services will connect.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"10\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">---</span>\n<span class=\"grvsc-line\">apiVersion: security.istio.io/v1beta1</span>\n<span class=\"grvsc-line\">kind: PeerAuthentication</span>\n<span class=\"grvsc-line\">metadata:</span>\n<span class=\"grvsc-line\">  name: demo-1</span>\n<span class=\"grvsc-line\">spec:</span>\n<span class=\"grvsc-line\">  selector:</span>\n<span class=\"grvsc-line\">    matchLabels:</span>\n<span class=\"grvsc-line\">      app: demo-1</span>\n<span class=\"grvsc-line\">  mtls:</span>\n<span class=\"grvsc-line\">    mode: STRICT</span></code></pre>\n<p><strong>spec.selector.matchLabels.app:</strong> Specify the deployment label on which this configuration will be applied.</p>\n<p><strong>spec.mtls.mode:</strong> TLS mode. STRICT being the connection will always be mutual tls.</p>\n<p>PeerAuthentication can be applied to a whole namespace. This is useful when all the services in the namespace are part of the mesh.</p>\n<blockquote>\n<p>Apply the same configuration for virutalservice, destination, and peerauthentication by replacing demo-1 with demo-2 assuming both services are in the same namespace.</p>\n</blockquote>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"11\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">kubectl apply -f &lt;file&gt;.yaml -n test</span></code></pre>\n<p>Access the objects:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"12\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">kubectl get virtualservices -n pbdp</span>\n<span class=\"grvsc-line\">kubectl get gateways -n pbdp</span>\n<span class=\"grvsc-line\">kubectl get destinationrule -n pbdp</span>\n<span class=\"grvsc-line\">kubectl get peerauthentication -n pbdp</span></code></pre>\n<p>Now update the env for demo-2 with <code>demo-2.test.svc.cluster.local</code> in demo-1 service.</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n  .dark-default-dark {\n    background-color: #1E1E1E;\n    color: #D4D4D4;\n  }\n</style>","frontmatter":{"date":"January 22, 2021","updated_date":null,"description":"This article will provide a step by step process on how to install and configure services using Istio.","title":"How to Install and Configure Istio","tags":["Istio","Service Mesh"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/d8ff8c7b29395837a840c4013f351290/58556/Istio.webp","srcSet":"/static/d8ff8c7b29395837a840c4013f351290/61e93/Istio.webp 200w,\n/static/d8ff8c7b29395837a840c4013f351290/1f5c5/Istio.webp 400w,\n/static/d8ff8c7b29395837a840c4013f351290/58556/Istio.webp 800w,\n/static/d8ff8c7b29395837a840c4013f351290/210c1/Istio.webp 900w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Piyush Kumar","github":"kpiyush17","avatar":null}}}},{"node":{"excerpt":"The present-day internet is a hotbed of spammers and hackers, and you need to secure your email address. Hackers often scan websites and web…","fields":{"slug":"/identity/secure-email-address-website/"},"html":"<p>The present-day internet is a hotbed of spammers and hackers, and you need to secure your email address. Hackers often scan websites and web pages to extract genuine email addresses and exploit them to attack users with spam messages. </p>\n<p>This should really concern you because many of these spam emails carry potential malware. When you open your mail or click on a link that contains it, the malware gets naturally downloaded to your system.</p>\n<p>For example, let's assume you have entered your email address on a website's contact page, then there's a big chance the email harvesting bots have found it. Thereafter, they start flooding your mail-box with spam emails. </p>\n<p>Luckily, there are a few ways to hide your email address from such spammers and hackers who constantly mine for the same. One way is through <a href=\"https://www.loginradius.com/blog/identity/2020/12/what-to-do-when-email-hacked/\">email harvesting</a>.  </p>\n<p>Let's talk about what it is and then explore the various ways to secure your email address.</p>\n<h2 id=\"what-is-email-harvesting\" style=\"position:relative;\"><a href=\"#what-is-email-harvesting\" aria-label=\"what is email harvesting permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What is Email Harvesting</h2>\n<p>Email harvesting is the process of collecting lists of email addresses via different methods. Generally, it is used for bulk emails or spam. Hackers use \"harvesting bots,\" which crawl multiple sites, chat rooms, web forms, etc., in a few seconds to extract a list of email addresses. </p>\n<p>Other techniques include:</p>\n<ul>\n<li>Posting into UseNet with email addresses.</li>\n<li>Gathering data from white and yellow pages.</li>\n<li>Accessing the same computer used by valid users.</li>\n<li>Accessing emails and address books on another user's computer.</li>\n<li>Spamming through social engineering. </li>\n<li>Buying lists from other spammers.</li>\n<li>Hacking websites.</li>\n<li>Using the method of guessing and cleaning.</li>\n<li>Hacking mailing lists, webpages, web browsers, Internet relay chats, domain contact points, etc. </li>\n</ul>\n<p>These methods allow spammers to gather email addresses and use them to send unsolicited bulk messages to the recipient's inbox. </p>\n<h2 id=\"6-tips-to-secure-your-email-address-on-a-website\" style=\"position:relative;\"><a href=\"#6-tips-to-secure-your-email-address-on-a-website\" aria-label=\"6 tips to secure your email address on a website permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>6 Tips to Secure Your Email Address on a Website</h2>\n<h3 id=\"1-hide-your-email-address-while-logging-in\" style=\"position:relative;\"><a href=\"#1-hide-your-email-address-while-logging-in\" aria-label=\"1 hide your email address while logging in permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. Hide your email address while logging in.</h3>\n<p>One of the major mistakes committed by beginners is that they display their email address. If you are tensed and stressed about online hackers and threats, there is one solution you can always opt for. </p>\n<p>You can always avoid listing your email address on various vague websites. Instead, you can use contact information through which genuine users can contact you.</p>\n<h3 id=\"2-obfuscate-your-email-address\" style=\"position:relative;\"><a href=\"#2-obfuscate-your-email-address\" aria-label=\"2 obfuscate your email address permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. Obfuscate your email address.</h3>\n<p>Add an obfuscate plugin puzzle to your email address so hackers cannot identify it. With the help of such plugins, you can replace your email address with codes. These plugins secure your email address from hackers and do not affect the user's usability.  </p>\n<h3 id=\"3-use-a-password-manager\" style=\"position:relative;\"><a href=\"#3-use-a-password-manager\" aria-label=\"3 use a password manager permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3. Use a password manager.</h3>\n<p>Use a reliable password manager to change and replace all your passwords with solid, unique ones. We cannot sufficiently stress the importance of using strong passwords to secure your email address.</p>\n<p>Hackers use <a href=\"https://www.loginradius.com/blog/identity/2019/09/prevent-credential-stuffing-attacks/\">credential stuffing</a> where they literally jam previously stolen usernames and passwords to break into accounts on various services. </p>\n<p>This is possible because a huge proportion of online users still use the same username and passwords across multiple accounts.</p>\n<p><a href=\"https://www.loginradius.com/resource/ebook/buyers-guide-to-multi-factor-authentication/\"><img src=\"/6189ed241659d7be186ca0c44dd9e974/buyer-guide-to-multi-factor-authentication-ebook.webp\" alt=\"buyer-guide-to-multi-factor-authentication-ebook\"></a></p>\n<h3 id=\"4-use-two-factor-authentication-or-mfa-wherever-possible\" style=\"position:relative;\"><a href=\"#4-use-two-factor-authentication-or-mfa-wherever-possible\" aria-label=\"4 use two factor authentication or mfa wherever possible permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>4. Use two-factor authentication or MFA, wherever possible.</h3>\n<p>When you set up your account passwords, look out for <a href=\"https://www.loginradius.com/blog/identity/2021/01/how-to-setup-2fa-in-online-accounts/\">two-factor authentication (2FA)</a>/ MFA as well. They are additional security layers that you can apply to prevent resets of unauthorized passwords significantly. </p>\n<p>Whenever a hacker attempts to break into your email, you are notified and control the authority to accept or reject such attempts. </p>\n<h3 id=\"5-replace-your-email-address\" style=\"position:relative;\"><a href=\"#5-replace-your-email-address\" aria-label=\"5 replace your email address permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>5. Replace your email address.</h3>\n<p>If you are not satisfied with any of the above solutions to secure your email address, you can always replace it with \"\". This would take the user directly to your contact page when they click on the email. This not only prevents tons of spam but also protects you from hackers. </p>\n<h3 id=\"6-prevent-email-harvesting\" style=\"position:relative;\"><a href=\"#6-prevent-email-harvesting\" aria-label=\"6 prevent email harvesting permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>6. Prevent email harvesting.</h3>\n<p>The following techniques can be used to prevent email harvesting:</p>\n<ul>\n<li>Convert your email address into an image. </li>\n<li>Merge your email address by changing the \"@\" sign to \"at\" and the \".\" sign to \"dot.\"</li>\n<li>Use the email contact form wherever possible.</li>\n<li>Use email obfuscation in JavaScript. The email address will appear scrambled, encoded, or obfuscated in the source code. </li>\n<li>Use HTML for email address obfuscation. </li>\n<li>Prompt users to enter the correct CAPTCHA before revealing the email address. </li>\n<li>Using a spider trap to combat email harvesting spiders.</li>\n<li>Conduct mail server monitoring. This approach can be applied to the email server of the recipient. It dismisses all email addresses from any sender that specifies more than one invalid recipient address as invalid.</li>\n</ul>\n<h2 id=\"conclusion\" style=\"position:relative;\"><a href=\"#conclusion\" aria-label=\"conclusion permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Conclusion</h2>\n<p><a href=\"https://www.loginradius.com/blog/identity/2020/12/bot-attacks/\">Harvesting bots</a> are here to stay; thus, you must take appropriate measures to secure your email address. You can implement the above methods so that you don't become a victim of spammers and hackers in the long run. </p>\n<p>Although it may take a while to get the hang of them, the results are worth spending time on. </p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=secure-email-address-website\"><img src=\"/8fce571f703a5970dbb1359a2fe0e51a/book-a-demo-loginradius.webp\" alt=\"book-a-demo-loginradius\"></a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"January 22, 2021","updated_date":null,"description":"Harvesting bots are here to stay. Luckily, there are a few ways to hide your email address from spammers and hackers who constantly mine for the same. One way is through email harvesting. Let's talk about what it is and then explore the various ways to secure your email address.","title":"How to secure an email address on your website","tags":["all, Security"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.7857142857142858,"src":"/static/cd82884d7273d03edc2977f58a156ff5/58556/secure-email-address-website.webp","srcSet":"/static/cd82884d7273d03edc2977f58a156ff5/61e93/secure-email-address-website.webp 200w,\n/static/cd82884d7273d03edc2977f58a156ff5/1f5c5/secure-email-address-website.webp 400w,\n/static/cd82884d7273d03edc2977f58a156ff5/58556/secure-email-address-website.webp 800w,\n/static/cd82884d7273d03edc2977f58a156ff5/99238/secure-email-address-website.webp 1200w,\n/static/cd82884d7273d03edc2977f58a156ff5/135cd/secure-email-address-website.webp 1280w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.webp"}}}}]},"markdownRemark":{"excerpt":"Identity is evolving, and developers are at the forefront of this transformation. Every day brings a new learning—adapting to new standards…","fields":{"slug":"/identity/developer-first-identity-provider-loginradius/"},"html":"<p>Identity is evolving, and developers are at the forefront of this transformation. Every day brings a new learning—adapting to new standards and refining approaches to building secure, seamless experiences.</p>\n<p>We’re here to support developers on that journey. We know how important simplicity, efficiency, and well-structured documentation are when working with identity and access management solutions. That’s why we’ve redesigned the <a href=\"https://www.loginradius.com/\">LoginRadius website</a>—to be faster, more intuitive, and developer-first in every way.</p>\n<p>The goal? Having them spend less time searching and more time building.</p>\n<h2 id=\"whats-new-and-improved-on-the-loginradius-website\" style=\"position:relative;\"><a href=\"#whats-new-and-improved-on-the-loginradius-website\" aria-label=\"whats new and improved on the loginradius website permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What’s New and Improved on the LoginRadius Website?</h2>\n<p>LoginRadius’ vision is to give developers a product that simplifies identity management so they can focus on building, deploying, and scaling their applications. To enhance this experience, we’ve spent the last few months redesigning our interface— making navigation more intuitive and reassuring that essential resources are easily accessible.</p>\n<p>Here’s a closer look at what’s new and why it’s important:</p>\n<h3 id=\"a-developer-friendly-dark-theme\" style=\"position:relative;\"><a href=\"#a-developer-friendly-dark-theme\" aria-label=\"a developer friendly dark theme permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>A Developer-Friendly Dark Theme</h3>\n<p><img src=\"/f46881583c7518a93bb24e94c32320de/a-developer-friendly-dark-theme.webp\" alt=\"This image shows how LoginRadius offers several authentication methods like traditional login, social login, passwordless login, passkeys and more in a dark mode.\">    </p>\n<p>Developers spend long hours working in dark-themed IDEs and terminals, so we’ve designed the LoginRadius experience to be developer-friendly and align with that preference.</p>\n<p>The new dark mode reduces eye strain, enhances readability, and provides a seamless transition between a coding environment and our platform. Our new design features a clean, modern aesthetic with a consistent color scheme and Barlow typography, ensuring better readability. High-quality graphics and icons are thoughtfully placed to enhance the content without adding visual clutter.</p>\n<p>So, whether you’re navigating our API docs or configuring authentication into your system, our improved interface will make those extended development hours more comfortable and efficient.</p>\n<h3 id=\"clear-categorization-for-loginradius-capabilities\" style=\"position:relative;\"><a href=\"#clear-categorization-for-loginradius-capabilities\" aria-label=\"clear categorization for loginradius capabilities permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Clear Categorization for LoginRadius Capabilities</h3>\n<p><img src=\"/e5358b82be414940f3fb146013845933/capabilities.webp\" alt=\"This image shows a breakdown of all the LoginRadius CIAM capabilities, including authentication, security, UX, scalability and multi-brand management.\"></p>\n<p>We’ve restructured our website to provide a straightforward breakdown of our customer identity and access management platform capabilities, helping you quickly find what you need:</p>\n<ul>\n<li>Authentication: Easily understand <a href=\"https://www.loginradius.com/blog/identity/authentication-option-for-your-product/\">how to choose the right login method</a>, from traditional passwords and OTPs to social login, federated SSO, and passkeys with few lines of code.</li>\n<li>Security: Implement no-code security features like bot detection, IP throttling, breached password alerts, DDoS protection, and adaptive MFA to safeguard user accounts.</li>\n<li>User Experience: Leverage AI builder, hosted pages, and drag-and-drop workflows to create smooth, branded sign-up and login experiences.</li>\n<li>High Performance &#x26; Scalability: Confidently scale with sub-100ms API response times, 100% uptime, 240K+ RPS, and 28+ global data center regions.</li>\n<li>Multi-Brand Management: Efficiently manage multiple identity apps, choosing isolated or shared data stores based on your brand’s unique needs.</li>\n</ul>\n<p>This structured layout ensures you can quickly understand each capability and how it integrates into your identity ecosystem.</p>\n<h3 id=\"developer-first-navigation\" style=\"position:relative;\"><a href=\"#developer-first-navigation\" aria-label=\"developer first navigation permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Developer-First Navigation</h3>\n<p><img src=\"/a8c155c2b6faf3d5f4b4de4e2b14d763/developers-menu.webp\" alt=\"This image shows the LoginRadius menu bar, highlighting the developer dropdown.\">   </p>\n<p>We’ve been analyzing developer workflows to identify how you access key resources. That’s why we redesigned our navigation with one goal in mind: to reduce clicks and make essential resources readily available.</p>\n<p>The new LoginRadius structure puts APIs, SDKs, and integration guides right at the menu bar under the Developers dropdown so you can get started faster. Our Products, Solutions, and Customer Services are also clearly categorized, helping development teams quickly find the right tools and make informed decisions.</p>\n<h3 id=\"quick-understanding-of-integration-benefits\" style=\"position:relative;\"><a href=\"#quick-understanding-of-integration-benefits\" aria-label=\"quick understanding of integration benefits permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Quick Understanding of Integration Benefits</h3>\n<p><img src=\"/b2f9a964a2da0ea83e2f8596b833bba7/we-support-your-tech-stack.webp\" alt=\"This image shows a list of popular programming languages and frameworks offered by LoginRadius.\"></p>\n<p>Developers now have a clear view of the tech stack available with LoginRadius, designed to support diverse business needs.</p>\n<p>Our platform offers pre-built SDKs for Node.js, Python, Java, and more, making CIAM integration seamless across popular programming languages and frameworks.</p>\n<h2 id=\"over-to-you-now\" style=\"position:relative;\"><a href=\"#over-to-you-now\" aria-label=\"over to you now permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Over to You Now!</h2>\n<p>Check out our <a href=\"https://www.loginradius.com/\">revamped LoginRadius website</a> and see how the improved experience makes it easier to build, scale, and secure your applications.</p>\n<p>Do not forget to explore the improved navigation and API documentation, and get started with our free trial today. We’re excited to see what you’ll build with LoginRadius!</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"February 21, 2025","updated_date":null,"description":"LoginRadius’ vision is to give developers a product that simplifies identity management so they can focus on building, deploying, and scaling their applications. To enhance this experience, we’ve redesigned our website interface, making navigation more intuitive and reassuring that essential resources are easily accessible.","title":"Revamped & Ready: Introducing the New Developer-First LoginRadius Website","tags":["Developer tools","API","Identity Management","User Authentication"],"pinned":true,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.7857142857142858,"src":"/static/80b4e4fbe176a10a327d273504607f32/58556/hero-section.webp","srcSet":"/static/80b4e4fbe176a10a327d273504607f32/61e93/hero-section.webp 200w,\n/static/80b4e4fbe176a10a327d273504607f32/1f5c5/hero-section.webp 400w,\n/static/80b4e4fbe176a10a327d273504607f32/58556/hero-section.webp 800w,\n/static/80b4e4fbe176a10a327d273504607f32/99238/hero-section.webp 1200w,\n/static/80b4e4fbe176a10a327d273504607f32/7c22d/hero-section.webp 1600w,\n/static/80b4e4fbe176a10a327d273504607f32/1258b/hero-section.webp 2732w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.webp"}}}},"pageContext":{"limit":6,"skip":624,"currentPage":105,"type":"///","numPages":164,"pinned":"ee8a4479-3471-53b1-bf62-d0d8dc3faaeb"}},"staticQueryHashes":["1171199041","1384082988","2100481360","23180105","528864852"]}