this repo has no description
JavaScript 100.0%
3 1 0

Clone this repository

https://tangled.org/zzstoatzz.io/atproto-meetup
git@tangled.org:zzstoatzz.io/atproto-meetup

For self-hosted knots, clone URLs may differ based on your setup.

README.md

Chicago ATProto Meetup Activities#

Quick hands-on activities to get started with the AT Protocol and Bluesky API.

Setup (5 minutes)#

  1. Create a Bluesky account at https://bsky.app
  2. Generate an app password: Settings → App Passwords → Add
  3. Install Bun (if needed): curl -fsSL https://bun.sh/install | bash
  4. Clone this repo and install dependencies:
    git clone <this-repo>
    cd atproto-meetup
    bun install
    
  5. Create .env file with your credentials:
    BSKY_USERNAME=your-handle.bsky.social
    BSKY_PASSWORD=xxxx-xxxx-xxxx-xxxx
    

Activities#

Activity 1a: Hello World (5 minutes)#

bun activities/01a-hello-world.js

Posts a simple message to Bluesky.

Activity 1b: Emoji Art Generator (10 minutes)#

bun activities/01b-emoji-art.js

Creates a random emoji art grid and posts it.

bun activities/02-rich-text.js

Demonstrates auto-detection of links and hashtags in posts.

Activity 3: Real-time Firehose with Jetstream (15 minutes)#

bun activities/03-feed-generator.js

Connect to Bluesky's Jetstream service to see real-time posts with #ATProtoChicago. Uses simple JSON instead of complex binary formats!

Activity 4: Local Post Filter (15 minutes)#

bun activities/05-post-filter.js

Build a local feed algorithm that filters your timeline for Chicago/ATProto posts.

Activity 5: Profile Updater (10 minutes)#

bun activities/04-profile-updater.js

Updates your profile description with a timestamp.

Starter Template#

Use starter-template.js to build your own ideas:

bun starter-template.js

Tips#

Common Issues#

  • "Invalid identifier or password": Make sure you're using an app password, not your main password
  • Rate limits: The API has rate limits, wait a minute if you hit them
  • Module not found: Run the scripts from the repo root directory
  • WebSocket errors: The firehose can be flaky, just restart if it disconnects

What's Next?#