AD
Boost Your Brand on BlueSky—Exclusive banner space to amplify your reach within the BlueSky community.
BSkyInfo LogoBskyInfo
All ToolsCategoriesCollectionsFeed DirectoryLabeler DirectoryArticlesGuidesGlossaryBluesky SDKsSponsor
Submit
All ToolsCategoriesCollectionsFeed DirectoryLabeler DirectoryGuidesGlossaryArticlesBluesky SDKsSponsorSubmit
  1. SDKs
  2. /JavaScript
  3. /blug
haileyok

blug

A JavaScript SDK for Bluesky and AT Protocol by haileyok

My little ATProtocol blog using Remix, Tailwind, and Redis

GitHub Stats

105stars
9forks
2contributors
1open issues

Dates

Created:April 14, 2024
Last updated:January 27, 2026

README

The following content is from blug's GitHub repository. All rights reserved by the original author.

Blug - An ATProtocol Blog

A simple little blog that pulls posts from your PDS, using the pub.leaflet.document lexicon. Uses Redis to keep them cached for a bit, in case you're popular and don't want to be constantly polling your PDS.

Leaflet Support

This blog now uses Leaflet, a block-based document format for ATProtocol. Instead of simple markdown content, posts are composed of structured blocks that support rich formatting and embedded content.

Supported Block Types

  • Text blocks with rich text formatting (bold, italic, strikethrough, code, links)
  • Header blocks (levels 1-6) with automatic styling
  • Image blocks with aspect ratios and alt text
  • Blockquote blocks for quoted content
  • Code blocks for syntax highlighting
  • Website cards with preview images and metadata
  • Embedded Bluesky posts using the official embed widget
  • Horizontal rules for visual separation

Image Handling

Images are served via Bluesky's CDN with proper URLs constructed from the DID and blob reference:

https://cdn.bsky.app/img/feed_fullsize/plain/{did}/{blobRef}@jpeg

Configuration

Just a few things are needed in your .env file.

ATP_SERVICE=https://pds.haileyok.com/
ATP_IDENTIFIER=haileyok.com
ATP_DID=did:plc:oisofpd7lj26yvgiivf3lxsi
  • ATP_SERVICE is the URL of your PDS. It's probably hosted by Bluesky. Find it at internect.info.
  • ATP_IDENTIFIER is your handle. It's used to know which repo to get records from.
  • ATP_DID is...your DID. Again, find it at internect.info. Used to get your Bluesky profile (I use this just to get the already-hosted copy of your profile picture. You could rewrite this if you wanted to, would be faster too).

You also need to have Redis running. I didn't bother adding configuration for it, so if you want to change where it's hosted at check src/redis/redis.ts.

# macos
brew install redis
brew services start redis

# ubuntu
sudo apt-get install redis-server
sudo systemctl start redis

# centos
sudo yum install redis
sudo systemctl start redis

Development

Just run the vite server, you know, like usual?

yarn run dev

Deployment

Make sure you have dotenv-cli installed.

npm install -g dotenv-cli

Then build and serve.

yarn build
yarn start

Topics

atprotoblogblueskyremix

Related SDKs

notjulietpdsls

atproto explorer - mirror to https://tangled.org/pds.ls/pdsls

18•JavaScript
FxEmbedFxEmbed

Fix X/Twitter and Bluesky embeds! Use multiple images, videos, polls, translations and more on Discord, Telegram and others

3953•JavaScript
bluesky-socialatproto

AT Protocol Reference Implementation (TypeScript)

9105•JavaScript
mary-extatproto-scraping

Git scraping of AT Protocol/Bluesky instances

168•JavaScript
mary-extbluesky-labeler-scraping

Git scraping of Bluesky labelers/label providers

68•JavaScript
bluesky-socialozone

web interface for labeling content in atproto / Bluesky

503•JavaScript

Resources

GitHub Repository

License

Unknown

Author

haileyok
haileyok
did:plc:oisofpd7lj26yvgiivf3lxsi

Activity

Last commit: January 27, 2026
Commit frequency: Unknown

Our Sponsors

Your Brand Here!

50K+ engaged viewers every month

Limited spots available!

📧 Contact us via email🦋 Contact us on Bluesky
BSkyInfo LogoBskyInfo

The Most Comprehensive Bluesky Tools Directory

Stay updated with the latest Bluesky tools and ecosystem news 🦋

Bluesky butterfly logo
Quick LinksSubmit a ToolSponsorAboutLegal Information
ToolsFeed DirectoryLabeler DirectorySchedulingAnalyticsAll ToolsCategoriesCollectionsTags
ResourcesArticlesBluesky GuidesBluesky GlossaryBluesky SDKsBluesky ResourcesSkyRaffleMeida Coverage
Our ProductsRaffleBlueAiTeach ToolsLaiewAI affiliate listFirstoCoast Fire CalculatorAsphalt CalculatorDog Names World

This website may contain affiliate links

© 2026 BskyInfo. All rights reserved.