# Unstoppable Login with Popup In this integration guide, we will show how to add Unstoppable Login with the pop-up feature to an empty HTML page. There will be no complicated install requirements – to complete this integration, you just need to be a JavaScript developer with a few minutes of time. figure div iframe figcaption Tutorial: Integrating Login With Popup If you’d like to skip ahead or follow along you can download the [full example (1 KB zipped)](https://gist.github.com/perfect-cents/b2a0df5b73b441feb86168a272670565/archive/2463d1538d9e8257e70dc1908e65d95464665fe9.zip) beforehand. ## Step 1: Project Setup Before we get started, you’ll need to install Node and Yarn or npm and create a directory for your project. Then, install the following packages into your app using one of the following scripts: yarn ```shell mkdir project && cd project yarn init --yes yarn add --dev parcel yarn add @uauth/js ``` npm ```shell mkdir project && cd project npm init --yes npm install --save-dev parcel npm install --save @uauth/js ``` **@uauth/js** is the library used for implementing Unstoppable Login on the frontend. ## Step 2: Create an HTML File Build out the `index.html` file as follows: ```html Unstoppable Login ``` ## Step 3: Instantiate the Library Now, configure the `app.js` as follows: ```javascript import UAuth from "@uauth/js"; const uauth = new UAuth({ clientID: "uauth_example_spa_id", redirectUri: "http://localhost:5000/callback", }); ``` ## Step 4: Implement the Login Handler Add a login function to `app.js` as follows: ```javascript window.login = async () => { try { const authorization = await uauth.loginWithPopup(); console.log(authorization); } catch (error) { console.error(error); } }; ``` ## Step 5: Implement the Logout Handler Add a logout function to `app.js` as follows: ```javascript window.logout = async () => { await uauth.logout(); console.log("Logged out with Unstoppable"); }; ``` ## Step 6: Unstoppable Login Unstoppable Login can be integrated with any EVM-compatible DApp (as well as Solana DApps). However, domains minted on testnets (e.g. Amoy or Sepolia) are not supported. The following command will run the app. Keep in mind that the credentials will only work if you are on the correct port. ```shell yarn parcel --open --port 5000 index.html ``` div [Next to **Display the User's Domain**](/identity/guides/display-users-domain)