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!)
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.
prerequisites:
- Bun
- Terraform
- AWS CLI, configured with credentials
- a Bluesky account with an app password
install dependencies:
bun install
terraform -chdir=terraform initconfigure Bluesky creds:
cp .env.example .env
# edit `.env` with your Bluesky handle and app passworddeploy:
bun run build
./scripts/deploy.shunit tests:
bun testlocal dry run (prints the post without sending):
bun scripts/test-local.ts --dry-runlocal live run (actually posts to Bluesky):
bun scripts/test-local.tsLambda live run:
aws lambda invoke --function-name hegels-bot /dev/stdout