diff --git a/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInFragment.kt b/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInFragment.kt
index de612add29a36b41e068288aa7b4dc946aca1d86..94cd9f5f681729f0cf41efd0aed6f5c83fa1568b 100644
--- a/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInFragment.kt
+++ b/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInFragment.kt
@@ -127,6 +127,13 @@ class LogInFragment : Fragment(R.layout.fragment_log_in), HasLoadingState {
                 startLoading(btnLogin)
                 viewModel.startLogInFlow(userName, getDomain())
             }
+            btnForgotPassword.setOnClickListener {
+                val userName = binding.tilUserName.getText()
+                if (userName.isEmpty()) {
+                    showError(getString(R.string.username_can_not_be_empty))
+                    return@setOnClickListener
+                }
+            }
         }
     }
 
diff --git a/auth/src/main/res/layout/fragment_log_in.xml b/auth/src/main/res/layout/fragment_log_in.xml
index d1dc63aea7da5c1b998bb4d4c0c4d71ecd5e9136..b42fd32c2e33d8033a1e92a8f263b509762ca560 100644
--- a/auth/src/main/res/layout/fragment_log_in.xml
+++ b/auth/src/main/res/layout/fragment_log_in.xml
@@ -142,6 +142,19 @@
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toBottomOf="@id/tilUserName" />
 
+        <com.google.android.material.button.MaterialButton
+            android:id="@+id/btnForgotPassword"
+            style="@style/Widget.Material3.Button.TextButton"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="8dp"
+            android:text="@string/forgot_password"
+            android:textColor="@color/blue"
+            android:textSize="17sp"
+            android:textStyle="bold"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@id/btnLogin" />
 
         <TextView
             android:id="@+id/tvResumeSession"
@@ -155,7 +168,7 @@
             app:layout_constraintBottom_toTopOf="@id/rvSwitchUsers"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/btnLogin"
+            app:layout_constraintTop_toBottomOf="@+id/btnForgotPassword"
             app:layout_constraintVertical_chainStyle="packed"
             tools:visibility="visible" />
 
diff --git a/auth/src/main/res/values/strings.xml b/auth/src/main/res/values/strings.xml
index 946848f9ac26a139ce791252d89fe2969e21550e..b3f8982a93227b6d8bafd3a142e6e600f6f97f0e 100644
--- a/auth/src/main/res/values/strings.xml
+++ b/auth/src/main/res/values/strings.xml
@@ -176,6 +176,7 @@ Or, think about all of your friends across all of the places you\'ve ever lived.
     <string name="username_not_found">Username not found</string>
     <string name="invalid_validation_code">Invalid validation code</string>
     <string name="invalid_password">Invalid password</string>
+    <string name="forgot_password">Forgot password?</string>
 
 
     <plurals name="days">