An open source supporter broker powered by high-fives. high-five.atprotofans.com/
Go 88.2%
HTML 11.3%
Dockerfile 0.5%
8 1 0

Clone this repository

https://tangled.org/atprotofans.com/high-five
git@tangled.org:atprotofans.com/high-five

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

README.md

High Five#

Source: tangled.org/atprotofans.com/high-five

A real-time high-five exchange app built on ATProtocol. Give and receive virtual high-fives that are permanently recorded as cryptographically-linked attestations in both participants' repositories.

Features#

  • Real-time interaction - WebSocket-based room where users can see who's online and exchange high-fives instantly
  • Decentralized attestations - Each high-five creates linked records in both the giver's and recipient's ATProtocol repositories
  • OAuth with DPoP - Secure authentication using ATProtocol OAuth 2.0 with Demonstrating Proof of Possession
  • Optional announcements - Users can opt-in to post about their high-fives on Bluesky

Requirements#

  • Go 1.21+
  • Redis
  • ATProtocol account (Bluesky)

Configuration#

Environment variables:

Variable Description Default
LISTEN_ADDR HTTP server address :8080
REDIS_URL Redis connection URL redis://localhost:6379
BASE_URL Public URL for OAuth callbacks http://localhost:8080
TEMPLATE_DIR Path to templates directory templates
BROKER_ID Bluesky handle for the broker account (required)
BROKER_APP_PASSWORD App password for the broker account (required)
DRY_RUN Set to true to skip record creation false

Build#

go build -o high-five-app ./cmd/server

Run#

export BROKER_ID="your-broker.bsky.social"
export BROKER_APP_PASSWORD="xxxx-xxxx-xxxx-xxxx"
export BASE_URL="https://your-domain.com"

./high-five-app

Docker#

docker build -t high-five-app .

docker run -p 8080:8080 \
  -e REDIS_URL="redis://host.docker.internal:6379" \
  -e BASE_URL="https://your-domain.com" \
  -e BROKER_ID="your-broker.bsky.social" \
  -e BROKER_APP_PASSWORD="xxxx-xxxx-xxxx-xxxx" \
  high-five-app

Lexicons#

This app uses custom lexicons under com.atprotofans.high-five:

  • com.atprotofans.high-five.highFive - Main record created in the giver's repository
  • com.atprotofans.high-five.highFiveProof - Proof record created in the recipient's repository

License#

MIT