My little ATProtocol blog using Remix, Tailwind, and Redis
A simple little blog that pulls posts from your PDS, using the com.whtwnd.blog.entry
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.
interface WhtwndBlogEntryRecord {
$type: 'com.whtwnd.blog.entry'
content?: string
createdAt: string
theme?: string
title: string
ogp?: {
height: number | null
url: string | null
width: number | null
}
}
interface WhtwndBlogEntryView {
rkey: string
cid: string
title: string
content?: string
createdAt: string
banner?: string
}
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
Just run the vite server, you know, like usual?
yarn run dev
Make sure you have dotenv-cli
installed.
npm install -g dotenv-cli
Then build and serve.
yarn build
yarn start
There's various ways you could do this. I just use a Markdown editor and then manually save them with createRecord
.
You can also use the editor at whtwnd's website to create them.
a collection of lightweight TypeScript packages for AT Protocol, the protocol powering Bluesky.
Use this repository to get started with your own Bluesky Labeler.
ATProto Feed Generator Starter Kit
AT Protocol Reference Implementation (TypeScript)
A dead simple client for subscribing to an ATProto Relay ("firehose").
A fully typed client for the Bluesky Jetstream (https://github.com/bluesky-social/jetstream) service.
Your Brand Here!
50K+ engaged viewers every month
Limited spots available!
📧 Contact us via email🦋 Contact us on Bluesky