A very simple single-file PDS home page to list active users
1import { getAvatar, getUsers, resolveAliases } from "./atproto" 2 3 4const users = await getUsers() 5 6let cleared = false 7 8const spinner = document.getElementById("users__spinner") 9 10const list = document.createElement("div") 11for (const user of users) { 12 if (!user.active) { 13 continue; 14 } 15 16 if (!cleared) { 17 document.querySelector("section.users > p")?.remove() 18 cleared = true 19 } 20 21 const handleElement = document.createElement("div") 22 handleElement.textContent = user.did 23 24 const handle = (await resolveAliases(user.did))?.at(0)?.replace("at://", "") || user.did 25 26 const container = document.createElement("div") 27 container.innerHTML = ` 28 <img src="${await getAvatar(user.did)}" alt="${handle}" /> 29 <div class="info"> 30 <a href="https://pdsls.dev/at://${user.did}" class="handle" target="_blank"> 31 ${handle} 32 </a> 33 </div> 34 ` 35 list.appendChild(container) 36} 37 38 39const doc = document.querySelector("section.users") 40if (!doc) { 41 throw new Error("Could not find section.users") 42} 43doc.appendChild(list) 44 45spinner?.remove()