Documentation

Everything you need to integrate Hedgehog into your application.

Quick start

Get up and running with Hedgehog in three steps:

  1. Create your organization — Sign up for free and copy your organization ID from the dashboard.
  2. Add a widget — Drop the web component onto your page, or add the iOS or Android SDK to your app.
  3. Your readers sign in — The widget handles authentication for you. There are no tokens to manage.

Authentication is built in

No tokens to manage. Viewers sign in through the widget's own OAuth flow — on web, iOS, and Android. Pass a token only if you already manage member sessions yourself (SSO).

Embed on the web

Load a bundle from the Hedgehog CDN and drop in the custom element. It works in React, Vue, Angular, Svelte, or plain HTML — no framework integration required. Pass your organization ID and a stable content identifier (a slug or URL); Hedgehog resolves the rest, and viewers sign in through the widget.

Comments
<script type="module" src="https://api.hedgehog.app/sdks/web/hedgehog-comments.js"></script>

<hedgehog-comments
   organization-id="Organization:550e8400-…"
   id="my-article-slug"
></hedgehog-comments>
Reactions
<script type="module" src="https://api.hedgehog.app/sdks/web/hedgehog-reactions.js"></script>

<hedgehog-reactions
   organization-id="Organization:550e8400-…"
   id="my-article-slug"
></hedgehog-reactions>
Notifications
<script type="module" src="https://api.hedgehog.app/sdks/web/hedgehog-notifications.js"></script>

<hedgehog-notifications
   organization-id="Organization:550e8400-…"
   id="my-article-slug"
></hedgehog-notifications>

Set theme-mode to light or dark, and picker-name to choose a reaction picker. No token attribute is required.

Native mobile SDKs

Batteries-included widgets for iOS and Android — the same comments, reactions, and notifications, with sign-in built in.

iOS — Swift

A SwiftUI view, drop-in with a single call. iOS 16+, added via Swift Package Manager with no external dependencies. Register an OAuth URL scheme in your Info.plist and share one HedgehogSocket across widgets.

import HedgehogSDKUI

// No token — the widget signs viewers in for you
let client = HedgehogClient(organizationId: "Organization:550e8400-…")

HedgehogCommentsView(client: client, socket: socket, contentId: "Content:…")

Android — Kotlin

A Jetpack Compose composable that mounts comments, reactions, and presence. Add the Gradle dependency and declare the OAuth redirect activity in your manifest.

import com.hedgehog.sdk.HedgehogClient
import com.hedgehog.sdk.ui.HedgehogCommentsView
import com.hedgehog.sdk.ui.auth.HedgehogOAuthProvider

// No token — the widget signs viewers in for you
val client = HedgehogClient.fromLocalStorage(
   context = applicationContext,
   organizationId = "Organization:550e8400-…",
)

HedgehogOAuthProvider(redirectUri = "myapp://oauth-callback") {
   HedgehogCommentsView(client = client, socket = socket, contentId = "Content:…")
}

API reference

Every organization is fully isolated — Hedgehog is multi-tenant, scoping all data to your organization on every request.

Authentication

Viewers sign in through the widget's built-in OAuth flow. Pass a host-issued member token only to skip in-widget sign-in for SSO.

Comments API

List, create, edit, delete, and fetch the history of threaded comments. Updates stream in live over WebSocket.

Reactions API

Fetch the reaction manifest, add and remove reactions, and read aggregated reaction metrics.

Real-time & Notifications

Subscribe to live comment, reaction, and presence events, and surface replies and mentions in the notification feed.