···11# Better PDS Dash
22+23
34A comic-style Bluesky PDS dashboard with full support for Bluesky's embeds and media.
45···44454546Uh, you will figure it out, just use Traefik/Caddy to serve this on /
46474747-Here's a guide that might be helpful: [Setting a custom homepage on a PDS](https://willdot.leaflet.pub/3m25uvnuwnk2t)4848+Here's a guide that might be helpful: [Setting a custom homepage on a PDS](https://willdot.leaflet.pub/3m25uvnuwnk2t)
···1313});
14141515export const metadata: Metadata = {
1616- title: 'PDS Dash',
1717- description: 'Bluesky PDS Dashboard',
1616+ title: 'Atproto PDS',
1717+ description: 'This is an AT Protocol Personal Data Server (aka, an atproto PDS)',
1818};
19192020export default function RootLayout({
+13-4
src/app/page.tsx
···22import {UserList} from '@/components/UserList';
33import {PostFeed} from '@/components/PostFeed';
4455+import {BackToTop} from '@/components/BackToTop';
66+57export const dynamic = 'force-dynamic';
6879export default async function Home() {
···24262527 return (
2628 <main className="min-h-screen halftone p-4 md:p-8 relative z-10">
2929+ <BackToTop />
2730 <div className="max-w-6xl mx-auto space-y-6">
2831 <header className="comic-panel p-8 text-center mb-8 bg-yellow-200">
2929- <h1
3030- className="text-4xl md:text-6xl font-bold transform -rotate-1"
3131- style={{fontFamily: 'Bangers, cursive'}}
3232- >
3232+ <h1 className="text-4xl md:text-6xl font-bold" style={{fontFamily: 'Bangers, cursive'}}>
3333 <span className="text-red-500">{pdsHostname.toUpperCase()}</span>
3434 </h1>
3535+ <div className="mt-6 text-lg font-bold space-y-1">
3636+ <p>This is an AT Protocol Personal Data Server (aka, an atproto PDS)</p>
3737+ <p className="text-sm text-zinc-700">
3838+ Most API routes are under{' '}
3939+ <code className="bg-white px-2 py-0.5 rounded border-2 border-black font-mono text-black">
4040+ /xrpc/
4141+ </code>
4242+ </p>
4343+ </div>
3544 </header>
36453746 <section className="comic-panel p-6">