# Boop

> A tiny, self-hosted notification inbox for developers that pushes app events straight to your iPhone via Apple's APNs — one Go binary, one SQLite file, no relay or account system.

Boop is a self-hosted developer notification tool built by Chris Gregori and released under the MIT license. It lets your server-side apps POST events to a single Go binary, which stores them in SQLite and pushes them directly to your iPhone through Apple's APNs — with no hosted relay, no account system, and no telemetry. The project reached v1.3.0 in August 2026 and has attracted over 600 GitHub stars since its initial release.

## What It Is

Boop is a lightweight, privacy-first alternative to hosted notification services for developers who want to know when something happens in their apps — a backup completed, a payment arrived, a cron job failed — without routing that data through a third-party cloud. You self-host the Go server, build and sign the iOS app yourself, and connect the two with a QR-code pairing flow. The embedded web UI manages projects, devices, and settings. There is no SaaS component; everything runs on your own infrastructure.

## Architecture and Deployment Model

The server is a single static binary (or Docker container) with the Svelte web UI embedded. It stores all events in a SQLite file using WAL mode and pushes notifications directly to Apple's APNs using your own `.p8` key. The push payload carries only the title, body, and event ID; the iOS app fetches the full event from your server using its own device credential. This design means sensitive event data never leaves your server unencrypted and is never stored by a third party.

Deployment options include:
- **Docker Compose** — `docker compose up -d --build`, data in `./data/boop.db`
- **Pre-built binary** — static, dependency-free binaries for Linux, macOS, and Windows (amd64 and arm64) attached to each GitHub release
- **Dokploy / Traefik** — a dedicated `docker-compose.dokploy.yml` handles named volumes and proxy networking

## Integrations and Client Libraries

Boop exposes a single REST endpoint (`POST /api/v1/events`) that any HTTP client can call. Official and community client libraries include:

- **Elixir** — `boop_ex` (~> 1.1) with sync/async send, exception helpers, and an ErrorTracker plugin (`boop_error_tracker`)
- **Node.js** — `@boop/node` (TypeScript, ESM + CJS, zero runtime dependencies, Node 18+)
- **Laravel** — `laravel-boop` (community, maintained by Solution Forest, PHP 8.1+, Laravel 10–13)
- **Sentry SDK drop-in** — Boop implements the Sentry envelope ingest protocol, so any server-side Sentry SDK can report to Boop by pointing its DSN at the Boop host with a project API key as the public key
- **curl / shell scripts / GitHub Actions** — documented as first-class clients in the README

An `integration-llms.md` prompt is included so an LLM can generate a conformant client for any other language.

## MCP Support for AI Agents

Boop exposes a read-only Model Context Protocol (MCP) endpoint at `/mcp` using Streamable HTTP transport. Agents can query it with tools like `list_events`, `search_events`, `get_event`, and `get_event_group` to answer questions such as "what errors happened overnight?" or "what started failing after 14:00?". There is no LLM inside Boop; it serves structured event context to whatever agent or assistant you already use. The iOS app also offers a "Copy as Markdown" share action that formats an event — exception, stack trace, context, breadcrumbs — ready to paste into Claude, ChatGPT, or similar tools.

## Update: v1.3.0

The latest release is v1.3.0, published on 2026-08-30. The project uses a `vX.Y.Z` tag scheme where the server, web UI, and iOS app share the same version number. Pushing a tag runs the full test suite and, if it passes, attaches pre-built binaries to the GitHub release automatically. The changelog is maintained in `CHANGELOG.md` in the repository. With 607 stars and 29 forks shortly after its August 2026 creation, the project has seen rapid early adoption in the developer self-hosting community.

## Features
- Self-hosted notification inbox for developers
- Direct APNs push notifications to iPhone
- Single Go binary with embedded Svelte web UI
- SQLite storage with WAL mode
- QR-code device pairing flow
- Event levels: info, success, warning, error, critical
- Rich event data with exception, stacktrace, tags, context, breadcrumbs
- Notification actions — up to 3 buttons per event
- Event grouping by fingerprint
- Silence rules to suppress pushes for known issues
- Sensitive key redaction before storage
- Sentry SDK drop-in DSN compatibility
- Read-only MCP endpoint for AI agents
- Copy event as Markdown for AI assistants
- Admin auth with session-based login
- Configurable data retention
- Docker, binary, and Dokploy deployment options
- GitHub Actions integration example
- No hosted relay, no account system, no telemetry

## Integrations
Apple APNs, Elixir (boop_ex), Elixir ErrorTracker (boop_error_tracker), Node.js (@boop/node), Laravel (laravel-boop), Sentry SDKs (Python, Node, Go, Ruby, PHP), GitHub Actions, Docker, Dokploy, Traefik, Claude, ChatGPT, Model Context Protocol (MCP)

## Platforms
WINDOWS, MACOS, LINUX, IOS, WEB, API, CLI

## Pricing
Open Source

## Version
v1.3.0

## Links
- Website: https://github.com/chrisgreg/boop
- Documentation: https://github.com/chrisgreg/boop#readme
- Repository: https://github.com/chrisgreg/boop
- EveryDev.ai: https://www.everydev.ai/tools/boop
