{
"$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"
}