ewan's projects — docs

bluesky-moon-tracker

February 24, 2026

# bluesky# bot# typescript# unmaintained

bluesky-moon-tracker is a TypeScript bot that posts daily moon phase updates to Bluesky at 00:00 UTC. Messages are tailored to the lunar phase and current month, with a slightly lycanthropic flavour, British references, and occasional Pride references in June. Moon phase data comes from the Farmsense API.

Status

Unmaintained.

Setup

git clone git@github.com:ewanc26/bluesky-moon-tracker
cd bluesky-moon-tracker
npm run dev:init

Create src/config.env:

BLUESKY_USERNAME="your_username"
BLUESKY_PASSWORD="your_password"
BLUESKY_PDS_URL="https://bsky.social"
DEBUG_MODE="false"

Run:

npm run dev:start

If the current time is past 00:00 UTC, the bot posts immediately and then schedules the next post for the following day.

Setting DEBUG_MODE=true with credentials causes an immediate test post; without credentials it logs all possible message combinations to the console instead.

Structure

  • src/index.ts — Scheduling and orchestration
  • src/services/blueskyService.ts — Authentication and posting
  • src/services/moonPhaseService.ts — Farmsense API integration
  • src/core/moonPhaseMessages.ts — Message generation logic
  • src/core/moonPhaseConstants.ts — Phase emojis and hashtags
  • src/core/timeUtils.ts — Scheduling utilities

Licence

MIT.


← all docs