Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

signalwire/docs

Open more actions menu

Repository files navigation

SignalWire

SignalWire Docs

Developer documentation for the SignalWire communications platform.
Voice, video, messaging, and AI -- all programmable through a single API.

Built with Fern

Live Docs Discord CC BY-NC-SA 4.0 GitHub Stars

Get Started  ·  API Reference  ·  SWML  ·  Agents SDK  ·  Report an Issue



Overview

This is the source repository for signalwire.com/docs -- the developer documentation for the SignalWire platform. The site is built with Fern and auto-deployed on every merge to main.

Products

Products

Product Description
Platform Dashboard, configuration & administration
Call Flow Builder Drag-and-drop call flows and AI agents

SDKs

Product Description
Agents SDK Build AI-powered voice agents
Server SDK Control communications in real time
Browser SDK Voice, video & chat in the browser

APIs & Languages

Product Description
REST APIs SMS, calls & account management
SWML Markup language for communication apps
Compatibility API Drop-in migration from TwiML

Structure

signalwire-fern-config/
├── fern/
│   ├── products/          # Guides, quickstarts, and reference docs by product
│   ├── apis/              # Generated OpenAPI specs (consumed by Fern)
│   ├── assets/            # Images, icons, and static assets
│   ├── snippets/          # Reusable MDX snippets
│   └── docs.yml           # Top-level Fern config (nav, theme, layout)
├── specs/                 # TypeSpec source files → compile to OpenAPI
├── scripts/               # Build and CI utilities
└── lychee.toml            # Link checker configuration

License

Available under the Creative Commons CC BY-NC-SA 4.0 license. See LICENSE for full terms.


Contribute

Whether you're fixing a typo, reporting missing information, or submitting new content -- all contributions are welcome. See CONTRIBUTING.md for the contribution workflow, content conventions, and the checks your pull request needs to pass.

API specifications

The specs/ workspace holds three sibling TypeSpec projects. Each one declares its own tspconfig.yaml and emits a different downstream artifact:

Project Source Emits Powers
SignalWire REST API specs/signalwire-rest/ fern/apis/signalwire-rest/openapi.yaml (OpenAPI 3.1) The /docs/apis reference
Compatibility API specs/compatibility-api/ fern/apis/compatibility/openapi.yaml (OpenAPI 3.1) The /docs/compatibility-api reference
SWML specs/swml/ specs/swml/**/tsp-output/.../SWMLObject.json (JSON Schema) SWML editor + runtime validator tooling

Shared building blocks live in specs/_shared/: repo-wide scalars (uuid, jwt), status-code aliases, and a custom @webhook(...) decorator that emits OpenAPI 3.1 webhooks: entries for outbound payloads SignalWire sends to your servers.

yarn build:specs       # Compile every TypeSpec project → OpenAPI + JSON Schema
yarn format:specs      # tsp format every .tsp file in the workspace

Note

Generated files (fern/apis/*/openapi.yaml and specs/swml/**/tsp-output/) are committed but not hand-edited. Always change the TypeSpec source, then rebuild — Fern and the SWML tooling read the generated artifacts directly.


Usage

Prerequisites: Node.js (v22+) and Yarn (v1).

# 1. Clone and install
git clone https://github.com/signalwire/docs.git
cd docs
yarn install

# 2. Start local dev server (live reload)
yarn start:dev

# 3. Build (compiles specs + generates Fern preview)
yarn build

yarn start runs fern check before launching the dev server -- use this to validate configuration.

Link checking

Automated link checking via Lychee runs on every PR (results posted as a comment) and daily against production (Slack alerts on failure).

Run locally
# Install Lychee
brew install lychee          # macOS
cargo install lychee         # Linux

# Check production sitemap
yarn check-links

# Check a preview deployment
node scripts/check-links.js --sitemap https://preview-xxx.docs.buildwithfern.com/sitemap.xml

# Skip GitHub verification for faster checks
node scripts/check-links.js --skip-github

Configuration: lychee.toml


Contact and Support

The SignalWire Docs are maintained by the Developer Experience team.

Questions & feedback devex@signalwire.com
Support portal support.signalwire.com
Community Discord

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.