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 repositorycom.atprotofans.high-five.highFiveProof- Proof record created in the recipient's repository
License#
MIT