{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreihrmdsjmwraqmx44glm2rthvxdrtv4ymy3evx4azhb3qrbhj5u3ky",
    "uri": "at://did:plc:m2sjv3wncvsasdapla35hzwj/app.bsky.feed.post/3mpqu7bqhkp2w"
  },
  "canonicalUrl": "https://hipstersmoothie.com/blog/posts/designing-a-login-page",
  "description": "The UX decisions behind my Atmosphere apps login pages — saved handles, handle autocomplete, and a 'create account' guardrail that slows people down on purpose.",
  "path": "/blog/posts/designing-a-login-page",
  "publishedAt": "2026-07-03T15:00:00.000Z",
  "site": "at://did:plc:m2sjv3wncvsasdapla35hzwj/site.standard.publication/3mng7bqymfo2w",
  "tags": [
    "atproto"
  ],
  "textContent": "The UX decisions behind my Atmosphere apps login pages — saved handles, handle autocomplete, and a 'create account' guardrail that slows people down on purpose.",
  "title": "Atmospheric Login Page"
}