Hannah's Web log

Putting my Neocities blog on ATProto

31 May, 2026 | 4 minute read

Bluesky just released some very nice custom link cards that work with standard.site links.

v1.122 is rolling out today, featuring a better way to discover and share articles, blog posts and newsletters across the Atmosphere via new, dynamic Standard.site link cards. ๐Ÿงต

[image or embed]

— Bluesky (@bsky.app) May 29, 2026 at 4:09 AM

I saw them and instantly thought: WANT. NEED.

The only issue is I blog manually on Neocities rather than using one of the ATproto blogging services. But, if you like these link cards, I've discovered it is possible to add the required elements into your html files on a basic Neocities site!

Here I present a step-by-step guide. It is easier than it sounds, but will require an extra step every time you post a new page (which for me is part of the fun). If you're interested, read on!

Part 1: One-time setup

You only need to do this once for your whole site.

Step 1: Log in to PDSls

Create a Bluesky app password โ€” create one at Settings โ†’ Privacy and Security โ†’ App Passwords

Go to pdsls.dev and log in with your Bluesky handle and your app password (not your regular password).

Step 2: Create your publication record

Click Create Record. In the Collection field at the top, type:

site.standard.publication

Then replace everything in the editor with this, filling in your own details:

{
  "$type": "site.standard.publication",
  "url": "https://yoursite.neocities.org",
  "name": "Your Blog Name",
  "description": "A short description of your blog",
  "preferences": {
    "showInDiscover": true
  }
}

Note: the "icon" detail which allows for an image to go with your blog is not present here - this is more advanced and I'm still working out best practice. With no icon, it will display your first initial.

Click Create. Copy the AT-URI that appears โ€” it looks like:

at://did:plc:abc123.../site.standard.publication/xyz789

Save this somewhere safe โ€” you'll need it for every post.

Step 3: Add a verification file to Neocities

  1. Paste your AT-URI into a text editor such as Notepad. Save it as site.standard.publication
  2. The file should contain just your publication AT-URI on a single line โ€” nothing else
  3. In your Neocities file manager, create a folder called .well-known
  4. Inside it, upload the .publication file

Note: the file may prompt a download rather than displaying in the browser โ€” that's fine! It will still validate correctly.

Step 4: Add a link tag to your homepage

Open your index.html in the Neocities editor and add this inside the <head> section, using your own publication AT-URI:

<link rel="site.standard.publication"
  href="at://did:plc:abc123.../site.standard.publication/xyz789" />

Part 2: Every time you publish a new post

Repeat these steps for each new post.

Step 1: Create a document record in PDSls

Go back to pdsls.dev, click Create Record, and set the Collection to:

site.standard.document

Replace the editor content with this:

{
  "$type": "site.standard.document",
  "site": "at://did:plc:abc123.../site.standard.publication/xyz789",
  "title": "Your Post Title",
  "path": "/your-post.html",
  "description": "A short description of your post",
  "publishedAt": "2026-01-01T00:00:00.000Z",
  "textContent": "Paste the full plain text of your post here"
}

Click Create and save the document AT-URI that appears.

Some good news: Unlike posting to Bluesky, it is possible to retroactively edit your ATProto records you posted directly from PDSls :)

Step 2: Add tags to your post's HTML

Open your post in the Neocities editor and add all of this inside the <head> section:

<!-- Standard.site link tags -->
<link rel="site.standard.document"
  href="at://did:plc:abc123.../site.standard.document/xyz789" />
<link rel="site.standard.publication"
  href="at://did:plc:abc123.../site.standard.publication/xyz789" />
<!-- Open Graph tags -->
<meta property="og:title" content="Your Post Title" />
<meta property="og:description" content="A short description." />
<meta property="og:image" content="https://yoursite.neocities.org/image.jpg" />
<meta property="og:url" content="https://yoursite.neocities.org/your-post.html" />

Replace all placeholder values with your real AT-URIs and post details. be careful not to confuse the links for your DOCUMENT (individual page) and PUBLICATION (overall site).

Want to check everything is set up correctly?
Paste your post URL into the Standard.site Validator.

Step 3: Share on Bluesky

Paste your post URL into Bluesky and wait for the preview to load before hitting post.

Important: make sure your URL includes the .html extension โ€” e.g. https://yoursite.neocities.org/your-post.html โ€” otherwise the enhanced card may not appear.


Discuss on Bluesky

I just got the lovely new @standard.site link cards working with pages made in @neocities.org! And it wasn't hard! Here is a quick guide.

[image or embed]

— Hannah Shelley, MLIS (Metadata, Lattes & Impostor Syndrome) (@hannahshelley.site) May 31, 2026 at 2:29 PM

โ† Older | Back to Blog Index | Newer โ†’

Get RSS feed