# Product Overview

## What Beacon is

Beacon is the SMS API built for AI agents. Most SMS products are built for humans operating a dashboard. Beacon is being built for agents operating through APIs, threads, and tool calls.

The core promise is simple:

> Give my agent a phone number it can text from and manage threads through.

Beacon is an **ApexCode** product. Current release: **`0.3.3-beta`**.

## Who buys it

- **Self-hosted (Tier 1):** developers or small teams that already have Twilio and want to run Beacon themselves — Docker Compose or Composer from your license portal
- **Hosted (Tier 2):** agent builders who do not want to manage infrastructure or Twilio directly — waitlist
- **Source access (Tier 3):** companies that want source access for white-labeling or internal compliance needs — contact ApexCode

## Core tenets

1. **Agent-native** — designed for API calls, tools, and automation
2. **Thread-native** — conversations are first-class
3. **Simple first** — easy to call from curl, scripts, and agent runtimes
4. **Predictable** — stable request and response shapes with explicit error codes
5. **Portable** — self-hosted deployment remains a core part of the offer

## How you get it

Paying customers install from the license portal. There is no private GitHub clone.

- **Docker:** Compose bundle pulling `ghcr.io/apxcde/beacon:0.3.3-beta`
- **Composer:** `composer create-project apxcde/beacon` from `https://packages.apexcode.dev`
- **Runtime license:** a signed `beacon.license` file at `storage/app/beacon.license`

See [Quickstart](./quickstart.md) and [Licensing](./licensing.md).

## What exists today

Beacon currently includes:

- SMS sending
- inbound SMS processing
- threads and message history
- reply polling
- OTP generation and verification
- contacts, tags, notes, merge, duplicate review, and phone number management
- business phone number management
- OpenAPI spec delivery
- team-scoped authentication, idempotency, rate limiting, and licensing

For the exact shipped API, use [API reference](./api.md). For the MCP surface, use [MCP reference](./mcp.md).

Teams stay in the product even on a single-tenant install because they isolate API keys, contacts, business numbers, opt-out lists, and agent workflows.

## Product shape being built around the current core

These are part of the product direction, not all shipped functionality today.

### Self-hosted product

The target self-hosted offer is:

- current API surface
- polished dashboard for setup and monitoring
- MCP server for agent integrations
- Docker-based deployment
- first-run onboarding flow
- licensing for paid distribution

### Hosted additions

The hosted layer adds:

- billing
- usage metering
- Twilio provisioning
- public signup and onboarding
- managed hosting experience

## Delivery model

Outbound and inbound SMS are built around Twilio.

- **Current implementation:** Twilio-backed Laravel API with team-scoped credentials and webhooks
- **Self-hosted model:** bring your own Twilio account
- **Hosted model:** managed provisioning layered on top

## Deliberately skipped in the near term

These are intentionally not core to the first sellable version:

- websockets / SSE
- batch sending
- multi-provider support
- WhatsApp
- 10DLC tooling
- media / MMS

## How to read the docs

- [Quickstart](./quickstart.md) — license portal to first text
- [API reference](./api.md) — shipped HTTP API
- [MCP reference](./mcp.md) — shipped MCP tools, resources, and prompts
- [Self-hosted Docker](./self-hosted-docker.md) — Compose bundle
