<.header class="text-center mb-8">
transmit your frequency
<:subtitle>
Connect securely with your Bluesky App Password
🔒 Security Notice: Never use your main Bluesky password.
Create a secure App Password in your Bluesky settings.
<.simple_form :let={f} for={@conn.params["user"]} as={:user} action={~p"/users/log_in"} class="space-y-6">
{String.replace(@error_message, "email", "handle")}
<.input field={f[:handle]} type="text" placeholder="yourname.bsky.social or yourname@custom.domain" class="w-full border border-gray-300 rounded-lg px-4 py-3 focus:ring-2 focus:ring-blue-500 focus:border-transparent" required />
Enter your Bluesky handle (with or without .bsky.social)
<.input field={f[:password]} type="password" placeholder="xxxx-xxxx-xxxx-xxxx" class="w-full border border-gray-300 rounded-lg px-4 py-3 focus:ring-2 focus:ring-blue-500 focus:border-transparent font-mono" required />
Important: Use an App Password, not your main password.
Generate an App Password in Bluesky Settings →
<:actions :let={f}>
<.input field={f[:remember_me]} type="checkbox" label="Keep me logged in" class="text-sm" />
Need help? App Password Guide
<:actions>
<.button phx-disable-with="Authenticating..." class="bg-blue-600 text-white px-8 py-3 rounded-lg hover:bg-blue-700 font-medium w-full"> Connect to Bluesky