# High Five Source: [tangled.org/atprotofans.com/high-five](https://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 ```bash go build -o high-five-app ./cmd/server ``` ## Run ```bash 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 ```bash 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