{"componentChunkName":"component---src-templates-blog-list-template-js","path":"/64","result":{"data":{"allMarkdownRemark":{"edges":[{"node":{"excerpt":"Why Follow React Coding Best Practices? Writing code to create apps isn't just enough; the code should be as clean and maintainable as your…","fields":{"slug":"/engineering/guest-post/react-best-coding-practices/"},"html":"<h2 id=\"why-follow-react-coding-best-practices\" style=\"position:relative;\"><a href=\"#why-follow-react-coding-best-practices\" aria-label=\"why follow react coding best practices 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>Why Follow React Coding Best Practices?</h2>\n<p>Writing code to create apps isn't just enough; the code should be as clean and maintainable as your app. Before jumping into the good practices to follow, it's essential to realize the reasons behind the same. It becomes crucial for you to understand coding conventions because of the following reasons:</p>\n<ol>\n<li>As a developer, you shall understand that writing code to build apps is not enough, but the code should also be <em>Reliable</em>, <em>Scalable</em>, and <em>Maintainable</em>. Generally, 40% - 80% of the total cost of software is spent on its maintenance.</li>\n<li><em>Readability is the priority</em>. Any software is seldom fully supported by one single developer; There is a whole team or group of people working on it. Furthermore, new developers always join the project team. Thus,  maintaining coding standards improves the product's readability that lets developers easily understand the codebase even faster.</li>\n<li>Like any product, the software must be well-packaged and clean. Following best coding practices helps you write clean code throughout the codebase by ensuring consistency.</li>\n</ol>\n<h2 id=\"starting-with-react-best-practices\" style=\"position:relative;\"><a href=\"#starting-with-react-best-practices\" aria-label=\"starting with react best practices 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>Starting with React Best Practices</h2>\n<h3 id=\"code-structure\" style=\"position:relative;\"><a href=\"#code-structure\" aria-label=\"code structure 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>Code Structure</h3>\n<p>There's basically no defined structure, but you should have a style to follow throughout the codebase. Thus, this section explains how you can structure your codebase for medium to large-sized apps.</p>\n<ol>\n<li>\n<p>Put all your imports in order at the very top of the code file. You shall ideally prioritize as follows:</p>\n<p><code>React imports</code> &#x3C;> <code>Library imports</code> &#x3C;> <code>import * as</code> &#x3C;> <code>import ./&#x3C;some file></code></p>\n<p>Make sure all your imports statements are on new lines, as this will make your imports clean and easy to understand for all the components, third-party libraries, etc.</p>\n</li>\n<li>Use <code>index.js</code> for each folder to export so that all the imports are referenced on the <code>index.js</code> file, and you don't have to write import statements again and again for every file.</li>\n<li>\n<p>It's easy to get confused about <em>whether to use double quotes (\" \") or single quotes (' ')</em> while working with React. The simple answer is: <code>maintain consistency</code> whatever you're using. </p>\n<p>Also, consider that you use double quotes (\" \") for <code>JSX</code> attributes and single quotes (' ') for the <code>JS</code> code (Follow the standard way or maintain consistency).</p>\n</li>\n<li>Most of the time, beginners merge two-three components inside a single file and play around with that. However, that's not a good practice to follow. Dividing the whole app into components and then working on it on a separate file is a good practice to maintain clean code.</li>\n<li>Do you sometimes use CSS styles with JSX? But it's a bad practice. Always make <code>classNames</code> for each element and put all the styling under respective CSS files only.</li>\n</ol>\n<h3 id=\"naming-conventions\" style=\"position:relative;\"><a href=\"#naming-conventions\" aria-label=\"naming conventions 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>Naming Conventions</h3>\n<ol>\n<li>Your filenames should always have consistent casing and extension. Either use <code>.js</code> or <code>.jsx</code> as explained in code structure for extensions. And <code>PascalCase</code> or <code>camelCase</code> for filenames.</li>\n<li>In React, name your file the same as the React component inside that file i.e. without a hyphen in the filename. For example: <code>Registration-Form</code> → ❌. <code>RegistrationForm</code> → ✔️.</li>\n<li>Not only filename but also make sure that your <code>variables/functions/modules</code> filenames are consistent with cases.</li>\n<li>Use well-descriptive names for <code>variables/functions/modules/Actions</code>, keeping in mind that it is application-specific so that even a third party or new developer can easily understand you code.</li>\n<li>It's bad to use the underscore prefix ( _ ) for a React component's internal methods because underscore prefixes seem to be used as a convention in other languages to denote private objects or variables. But everything in JavaScript is public. And there is no native support for privacy. So, even if you add underscore prefixes to your properties, It'll not make them private. <code>_onClickSubmit() → ❌</code></li>\n<li>When making reducer functions, write <code>Action</code> types as <code>domain/eventNames</code>. For example: <code>ADD_TODO</code> and <code>INCREMENT</code> (in CAPITALS) as this matches the typical conventions in most programming languges for declaring the constant values.</li>\n<li>Talking about <code>cases</code> in a React component, use <code>PascalCase</code> for the same — and for their instances, use <code>camelCase</code>. For example:-</li>\n</ol>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">const loginForm = &lt;LoginForm /&gt;;</span>\n<span class=\"grvsc-line\">import LoginForm from &#39;./loginForm&#39;;</span></code></pre>\n<h3 id=\"files-and-folders\" style=\"position:relative;\"><a href=\"#files-and-folders\" aria-label=\"files and folders 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>Files and Folders</h3>\n<ol>\n<li>Your app's directory structure shall be as follows:</li>\n</ol>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">└── /src</span>\n<span class=\"grvsc-line\">  ├── /assets - Contains static assets such as  images, svgs, company logo etc.</span>\n<span class=\"grvsc-line\">  ├── /components - reusable components like navigation bar, buttons, forms</span>\n<span class=\"grvsc-line\">  ├── /services - JavaSript modules</span>\n<span class=\"grvsc-line\">  ├── /store - redux store</span>\n<span class=\"grvsc-line\">  ├── /utils - utilities, helpers, constants.</span>\n<span class=\"grvsc-line\">  ├── /views/pages - majority of the app pages would be here</span>\n<span class=\"grvsc-line\">  ├── index.js</span>\n<span class=\"grvsc-line\">  └── App.js</span></code></pre>\n<ol start=\"2\">\n<li>Each component folder should have its respective files grouped under the same. It maintains the hierarchy throughout the codebase. The necessary files include:\n<code>Component.js</code>, <code>Component.css</code>, <code>Component.test.js</code></li>\n</ol>\n<h3 id=\"code\" style=\"position:relative;\"><a href=\"#code\" aria-label=\"code 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>Code</h3>\n<ol>\n<li><em>Play the game of <a href=\"https://www.loginradius.com/blog/engineering/react-hooks-guide/\">HOOKS</a> by following all its rules</em>. You can read more about the rules <a href=\"https://www.smashingmagazine.com/2020/04/react-hooks-best-practices/\">here</a>. Either manually follow these rules or use an ESLint plugin called <code>eslint-plugin-react-hooks</code> which enforces these rules. So, add these rules while working on any project</li>\n<li>Remove <code>console. logs</code> — unless you have strong motivation why you would like it.</li>\n<li>Avoid multiple <code>if-else blocks</code>. Instead, use <code>ternary</code> — best for clean code practice</li>\n<li>Remove all <code>commented-out codes</code>. The biggest motivation for writing comments is the bad code that you write. It would be good to spend more time writing descriptive functions, methods, and filenames that are self-explanatory.</li>\n<li>Write <code>Tests</code> for each component. It's a good practice to write test cases for each component developed as it reduces the chances of getting errors when deployed. You can check all the possible scenarios through unit testing — and for that, some of the most commonly used React test frameworks you can use are <code>JEST</code> and <code>ENZYMES</code>.</li>\n</ol>\n<h3 id=\"good-commenting-practices\" style=\"position:relative;\"><a href=\"#good-commenting-practices\" aria-label=\"good commenting practices 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>Good Commenting Practices</h3>\n<ol>\n<li>Use comments to explain <em>why you did something</em>, not <em>how you did it</em>. If you find yourself explaining  <em>how you did something</em>, then it's time to make your code self-explanatory.</li>\n<li>Another point is not to write comments that are obvious and redundant — for example:</li>\n</ol>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">// Prints out the sum of two numbers</span>\n<span class=\"grvsc-line\">console.log(sum);</span></code></pre>\n<ol start=\"3\">\n<li>Write comments that are legal, informative, explanatory of intent, and offer clarification,</li>\n</ol>\n<h3 id=\"es6\" style=\"position:relative;\"><a href=\"#es6\" aria-label=\"es6 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>ES6</h3>\n<ol>\n<li>Always destructure your props. Destructuring your props helps make your code cleaner and more maintainable. It also makes assigning object properties to variables feels like much less of a chore.</li>\n<li>Know where to use spread/rest operators. You shall read about it before actually using it.</li>\n<li>Try using <code>optional chaining</code> if possible.</li>\n<li>Use <code>const</code> instead of <code>var</code> or <code>let</code> . <code>const</code> lets you check that a variable should always stay constant. <code>let</code> indicates that the values of the variables can be changed.</li>\n<li>Start preferring <code>arrow functions</code> (= >) for more cleaner code. Arrow functions allow simplifying your code to a single line.</li>\n</ol>\n<h3 id=\"basics\" style=\"position:relative;\"><a href=\"#basics\" aria-label=\"basics 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>Basics</h3>\n<ol>\n<li>Always ensure that your app is responsive.</li>\n<li>Your app should contain a proper <code>README.md</code> file that clearly details or explains your app. Clearly mention the features, functionalities, contributions guidelines, installation process, guide, etc.</li>\n<li>Do check that your app runs without any errors.</li>\n<li>Use <code>EsLint</code> throughout your codebase and other automation tools so that most of the best practices are maintained automatically for you.</li>\n<li>Consolidate duplicate code throughout the codebase.</li>\n</ol>\n<p>Please note that I haven't talked about automation extension and tools that can help you maintain most of the best practices easily without looking into separately. But, I wanted to bring this into consideration. Anyhow, you can use extensions like <code>prettier</code>, <code>EsLint</code>, <code>EditorConfig</code>, <code>PLOP</code> etc., to maintain your codebase efficiently.</p>\n<p>These are the best practices that I've learned practically over time by working in a team, reviewing my mates' codebase, observing open-source projects and repositories, and reading great resources, such as the <a href=\"https://reactjs.org/docs/getting-started.html\">offical React docs</a>. </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>I hope you gained valuable insights. If you have more suggestions or practices that the React or dev community can follow, please to let us know.</p>\n<p>Until next time, keep learning, build awesome stuff, and uplift the community.</p>\n<p>By the way, if you want to <a href=\"https://www.loginradius.com/blog/engineering/user-authentication-react-application/\">add user registration and authentication to your React apps</a>, you can use LoginRadius. It helps you become more efficient and focus more on the core business features of your React apps.</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":"October 26, 2021","updated_date":null,"description":"Important React best practices every React developer should follow before, during, & after writing the code. To ensure code maintainability, keep these React coding best practices handy.","title":"32 React Best Practices That Every Programmer Should Follow","tags":["React"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/ad3a41474714ff1458856a6c47795b66/58556/Best-Practices.webp","srcSet":"/static/ad3a41474714ff1458856a6c47795b66/61e93/Best-Practices.webp 200w,\n/static/ad3a41474714ff1458856a6c47795b66/1f5c5/Best-Practices.webp 400w,\n/static/ad3a41474714ff1458856a6c47795b66/58556/Best-Practices.webp 800w,\n/static/ad3a41474714ff1458856a6c47795b66/99238/Best-Practices.webp 1200w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Anjali Rohira","github":"rohiraanjali","avatar":null}}}},{"node":{"excerpt":"In modern times, retailers use automation, machine learning, and other technological advances to supplement various aspects of their…","fields":{"slug":"/growth/b2c-enterprises-ciam-retail-supply-chain/"},"html":"<p>In modern times, retailers use automation, machine learning, and other technological advances to supplement various aspects of their operations. From their distribution networks to their shop fronts, successful companies are implementing new and emerging technologies.</p>\n<p>From the corporate end to the production center to the selling floor, technology is aiding retailers in gaining a more comprehensive picture of their daily operations. Companies can use systems like enterprise resource planning to verify their earnings independently. Businesses that use these data-rich reports and smart authentication make better decisions.</p>\n<p>Retailers can enhance not only their reporting capabilities but also their client experiences by incorporating more advanced technologies. Moreover, retailers who use technology can supply goods faster and easily track where they came from with the help of the <a href=\"https://www.loginradius.com/blog/identity/loginradius-identity-import-manager-data-migration/\">identity import manager</a><strong>.</strong> They are also using techniques to construct intelligent and more productive supply chains. </p>\n<h2 id=\"understanding-the-role-of-ciam-in-supply-chain-management\" style=\"position:relative;\"><a href=\"#understanding-the-role-of-ciam-in-supply-chain-management\" aria-label=\"understanding the role of ciam in supply chain management 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>Understanding the Role of CIAM in Supply Chain Management</h2>\n<p>Retailers hold access to a comprehensive range of technologies. From today's current options, such as RFID tags, to stimulating creativity, such as self-driving trucks, businesses will largely depend on computers to manage their daily operations. </p>\n<p>Mentioned below are some latest technologies that help companies to foster identity and access management in the supply chain. </p>\n<ul>\n<li><strong>Artificial Intelligence</strong></li>\n</ul>\n<p>Currently, AI assembles and collects client information and consumer audit trail, which retailers share with their manufacturers. This information is then employed to assist businesses in producing the correct amount of product, thereby reducing waste from overproduction. </p>\n<p>Retailers benefit from AI solutions that accumulate and analyze consumer data from social media, their purchasing habits, and other sources to render valuable business insights. Retailers who use this information make educated, data-driven decisions about when and ways to target consumers with the most definite promotion or deal.</p>\n<p><a href=\"https://www.loginradius.com/resource/loginradius-consumer-audit-trail\"><img src=\"/b0914c6f92a4105af0e0073967559689/DS-consumer-audit-trail.webp\" alt=\"DS-consumer-audit-trail\"></a></p>\n<ul>\n<li><strong>Radio-Frequency Identification Devices</strong></li>\n</ul>\n<p>Retailers can use RFID tags to track assembly operations or individual products. Also, at the store level, employees can readily restock items after counting the number of RFID tags left for a product. </p>\n<p>Tags are used in the production center to ensure order accuracy and monitor the product’s shelf life. Also, businesses that use RFID tags as <strong>CIAM solutions</strong> for logistics can transport goods safely and get an exact estimate of the inventory by using these tags. </p>\n<ul>\n<li><strong>Internet of Things</strong></li>\n</ul>\n<p>The internet of things (IoT) refers to any device or object getting connected to the internet. The ability of the Internet of Things or <a href=\"https://www.loginradius.com/blog/identity/iot-smart-authentication/\">IoT authentication</a> to help businesses track every brand or item aids people in making quick and accurate decisions. </p>\n<p>Retailers can better distribute money and minimize lost time by integrating all stages of the distribution chain, from conception to product features in the store. A supply chain software firm, for example, uses IoT-connected gadgets to notify users of any issues with monitored products or user data security. </p>\n<p>The cellular-connected device provides companies with real-time notifications on the status of a shipment. If a shipment is damaged, companies get notified quickly and, if needed, can plan a substitute delivery using this application. </p>\n<ul>\n<li><strong>Automatic Robots</strong></li>\n</ul>\n<p>Intelligent machines have a lot of potentials to help vendors, from stockpiling robots to drone delivery companies. Robotics can help retail supply chain management businesses save time and money by speeding up processes and creating tracking data. Also, nowadays, many retail chains use robots in their storage facilities to help with inventory marketing and product delivery for <a href=\"https://www.loginradius.com/compliances/\">better privacy compliance</a><strong>.</strong> </p>\n<ul>\n<li><strong>Blockchain</strong></li>\n</ul>\n<p>Retailers benefit from blockchain because it provides a secure, time-stamped, and immutable record of an item or transaction. This technology gives businesses a bird's-eye view of a product's life, which helps them make better decisions and improve processes. </p>\n<p>Retailers can use blockchain technology to learn from and monitor how a collapse or malfunction occurred. Also, blockchain can help retail businesses overcome the challenges of credential stuffing by using multi-factor authentication as login services. </p>\n<p>MFA can assist companies in guarding their online data against cyber breaches to prevent loss of resources and customer trust. </p>\n<h2 id=\"the-bottom-line\" style=\"position:relative;\"><a href=\"#the-bottom-line\" aria-label=\"the bottom line 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>The Bottom Line</h2>\n<p>Digital transformation is all about enhancing the customer experience by reducing online threats such as <a href=\"https://www.loginradius.com/resource/understanding-credential-stuffing-attacks-whitepaper\">credential stuffing attacks</a>. Digital technologies are transforming and improving the customer experience game, introducing new rules and opportunities that were previously unimaginable. Customer Identity and Access Management (CIAM) is a brand-new subset of Identity and Access Management (IAM), and it is primarily a component of the customer experience. </p>\n<p>Also, clients are now constantly anticipating deeper social connections supplied effortlessly and flawlessly, as digital interactions have become the principal mechanism for conversing with brands online using login services. </p>\n<p>Customers likewise expect some control over how companies collect, store, manage, and share their personal information. With the competition just a click away, your company's misuse of customer data, whether intentional or unintentional, can severely harm brand equity. <a href=\"https://www.loginradius.com/contact-sales\">Contact us</a> to secure your operations with LoginRadius today!</p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=b2c-enterprises-ciam-retail-supply-chain\"><img src=\"/8fce571f703a5970dbb1359a2fe0e51a/book-a-demo-loginradius.webp\" alt=\"book-a-demo-Consultation\"></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":"October 25, 2021","updated_date":null,"description":"Retailers hold access to a comprehensive range of technologies. From today's current options, such as RFID tags, to stimulating creativity, such as self-driving trucks, businesses will largely depend on computers to manage their daily operations. Learn how they are incorporating CIAM in their environment.","title":"How B2C Industries are Leveraging CIAM in the Retail Supply Chain Management","tags":["ciam solution","iot authentication","cx"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/a02d5b7f78b8f93b2283b4f4f26e235e/58556/retail-supply-chain-cover.webp","srcSet":"/static/a02d5b7f78b8f93b2283b4f4f26e235e/61e93/retail-supply-chain-cover.webp 200w,\n/static/a02d5b7f78b8f93b2283b4f4f26e235e/1f5c5/retail-supply-chain-cover.webp 400w,\n/static/a02d5b7f78b8f93b2283b4f4f26e235e/58556/retail-supply-chain-cover.webp 800w,\n/static/a02d5b7f78b8f93b2283b4f4f26e235e/99238/retail-supply-chain-cover.webp 1200w,\n/static/a02d5b7f78b8f93b2283b4f4f26e235e/7c22d/retail-supply-chain-cover.webp 1600w,\n/static/a02d5b7f78b8f93b2283b4f4f26e235e/25f09/retail-supply-chain-cover.webp 1920w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Navanita Devi","github":null,"avatar":null}}}},{"node":{"excerpt":"In a digitally advanced business ecosystem, the C-level executives are finding ways to leverage technology to its peak to ensure the highest…","fields":{"slug":"/identity/sso-business-strategy/"},"html":"<p>In a digitally advanced business ecosystem, the C-level executives are finding ways to leverage technology to its peak to ensure the highest level of productivity and a seamless user experience that helps navigate business success. </p>\n<p>Assess management is one of the essential aspects that eventually helps drive success in challenging business environments where numerous competitors are just a click away. </p>\n<p>In such competitive business environments, SSO (Single Sign-On) becomes the need of the hour that helps establish a flawless user experience while providing the highest level of security and efficiency. </p>\n<p>Enterprises need to put their best foot forward in defining the right SSO strategy that fits right for their organization and helps pave the way for overall success. </p>\n<p>Let’s understand what SSO is, what it offers to businesses, the right SSO strategy, and how to implement it for business growth in the most challenging and competitive business environments. </p>\n<h2 id=\"what-is-sso-single-sign-on\" style=\"position:relative;\"><a href=\"#what-is-sso-single-sign-on\" aria-label=\"what is sso single sign on 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 SSO (Single Sign-On)</h2>\n<p><a href=\"https://www.loginradius.com/single-sign-on/\">Single Sign-On (SSO)</a> refers to the authentication process that allows your consumers to access various applications with a single set of login IDs and passwords and an active login session. The following are the two examples of the Single Sign-On environments:</p>\n<ul>\n<li>Consumers access multiple applications of the same provider. Consumers don't need to create and remember separate credentials for each application; they log in once and access the provider's various applications. Example: Google, Youtube, Gmail, etc.</li>\n<li>Employees access numerous applications daily. They don't need to create and remember separate credentials for each application; they can log in once and access various applications from the same organization. Example: HR Portal, Resource Portal, Organizational Account, etc.</li>\n</ul>\n<p>Since we now know what SSO is, let’s move towards understanding how to choose the right SSO strategy for your organization. </p>\n<h2 id=\"tips-to-choose-the-right-sso-strategy-for-your-business\" style=\"position:relative;\"><a href=\"#tips-to-choose-the-right-sso-strategy-for-your-business\" aria-label=\"tips to choose the right sso strategy for your business 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>Tips to Choose the Right SSO Strategy For Your Business</h2>\n<h3 id=\"1-understand-the-business-and-consumer-benefits-of-using-sso\" style=\"position:relative;\"><a href=\"#1-understand-the-business-and-consumer-benefits-of-using-sso\" aria-label=\"1 understand the business and consumer benefits of using sso 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. Understand the business and consumer benefits of using SSO</h3>\n<p>The first thing that businesses should know about SSO is <a href=\"https://www.loginradius.com/blog/identity/benefits-single-sign-on-sso/\">what benefits it offers</a> to their organization and its consumers. </p>\n<p>Every organization thinks adequately about investing in a specific technology. Similarly, businesses should first think about what business advancements they could get with SSO. Moreover, what would the benefit for their consumers be if they implement SSO. </p>\n<p>To help businesses quickly understand the benefits of SSO, we’ve listed some of the significant benefits of SSO for businesses as well as their consumers. </p>\n<p><strong>Benefits of SSO for Businesses</strong></p>\n<p>SSO offers endless possibilities to businesses leading to overall efficiency, security, and revenues growth. Here are some of the significant benefits of using SSO for enterprises: </p>\n<ul>\n<li><strong>Improves conversions and revenue:</strong> Customers can access all domains and services with a single active session.</li>\n<li><strong>Mitigates risk:</strong> Accessing third-party sites (user passwords are not stored or managed externally) becomes risk-free.</li>\n<li><strong>Unifies customer profiles:</strong> Creating a <a href=\"https://www.loginradius.com/customer-profiling\">single instance of the customer data</a> provides a centralized view of the customer across all channels.</li>\n<li>\n<p><strong>Reduces IT costs:</strong> Due to fewer help desk calls about passwords, IT can spend less time helping users remember or reset their passwords for hundreds of applications.</p>\n<p><strong>Benefits of SSO for Consumers</strong></p>\n</li>\n<li><strong>Seamless user experience:</strong> Consumers can use a single identity to navigate multiple web and mobile domains or service applications.</li>\n<li><strong>More robust password protection:</strong> Because users only need to use one password, SSO makes generating, remembering, and using stronger passwords simpler.</li>\n<li><strong>Reduces consumer time:</strong> The time spent on re-entering passwords for the same identity. Users will spend less time logging into various apps to do their work. Ultimately, it enhances the productivity of businesses.</li>\n</ul>\n<h3 id=\"2-identifying-actual-business-needs\" style=\"position:relative;\"><a href=\"#2-identifying-actual-business-needs\" aria-label=\"2 identifying actual business needs 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. Identifying Actual Business Needs</h3>\n<p>Once you’re aware of the business and consumer benefits of implementing SSO, it’s time to understand your actual business needs. The major challenge for most businesses is developing a scalable and secure infrastructure for managing access, delivering a flawless experience, and maintaining adequate security. </p>\n<p>Since every business is inclining towards cloud deployments, it’s time to think about <a href=\"https://www.loginradius.com/\">a cloud-based SSO provider</a> that ensures security, scalability and delivers a rich user experience. </p>\n<p>Hence businesses shouldn’t settle for the ones that aren’t yet delivering cloud-based services and should consider relying on SSO providers offering scalability, rich user experience, and security by meeting the essential regulatory compliances. </p>\n<h3 id=\"3-choosing-the-right-sso-partner\" style=\"position:relative;\"><a href=\"#3-choosing-the-right-sso-partner\" aria-label=\"3 choosing the right sso partner 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. Choosing the right SSO partner</h3>\n<p>When it comes to choosing the right SSO provider, the market is flooded with endless options. However, businesses should understand that they need a cloud-based SSO provider like LoginRadius with <a href=\"https://www.loginradius.com/scalability/\">no code implementation and 100% uptime</a>. </p>\n<p>Let’s understand why LoginRadius is the best SSO provider for business in 2021 and beyond. </p>\n<h2 id=\"why-is-loginradius-sso-solution-better-than-its-competitors\" style=\"position:relative;\"><a href=\"#why-is-loginradius-sso-solution-better-than-its-competitors\" aria-label=\"why is loginradius sso solution better than its competitors 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>Why is LoginRadius SSO Solution Better Than Its Competitors?</h2>\n<p>LoginRadius guarantees unparalleled uptime 99.99% every month. The cloud-based identity provider manages 180K logins per second, 20 times more than its major competitors!</p>\n<p>Apart from delivering the industry's best consumer, the following are a few ways the platform excels compared to its competitors.</p>\n<ul>\n<li><strong>Auto scalable infrastructure:</strong> The platform offers an auto-scalable infrastructure to handle surges during daily and seasonal peak loads. It automatically accommodates data storage, account creation, consumer authentication, new applications, and more.</li>\n<li><strong>Scalability:</strong> LoginRadius ensures that it accommodates your continually growing consumer base. It can autoscale and handle hundreds of applications. The even better part is, there are no limitations to the number of users. Also, the LoginRadius Cloud Directory scales automatically to handle incremental data every time—in real-time.</li>\n<li><strong>Globally compliant:</strong> The LoginRadius platform also complies with major global compliances like the GDPR, CCPA, etc. You can keep track of your consumers, manage preferences, and customize the kind of consent consumers want. </li>\n<li><strong>Security Certifications:</strong> LoginRadius is compliant with international regulatory bodies like AICPA SOC 2, ISAE 3000, Cloud Security Alliance, Privacy Shield, and more.</li>\n</ul>\n<p><a href=\"https://www.loginradius.com/resource/authentication-sso-native-mobile-apps-datasheet\"><img src=\"/330b3e4d6cc15b338ec34ac5ef77908b/native-mobile.webp\" alt=\"native-mobile\"></a></p>\n<h2 id=\"are-you-ready-to-experience-a-future-ready-sso\" style=\"position:relative;\"><a href=\"#are-you-ready-to-experience-a-future-ready-sso\" aria-label=\"are you ready to experience a future ready sso 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>Are You Ready to Experience a Future-Ready SSO?</h2>\n<p>Single Sign-On improves consumer experience and boosts productivity by a considerable margin.</p>\n<p>By implementing the benefits of the LoginRadius SSO as a unified solution, you increase business agility, security, convenient and streamlined experience for your business and consumers alike.</p>\n<p>Need more information about how SSO benefits your business? <a href=\"https://www.loginradius.com/contact-sales\">Contact us</a> for a free personalized demo.</p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=sso-business-strategy\"><img src=\"/8fce571f703a5970dbb1359a2fe0e51a/book-a-demo-loginradius.webp\" alt=\"LoginRadius Book a Demo\"></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":"October 25, 2021","updated_date":null,"description":"In a competitive business environment, SSO (Single Sign-On) establishes a flawless user experience while providing the highest level of security and efficiency. Enterprises need to put their best foot forward in defining the right SSO strategy that fits right for their organization and helps pave the way for overall success.","title":"How to Find the Right SSO Strategy that Fits Your Business","tags":["sso provider","data security","cx"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.6666666666666667,"src":"/static/20dd42df94351ea7ee7c09def14beea6/58556/sso-business-strategy.webp","srcSet":"/static/20dd42df94351ea7ee7c09def14beea6/61e93/sso-business-strategy.webp 200w,\n/static/20dd42df94351ea7ee7c09def14beea6/1f5c5/sso-business-strategy.webp 400w,\n/static/20dd42df94351ea7ee7c09def14beea6/58556/sso-business-strategy.webp 800w,\n/static/20dd42df94351ea7ee7c09def14beea6/cc834/sso-business-strategy.webp 1024w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Manish Tiwari","github":null,"avatar":null}}}},{"node":{"excerpt":"A Progressive Web App (PWA) is a more dynamic web application that can run as a standalone. It offers benefits such as:  performance; the…","fields":{"slug":"/engineering/guest-post/how-to-build-a-progressive-web-app-with-react/"},"html":"<p>A Progressive Web App (PWA) is a more dynamic web application that can run as a standalone. It offers benefits such as: </p>\n<ul>\n<li>performance;</li>\n<li>the ability to work with or without an internet connection;</li>\n<li>platform-specific; and, </li>\n<li>installable.</li>\n</ul>\n<blockquote>\n<p>You can learn more about the <a href=\"https://www.loginradius.com/blog/engineering/progressive-app-vs-native-app/\">differences between native apps and PWAs here.</a></p>\n</blockquote>\n<p>In this article, you're going to learn how to build a PWA using React. As React is a popular web framework, this article starts by going over the setup, development process, and spinning it up to see how it looks. For this example, you'll create a simple Counter Page that simply adds or subtracts a number based on button controls.</p>\n<h2 id=\"create-a-react-app-with-the-progressive-web-app-template\" style=\"position:relative;\"><a href=\"#create-a-react-app-with-the-progressive-web-app-template\" aria-label=\"create a react app with the progressive web app template 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>Create a React App with the Progressive Web App Template</h2>\n<p>Before you can begin coding, you need to set up your project. Let's start by ensuring you can use React (if you're already familiar with coding in React, you can probably skip this section!). You need to use Node.js with any development using web frameworks such as Angular, React, or Vue -- especially if you wish to use libraries and packages to assist in developing your project. </p>\n<p>A popular utility in using such packages and libraries is the Node Package Manager, simply referred to as \"npm\". This utility allows you to install/uninstall packages, start your React application build using webpack, and many more other features. For your needs, you can take advantage of npm to create a React application with a PWA template, which allows you to code right away. Whenever you start building a React app, you can use templates offered by Facebook using the 'create-react-app' command with npm. </p>\n<p>Let's build the PWA starter app by running the following command:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"powershell\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\">npx create-react-app name-of-our-PWA-app --template cra-template-pwa</span></span></code></pre>\n<p>The above command can be broken down as follows:</p>\n<ul>\n<li><strong>npx</strong>: Every npm command needs to start with npm (or essentially with whatever node package manager you have installed, but 'npx' is used here, which comes with npm version 5.2.0). This helps you run npm packages and <a href=\"https://nodejs.org/en/learn/getting-started/an-introduction-to-the-npm-package-manager\">takes care of many features</a>.</li>\n<li><strong>create-react-app</strong>: This command initiates the popular Create React App utility that helps you build the starter react project.</li>\n<li><strong>name-of-our-PWA-app</strong>: This is a filler title of your application. Name the app to whatever you would like. Here, the default 'my-app' name is used)</li>\n<li><strong>--template</strong>: This is an argument. When you have an argument, you're essentially enabling an option in the same command. Here, you can specify a specific template for our starter react application.</li>\n<li><strong>cra-template-pwa</strong>: The name of the PWA template for your PWA react application.</li>\n</ul>\n<p>Hitting 'Enter' after this command should initiate the build of your starter PWA React application. You should see a stream of prompts in your command-line interface. It may take a few minutes, but if you can see this screen after the command, you have created the project.</p>\n<p><img src=\"/cf52c47a56fc5794c1a6c2d9a81880f2/cra-pwa.webp\" alt=\"cra-pwa.webp\"></p>\n<p><img src=\"/9fc192e314ec7664132ffb4c76563789/pwa-folder-structure.webp\" alt=\"pwa-folder-structure.webp\"></p>\n<p>Here, you can see the following folder structure of your application so far. There are a few files that you shall pay attention to when it comes to PWA's:</p>\n<ul>\n<li><strong><code>service-worker.js</code></strong>: This is a script that runs in the background once your application starts running. The service worker makes sure that you can use your React application offline and handle multiple requests for the UI. (<a href=\"https://developers.google.com/web/fundamentals/primers/service-workers?hl=en\">learn more here</a>)</li>\n<li><strong><code>manifest.json</code></strong>: This is basically a configuration file that lists different properties that you can customize specifically for progressive web applications. It can determine such things as icons, names, and colors to use when the application is displayed.</li>\n<li><strong><code>serviceWorkerRegistration.js</code></strong>: This file does the job of telling whether or not your service worker was successfully registered. If you look into the file, you'll notice multiple console logs that will be displayed depending on the status of the service worker once you deploy your application.</li>\n</ul>\n<h2 id=\"adding-a-simple-react-component\" style=\"position:relative;\"><a href=\"#adding-a-simple-react-component\" aria-label=\"adding a simple react component 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>Adding a Simple React Component</h2>\n<p>For your project, you'll build a simple Counter component, similar (if not exactly the same) to the example provided in the React docs: <a href=\"https://reactjs.org/docs/hooks-state.html\">Hooks State</a></p>\n<p>Let's start by creating a Counter component. Here, it is named as <code>Counter.jsx</code> and placed in a <code>components</code> folder.</p>\n<p>To speed things up, you can copy and paste the following code in your specific files. Here, it is built out as a simple page and some generic stylings for the component.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"jsx\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk3\">//Counter.jsx</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk15\">import</span><span class=\"mtk1\"> </span><span class=\"mtk12\">React</span><span class=\"mtk1\">, { </span><span class=\"mtk12\">useState</span><span class=\"mtk1\"> } </span><span class=\"mtk15\">from</span><span class=\"mtk1\"> </span><span class=\"mtk8\">&#39;react&#39;</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk15\">import</span><span class=\"mtk1\"> </span><span class=\"mtk12\">Button</span><span class=\"mtk1\"> </span><span class=\"mtk15\">from</span><span class=\"mtk1\"> </span><span class=\"mtk8\">&#39;@mui/material/Button&#39;</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk4\">function</span><span class=\"mtk1\"> </span><span class=\"mtk11\">Counter</span><span class=\"mtk1\">(</span><span class=\"mtk12\">props</span><span class=\"mtk1\">) {</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk4\">let</span><span class=\"mtk1\"> [</span><span class=\"mtk12\">count</span><span class=\"mtk1\">, </span><span class=\"mtk12\">setCount</span><span class=\"mtk1\">] = </span><span class=\"mtk11\">useState</span><span class=\"mtk1\">(</span><span class=\"mtk7\">0</span><span class=\"mtk1\">)</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk4\">function</span><span class=\"mtk1\"> </span><span class=\"mtk11\">increment</span><span class=\"mtk1\">() {</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk11\">setCount</span><span class=\"mtk1\">(</span><span class=\"mtk12\">count</span><span class=\"mtk1\"> + </span><span class=\"mtk7\">1</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    }</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk4\">function</span><span class=\"mtk1\"> </span><span class=\"mtk11\">decrement</span><span class=\"mtk1\">() {</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk11\">setCount</span><span class=\"mtk1\">(</span><span class=\"mtk12\">count</span><span class=\"mtk1\"> - </span><span class=\"mtk7\">1</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    }</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk15\">return</span><span class=\"mtk1\">(</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">div</span><span class=\"mtk1\"> </span><span class=\"mtk12\">style</span><span class=\"mtk1\">=</span><span class=\"mtk4\">{</span><span class=\"mtk1\">{</span><span class=\"mtk12\">textAlign:</span><span class=\"mtk1\"> </span><span class=\"mtk8\">&#39;center&#39;</span><span class=\"mtk1\">}</span><span class=\"mtk4\">}</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">            </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">h3</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">Counter App</span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">h3</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">            </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">div</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                </span><span class=\"mtk17\">&lt;</span><span class=\"mtk10\">Button</span><span class=\"mtk1\"> </span><span class=\"mtk12\">variant</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;contained&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">onClick</span><span class=\"mtk1\">=</span><span class=\"mtk4\">{</span><span class=\"mtk12\">increment</span><span class=\"mtk4\">}</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">+</span><span class=\"mtk17\">&lt;/</span><span class=\"mtk10\">Button</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">span</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\"> </span><span class=\"mtk4\">{</span><span class=\"mtk12\">count</span><span class=\"mtk4\">}</span><span class=\"mtk1\"> </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">span</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">                </span><span class=\"mtk17\">&lt;</span><span class=\"mtk10\">Button</span><span class=\"mtk1\"> </span><span class=\"mtk12\">variant</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;contained&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">onClick</span><span class=\"mtk1\">=</span><span class=\"mtk4\">{</span><span class=\"mtk12\">decrement</span><span class=\"mtk4\">}</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">-</span><span class=\"mtk17\">&lt;/</span><span class=\"mtk10\">Button</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">            </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">div</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">div</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    );</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">};</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk15\">export</span><span class=\"mtk1\"> </span><span class=\"mtk15\">default</span><span class=\"mtk1\"> </span><span class=\"mtk12\">Counter</span><span class=\"mtk1\">;</span></span></code></pre>\n<p><strong>Note:</strong> Here, Material UI's Button component is used. You don't need to and can substitute the Button component with:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"jsx\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">button</span><span class=\"mtk1\"> </span><span class=\"mtk12\">onClick</span><span class=\"mtk1\">=</span><span class=\"mtk4\">{</span><span class=\"mtk12\">increment</span><span class=\"mtk4\">}</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">+</span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">button</span><span class=\"mtk17\">&gt;</span></span></code></pre>\n<p>To use Material UI, run the following npm commands:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"powershell\" data-index=\"3\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\">npm install </span><span class=\"mtk12\">@mui</span><span class=\"mtk1\">/material</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">npm install </span><span class=\"mtk12\">@emotion</span><span class=\"mtk1\">/react </span><span class=\"mtk12\">@emotion</span><span class=\"mtk1\">/styled //these are additional dependencies </span><span class=\"mtk15\">for</span><span class=\"mtk1\"> me to get Material UI working with the Counter component</span></span></code></pre>\n<h2 id=\"running-your-application\" style=\"position:relative;\"><a href=\"#running-your-application\" aria-label=\"running 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>Running Your Application</h2>\n<p>In your command prompt, entering 'npm start' can spin up your application to a specific <code>http://localhost</code> url. You can start to see what work you've done so far.</p>\n<p>With these simple components, let's try to spin this application up and ensure it is working. </p>\n<p>Enter the command:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"powershell\" data-index=\"4\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\">npm start</span></span></code></pre>\n<p>This starts the application at a set <code>http://localhost</code> URL. Once the dev server is working and live on the command prompt, go to the URL to view the application. You should see something similar to this:</p>\n<p><img src=\"/6536c4c2d5cdd39bdf2c5d77940e0339/counter-base-app.webp\" alt=\"counter-base-app.webp\"></p>\n<p>Now, it's all good and ready to have the app live and working, but more interested in the PWA aspect.</p>\n<h2 id=\"running-your-progressive-web-application\" style=\"position:relative;\"><a href=\"#running-your-progressive-web-application\" aria-label=\"running your progressive web 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>Running Your Progressive Web Application</h2>\n<p>Focus back on the <code>index.js</code> file. Make the following change:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"jsx\" data-index=\"5\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk3\">// If you want your app to work offline and load faster, you can change</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk3\">// unregister() to register() below. Note this comes with some pitfalls.</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk3\">// Learn more about service workers: https://cra.link/PWA</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">serviceWorkerRegistration</span><span class=\"mtk1\">.</span><span class=\"mtk11\">register</span><span class=\"mtk1\">(); </span><span class=\"mtk3\">//change the service worker registration from &#39;unregistered&#39; to &#39;registered&#39;</span></span></code></pre>\n<p>Essentially, changing the service worker from unregistered to registered will allow you to utilize the app even when it's offline, a key benefit when it comes to PWAs. Check Google's explanation on this topic for more information: <a href=\"https://web.dev/articles/service-workers-registration\">Service Worker Registration</a></p>\n<p>With the PWA files setup, in order to view the difference, you can deploy your application to a static server using the <code>serve</code> package that will serve your application to localhost. In a nutshell, make sure you have the <code>serve</code> package by installing, building the application again, and using <code>serve</code> to deploy the application:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"powershell\" data-index=\"6\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\">npm install serve</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">npm run build</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">serve -s build //</span><span class=\"mtk15\">if</span><span class=\"mtk1\"> you encounter an error with this command, </span><span class=\"mtk15\">try</span><span class=\"mtk1\"> </span><span class=\"mtk8\">&#39;npx serve -s build&#39;</span></span></code></pre>\n<p>Once you use the <code>serve</code> command, you should see the following message, having your application deployed to <code>http://localhost:5000</code>. It automatically adds the URL to your clipboard as well for quick pasting in your browser.</p>\n<p><img src=\"/ac55130955a81cf0de6e9bb45a2410a4/pwa-serve.webp\" alt=\"pwa-serve.webp\"></p>\n<p>If you enter the <code>http://localhost</code> URL in your browser, you should see something similar to this:</p>\n<p><img src=\"/e420d6471b18535a23c6ca226349848b/pwa-service-worker.webp\" alt=\"pwa-service-worker.webp\"></p>\n<h2 id=\"pwa-features\" style=\"position:relative;\"><a href=\"#pwa-features\" aria-label=\"pwa features 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>PWA Features</h2>\n<p>With the PWA React application live, let's take a look under the hood and open up the Developer Tools (for Google Chrome, entering F12 opens the Dev Tools).</p>\n<p>After registering your service worker from <code>index.js</code>, you should be able to see it running in the Application tab. Inside that tab, on the left side you should see a Service Workers section. From here, you can see for <code>http://localhost:5000</code>. You have a Service Worker from your <code>service-worker.js</code> file and is activated/running.</p>\n<p>In the section above, you can see <code>Manifest</code> -- opening that should show you the relevant details you listed from your <code>manifest.json</code> files.</p>\n<p><img src=\"/49c0bfe07e2e6f91a095967eb4a63f1b/pwa-manifest.webp\" alt=\"pwa-manifest.webp\"></p>\n<p>With your PWA app running using React, you've successfully built your first PWA React application! From here, you can test many PWA features, such as installation, offline viewing, and Lighthouse audit testing.</p>\n<p><img src=\"/f8aca8e7ef5a80d7a4bf4cc60d853537/pwa-install.webp\" alt=\"pwa-install.webp\"></p>\n<p>If you hit the '+' symbol on the right side of the URL ba,r you can install your PWA, just as done here.</p>\n<p><img src=\"/0f89a25aa088ec175aaa4a561ed74a56/pwa-lighthouse.webp\" alt=\"pwa-lighthouse.webp\"></p>\n<p>Use Workbox Lighthouse for testing the capabilities of your PWA: <a href=\"https://developer.chrome.com/docs/lighthouse/overview/\">Lighthouse</a></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've learned about what PWAs are and how to build a PWA with React.</p>\n<p>If you want to quickly add user registration and authentication to your React PWA, you can <a href=\"https://www.loginradius.com/blog/engineering/user-authentication-react-application/\">use LoginRadius</a>. It eliminates the burden of building and maintaining user authentication from scratch and helps you focus entirely on building your app's core features.</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  .dark-default-dark .mtk1 { color: #D4D4D4; }\n  .dark-default-dark .mtk3 { color: #6A9955; }\n  .dark-default-dark .mtk15 { color: #C586C0; }\n  .dark-default-dark .mtk12 { color: #9CDCFE; }\n  .dark-default-dark .mtk8 { color: #CE9178; }\n  .dark-default-dark .mtk4 { color: #569CD6; }\n  .dark-default-dark .mtk11 { color: #DCDCAA; }\n  .dark-default-dark .mtk7 { color: #B5CEA8; }\n  .dark-default-dark .mtk17 { color: #808080; }\n  .dark-default-dark .mtk10 { color: #4EC9B0; }\n</style>","frontmatter":{"date":"October 22, 2021","updated_date":null,"description":"Follow this article to understand how to develop a simple React PWA. It explains the step-by-step process to help you easily follow along.","title":"How to Build a Progressive Web App (PWA) with React","tags":["React","PWA","npm"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/a95efcae02df125860df9cb572a3e517/58556/blog-image.webp","srcSet":"/static/a95efcae02df125860df9cb572a3e517/61e93/blog-image.webp 200w,\n/static/a95efcae02df125860df9cb572a3e517/1f5c5/blog-image.webp 400w,\n/static/a95efcae02df125860df9cb572a3e517/58556/blog-image.webp 800w,\n/static/a95efcae02df125860df9cb572a3e517/99238/blog-image.webp 1200w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Abdullah Pathan","github":"aonepathan","avatar":null}}}},{"node":{"excerpt":"There has never been a better time to enter the banking industry. Modern technologies have made banking a simple and entertaining experience…","fields":{"slug":"/growth/multi-factor-authentication-ivr-banking/"},"html":"<p>There has never been a better time to enter the banking industry. Modern technologies have made banking a simple and entertaining experience. However, the competition has grown tougher. Customers have an increased appetite for engaging digital products that seamlessly fit into their daily lives. </p>\n<p>But this also means not neglecting the cyber security threat that customers are constantly vulnerable to. Multi-factor authentication is one solution to keep the trust of their customers intact. Adding IVR into the mix can further help the banking industry deal with the new technical challenges they face on the digital front. </p>\n<h2 id=\"understanding-multi-factor-authentication\" style=\"position:relative;\"><a href=\"#understanding-multi-factor-authentication\" aria-label=\"understanding multi factor authentication 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>Understanding Multi-Factor Authentication</h2>\n<p><a href=\"https://www.loginradius.com/multi-factor-authentication/\">Multi-factor authentication (MFA)</a> is gaining huge popularity globally after banks and other financial institutes started implementing it to prevent cyber frauds. </p>\n<p>MFA provides a second level of credentials after a user logs in successfully with their credentials. This second-level validation requires either a one-time password or a soft token or a hard token. It increases the security of the users' data. If the token is lost, the user can still access their accounts by generating a new one. </p>\n<p>Based on this fact, the chances of theft reduce to a great extent if MFA is employed for user authentication.</p>\n<h2 id=\"understanding-interactive-voice-response\" style=\"position:relative;\"><a href=\"#understanding-interactive-voice-response\" aria-label=\"understanding interactive voice response 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>Understanding Interactive Voice Response</h2>\n<p>Interactive Voice Response (IVR) is a type of call management system that enables your business to receive calls through different channels such as online, email, or fax and offers services in real-time. </p>\n<p>As traditional phone systems are losing their importance in today’s world of smartphones and the internet, more and more banks look forward to an <a href=\"https://getvoip.com/ivr-systems/\">IVR</a> system for its convenience and effectiveness in conducting communication.</p>\n<h2 id=\"the-role-of-multi-factor-authentication-and-ivr-in-the-banking-industry\" style=\"position:relative;\"><a href=\"#the-role-of-multi-factor-authentication-and-ivr-in-the-banking-industry\" aria-label=\"the role of multi factor authentication and ivr in the banking industry 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>The Role of Multi-Factor Authentication and IVR in the Banking Industry</h2>\n<p>When it comes to providing a secure environment for your customers you can’t leave anything to chance. There are a number of very important technologies that, when used properly, will help ensure that your customers’ data is not at risk. Some of these technologies include multi-factor authentication and an Interactive Voice Response (IVR) system. </p>\n<p>The following will give you a detailed insight into the different roles of MFA and IVR systems.</p>\n<h3 id=\"1-provides-strong-authentication\" style=\"position:relative;\"><a href=\"#1-provides-strong-authentication\" aria-label=\"1 provides strong authentication 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. Provides strong authentication</h3>\n<p>A constant threat to credential harvesting has led to the adoption of <strong>multi-factor authentication</strong>, providing an extra layer of security to its users. A weak or stolen password can have consequences on the organization and customer's trust. Thus, using multiple weighted factors can prevent hackers' access to confidential data. These factors could be, using passwords and phone to log into an account.</p>\n<h3 id=\"2-calculates-the-risk-vector\" style=\"position:relative;\"><a href=\"#2-calculates-the-risk-vector\" aria-label=\"2 calculates the risk vector 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. Calculates the risk vector</h3>\n<p>With the introduction of work-from-home arrangements, the workplace of different users varies. Thus to cater to the needs of more complex requests, <a href=\"https://www.loginradius.com/blog/identity/adaptive-authentication/\">adaptive multi-factor authentication</a> is here. </p>\n<p>Adaptive Authentication is a method to send notifications or prompt the consumers to complete an additional step(s) to verify their identities when the authentication request is deemed malicious according to your organization's security policy.</p>\n<p>For example, a user wants to access a company's data. He is sitting in a coffee shop and operating via an unsecured WiFi, then MFA would ask for additional verification data to ensure a secured network. </p>\n<p><a href=\"https://www.loginradius.com/resource/an-enterprises-guide-to-risk-based-authentication/\"><img src=\"/801da6af3b32c69be7197a9381fe67b9/GD-to-RBA.webp\" alt=\"GD-to-RBA\"></a></p>\n<h3 id=\"3-enhances-user-experience\" style=\"position:relative;\"><a href=\"#3-enhances-user-experience\" aria-label=\"3 enhances user 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>3. Enhances user experience</h3>\n<p>Being able to log in anywhere with the same password is convenient. However, by doing so you could be locking yourself out of your accounts if you forget them. With multi-factor authentication, you don’t have to worry about forgetting your password until it’s too late. There are ways to combine security with convenience to protect your data at all costs, enhancing user experience in the process. </p>\n<h3 id=\"4-eliminates-customer-friction\" style=\"position:relative;\"><a href=\"#4-eliminates-customer-friction\" aria-label=\"4 eliminates customer friction 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. Eliminates customer friction</h3>\n<p>Attending thousands of queries manually in a day is not easy. Moreover, it's a lengthy process and leads to customers' disappointment. IVR software helps a bank save time from small queries keeping agents free to deal with a more complex one. This highly efficient system is a boon for the banking industry. Further, it allows a bank hassle-free resolution of the problems of its customers.</p>\n<p>For example, if a customer wants to know about the procedure to open a bank account, he can get the related information by clicking on telephonic numbers. </p>\n<h3 id=\"5-sends-immediate-fraud-notification\" style=\"position:relative;\"><a href=\"#5-sends-immediate-fraud-notification\" aria-label=\"5 sends immediate fraud notification 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. Sends immediate fraud notification</h3>\n<p>On detection of any <a href=\"https://www.loginradius.com/blog/fuel/good-transaction-security/\">fraudulent transaction</a>, a notification is sent immediately to the concerned customer. However, a message is sufficient to inform the customer about fraudulent activity. But an IVR enables the customer to directly have a conversation with the bank's agent and take necessary steps.</p>\n<h3 id=\"6-easy-registration-of-an-immediate-report\" style=\"position:relative;\"><a href=\"#6-easy-registration-of-an-immediate-report\" aria-label=\"6 easy registration of an immediate report 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. Easy registration of an immediate report</h3>\n<p>In case of a lost, damaged, or stolen card, the user can immediately report via IVR. There is no need to call the customer care number and wait for an agent. With a simple click, you can register your problem or block the card in your preferred language.</p>\n<h3 id=\"7-surveys\" style=\"position:relative;\"><a href=\"#7-surveys\" aria-label=\"7 surveys 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>7. Surveys</h3>\n<p>IVR is an excellent way of conducting surveys and collecting necessary data for further improvement in different policies. Moreover, bank authorities can keep an eye on their employees by asking their customers about their experience in interaction with the company's agent.</p>\n<p>The use of technology in various ways has been a great factor in accelerating the growth of many sectors. These have resulted in the enhancement of product quality, improvement of delivery time, and reduction in costs. The banking sector is one sector that utilizes technology to add value to both its members and other commercial businesses. </p>\n<p>Customers must feel and be sure that the bank's employees only can access their accounts and personal data. First-and second-factor authentication is now being replaced by newer technologies, specifically multi-factor authentication. This greater level of protection is gaining popularity in the wake of the growing threat of information theft and <a href=\"https://www.loginradius.com/blog/identity/identity-theft-frauds/\">identity theft</a> due to cyber-attacks.</p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=multi-factor-authentication-ivr-banking\"><img src=\"/8fce571f703a5970dbb1359a2fe0e51a/book-a-demo-loginradius.webp\" alt=\"book-free-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":"October 21, 2021","updated_date":null,"description":"One of the greatest adoptions in the banking industry is the introduction of multi-factor authentication (MFA) and Interactive Voice Response (IVR) systems. Both of them are considered effective ways that help banks to reduce fraud. This blog explains their individual roles in banking.","title":"Decoding the Role of Multi-Factor Authentication and IVR in Banking","tags":["mfa","adaptive mfa","cx"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.7391304347826086,"src":"/static/6babbd2b0056a043e05c700acfdac138/58556/ivr-cover.webp","srcSet":"/static/6babbd2b0056a043e05c700acfdac138/61e93/ivr-cover.webp 200w,\n/static/6babbd2b0056a043e05c700acfdac138/1f5c5/ivr-cover.webp 400w,\n/static/6babbd2b0056a043e05c700acfdac138/58556/ivr-cover.webp 800w,\n/static/6babbd2b0056a043e05c700acfdac138/cc834/ivr-cover.webp 1024w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Navanita Devi","github":null,"avatar":null}}}},{"node":{"excerpt":"In the coming years, cybercrime will continue to grow. Between 2023 and 2028, the global 'Estimated Cost of Cybercrime' indicator in the…","fields":{"slug":"/identity/cybersecurity-best-practices-for-enterprises/"},"html":"<p>In the coming years, cybercrime will continue to grow. Between 2023 and 2028, the global 'Estimated Cost of Cybercrime' indicator in the cybersecurity market was anticipated to rise consistently, reaching a total of <a href=\"https://www.statista.com/forecasts/1280009/cost-cybercrime-worldwide\">5.7 trillion U.S. dollars</a>, marking a significant increase of 69.94 percent.</p>\n<p>Businesses of all sizes will continue facing new threats on a daily basis—phishing scams and malware being the most common ones. Both can be devastating to unprotected companies. To help you avoid becoming another cybercrime statistic, we’ve created this infographic with our top cybersecurity best practices.</p>\n<p>In 2020, when a large chunk of the world population shifted to work from home models, cybercriminals also transitioned to remote operations. In fact, a report also suggested that remote working accounted for <a href=\"https://resources.malwarebytes.com/files/2020/08/Malwarebytes_EnduringFromHome_Report_FINAL.pdf\">20% of cybersecurity incidents</a> that occurred during the pandemic. </p>\n<p>2021 and 2022 were no different. Remember when Taiwanese computer giant Acer was hit by a REvil ransomware attack in March this year? The hackers demanded a <a href=\"https://constellix.com/news/acer-responds-to-being-hit-by-50m-ransomware-attack\">whopping $50 million</a>. They shared images of stolen files as proof of breaching Acer’s security and the consequent data leak.</p>\n<p>Not only was the same gang responsible for the 2020 ransomware strike on Travelex, they reportedly extorted more than $100 million in one year from large businesses.</p>\n<p>These are wake-up calls, and it is high time organizations must <a href=\"https://www.loginradius.com/blog/2019/10/cybersecurity-attacks-business/\">understand cyber threats</a> and do everything possible to prevent data breaches.</p>\n<p>Here are some cybersecurity best practices this infographic will cover.</p>\n<h3 id=\"use-tougher-security-questions\" style=\"position:relative;\"><a href=\"#use-tougher-security-questions\" aria-label=\"use tougher security questions 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>Use tougher security questions.</h3>\n<p>Security questions prevent imposters from infiltrating the verification process. So what does <a href=\"https://www.loginradius.com/blog/identity/2019/01/best-practices-choosing-good-security-questions/\">a good security question</a> look like? </p>\n<p>The best ones will make it easy for legitimate users to authenticate themselves. They should be: </p>\n<ul>\n<li>Safe: Hackers shouldn’t be able to guess or research it.</li>\n<li>Stable: The answer shouldn’t change over time.</li>\n<li>Memorable: The user should be able to remember it.</li>\n<li>Simple: The password should be precise, easy, and consistent.</li>\n<li>Many: The password should have many possible answers.</li>\n</ul>\n<h3 id=\"enable-multi-factor-authentication-mfa\" style=\"position:relative;\"><a href=\"#enable-multi-factor-authentication-mfa\" aria-label=\"enable multi factor authentication mfa 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>Enable multi-factor authentication (MFA).</h3>\n<p>Multi-factor authentication is a powerful feature to prevent unauthorized users from accessing sensitive data. </p>\n<p>For the most secure user sign-ins, you should use a combination of elements like biometrics, SMS/text messages, emails, and security questions. Use <a href=\"https://www.loginradius.com/blog/identity/what-is-multi-factor-authentication/\">extra layers of protection</a>, like text verification, email verification, or time-based security codes.</p>\n<p>For example, you can allow an employee to log in on a managed device from your corporate network. But if a user is logging in from an unknown network on an unmanaged device, ask them to crack an additional layer of security. </p>\n<h3 id=\"create-a-strong-password-policy\" style=\"position:relative;\"><a href=\"#create-a-strong-password-policy\" aria-label=\"create a strong password policy 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>Create a strong password policy.</h3>\n<p>To protect your organization's network, enforce a strong password security policy with the following practices:</p>\n<ul>\n<li><strong>Longer passwords</strong>: The minimum length should be 15 characters, more if possible.</li>\n<li><strong>Mix characters</strong>: The password should be a combination of uppercase and lowercase letters, numbers, and symbols. The more complex your password is, the harder will it be for brute force attackers. </li>\n<li><strong>Do not allow dictionary words</strong>: Do not use everyday dictionary words or even a combination of words. For example, \"chocolate\" is a bad password, so is \"dark chocolate\". Go for a passphrase instead. They are a string of related words with no sentence structure. Here is an example: hotdog food ketchup relish mustard mayo. </li>\n<li><strong>Don’t use memorable keyboard paths</strong>: Do not use sequential keyboard paths like qwerty, a1s2d3f4, or asdfgh. </li>\n<li><strong>Change passwords regularly</strong>: Change passwords at a regular interval. It can be once every month or twice a month. </li>\n<li><strong>Use a password manager</strong>: Password managers can auto-generate and store strong passwords on your behalf. They save your passwords in an encrypted, centralized location, and allow you to access them with a master password. </li>\n</ul>\n<h3 id=\"embrace-cybersecurity-training\" style=\"position:relative;\"><a href=\"#embrace-cybersecurity-training\" aria-label=\"embrace cybersecurity training 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>Embrace cybersecurity training.</h3>\n<p>Conduct cybersecurity awareness workshops to train your employees at regular intervals. It will help reduce cyberattacks caused by human error and employee negligence to a great extent. </p>\n<h3 id=\"create-data-backups\" style=\"position:relative;\"><a href=\"#create-data-backups\" aria-label=\"create data backups 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>Create data backups.</h3>\n<p>A data backup solution is one of the best measures to keep personal and business data secure from a ransomware attack. Ransomware is malicious software that is accidentally deployed by an employee by clicking on a malicious link. And deployed, all data in the site is taken hostage. </p>\n<p>You can ensure the protection of your data by implementing continuous backups. You can use the cloud to create a copy of your data on a server and hosts it in a remote location. In case, your system is hacked, you can restore back your data. </p>\n<p>Aside from login security tips, this infographic will also highlight:</p>\n<ul>\n<li>A few fascinating facts about cybercrime.</li>\n<li>The hidden costs of cybercrime.</li>\n<li>The intensity of damage predictions.  </li>\n<li>A cybercriminal’s ROI</li>\n<li>A few eye-opening statistics </li>\n</ul>\n<p>To learn more about the cybersecurity best practices for your business in 2023 and beyond, check out the infographic created by LoginRadius.</p>\n<p><img src=\"/a830327430cb6c3103cd183d50cbfde4/cybersecurity-infographic2023.webp\" alt=\"cybersecurity-infographic-2023\"></p>\n<p>Get the best cybersecurity solutions for your enterprise with LoginRadius.</p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=cybersecurity-best-practices-for-enterprises\"><img src=\"/8fce571f703a5970dbb1359a2fe0e51a/book-a-demo-loginradius.webp\" alt=\"book-free-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":"October 21, 2021","updated_date":null,"description":"Today cybercriminals are increasingly able to cover their tracks, hide in the cloud, manipulate the infrastructure of the web, and exploit complex vulnerabilities. This infographic summarizes the key takeaway into the cybersecurity best practices that businesses should adopt in 2023.","title":"Cybersecurity Best Practices for Businesses in 2023 & Beyond [Infographic]","tags":["cybersecurity","data security","cx","password management"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/2054e143ee62c046f4ff0fb6b40d0f23/7f8e9/cybersecurity-best-practices.webp","srcSet":"/static/2054e143ee62c046f4ff0fb6b40d0f23/61e93/cybersecurity-best-practices.webp 200w,\n/static/2054e143ee62c046f4ff0fb6b40d0f23/1f5c5/cybersecurity-best-practices.webp 400w,\n/static/2054e143ee62c046f4ff0fb6b40d0f23/7f8e9/cybersecurity-best-practices.webp 768w","sizes":"(max-width: 768px) 100vw, 768px"}}},"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":378,"currentPage":64,"type":"///","numPages":164,"pinned":"ee8a4479-3471-53b1-bf62-d0d8dc3faaeb"}},"staticQueryHashes":["1171199041","1384082988","2100481360","23180105","528864852"]}