···3939 const res = await routes.request("/login");
40404141 const html = await res.text();
4242- expect(html).toContain("Log in with AT Proto");
4242+ expect(html).toContain("Log in");
4343 expect(html).toContain('type="submit"');
4444 });
4545···5252 expect(html).toContain('method="get"');
5353 });
54545555- it("renders AT Proto explanation text", async () => {
5555+ it("renders Internet Handle explanation text", async () => {
5656 const routes = await loadLoginRoutes();
5757 const res = await routes.request("/login");
58585959 const html = await res.text();
6060- // Should explain what AT Proto login means
6161- expect(html).toContain("AT Protocol");
6060+ // Should explain what Internet Handle login means
6161+ expect(html).toContain("Internet Handle");
6262 });
63636464 it("displays decoded error message from query param", async () => {
+4-4
apps/web/src/routes/login.tsx
···2828 <BaseLayout title="Sign in — atBB Forum" auth={auth}>
2929 <PageHeader
3030 title="Sign in"
3131- description="Sign in with your AT Protocol account."
3131+ description="Sign in with your Internet Handle."
3232 />
3333 <div class="login-form">
3434 {error && (
···4242 class="login-form__form"
4343 >
4444 <label for="login-handle" class="login-form__label">
4545- AT Protocol handle
4545+ Internet Handle
4646 </label>
4747 <input
4848 type="text"
···5757 aria-describedby="login-hint"
5858 />
5959 <p class="login-form__hint" id="login-hint">
6060- Use any AT Protocol handle (e.g. <code>alice.bsky.social</code>{" "}
6060+ Use any Internet Handle (e.g. <code>alice.bsky.social</code>{" "}
6161 or a custom domain). You own your posts — they live on your PDS.
6262 </p>
6363 <button type="submit" class="login-form__submit">
6464- Log in with AT Proto
6464+ Log in
6565 </button>
6666 </form>
6767 </div>