Skip to content

vivshaw/hegels-bsky

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hegels

@h-e-g-e-l-s.bsky.social

image

inspired by @kegels.bsky.social, hegels is a Bluesky bot that posts Hegel reminders every hour, with a link to a random section from a random Hegel work on Project Gutenberg.

(for a truly absolute experience, follow both!)

how it works

hegels is hosted on AWS & powered by a simple serverless function with a bundled dataset of Hegel stuff.

AWS EventBridge (cron: top of every hour)
  -> AWS Lambda (Node.js 22)
    -> picks random section from bundled dataset
    -> reads Bluesky credentials from AWS SSM Parameter Store
    -> posts to Bluesky via @atproto/api

the dataset covers 10 English-language Hegel works on Project Gutenberg, with ~150 linkable sections across them. (sadly, all the best bits ain't in there! my kingdom for a good public domain Phänomenologie des Geistes...)

infrastructure is managed with Terraform. the Lambda is bundled with Bun.

setup

prerequisites:

install dependencies:

bun install
terraform -chdir=terraform init

configure Bluesky creds:

cp .env.example .env
# edit `.env` with your Bluesky handle and app password

deploy:

bun run build
./scripts/deploy.sh

local testing

unit tests:

bun test

local dry run (prints the post without sending):

bun scripts/test-local.ts --dry-run

local live run (actually posts to Bluesky):

bun scripts/test-local.ts

Lambda live run:

aws lambda invoke --function-name hegels-bot /dev/stdout

About

a Bluesky bot that tells you to read Hegel

Topics

Resources

License

Stars

Watchers

Forks

Contributors