tutorial

Uptime Monitoring for GitBook Documentation Services 2026

GitBook hosts your docs but won't alert you when your custom domain breaks or your API goes down. Add external uptime monitoring, heartbeat checks, and instant alerts in under 30 minutes — free.

Uptime Monitoring for GitBook Documentation Services 2026

GitBook is the collaborative documentation platform used by engineering teams, product organizations, and developer-facing companies. It handles version control, real-time collaboration, and publishing — your team focuses on writing, GitBook handles delivery.

But "GitBook handles delivery" only covers GitBook's own infrastructure. Your custom domain, your organization's content sync pipeline, and the APIs your docs describe are all outside GitBook's scope. External monitoring catches the failures GitBook's own uptime tracking doesn't cover.

By the end of this guide you'll have independent monitoring on your GitBook-hosted docs, heartbeat checks for your content pipeline, and instant alerts when users can't reach your documentation — all on the free tier.


The monitoring gap in a hosted docs platform

GitBook monitors its own platform. When GitBook has an incident, it shows on gitbook.com/status. What GitBook doesn't monitor:

  • Your custom domain — DNS misconfiguration or certificate expiry affects only your space
  • Your GitBook space being accidentally unpublished — a settings change that only takes seconds and takes your docs offline
  • Broken links to resources your docs reference — external pages, embedded content, images
  • The API your docs describe — if your API is down, interactive examples in your docs break
  • Third-party integrations — analytics scripts, Intercom chat widgets, embedded Loom videos

These failures need independent monitoring because they're invisible to GitBook's status page.


Step 1: Monitor your GitBook custom domain

GitBook spaces live on <org>.gitbook.io by default. If you've configured a custom domain (e.g. docs.yourdomain.com), that's what your users, README links, and marketing copy point to. A lapsed DNS record or SSL cert expiry here is a complete outage your users hit first.

Sign up at Vigilmon — free tier, no credit card required.

  1. Click New Monitor → HTTP
  2. Enter https://docs.yourdomain.com
  3. Set check interval to 5 minutes
  4. Add a Keyword match on a string that only appears in your docs content — your product name, a section title, or a phrase in your homepage
  5. Save

The keyword match is important: GitBook's CDN can serve a 200 with an error page if your space is misconfigured. A content check catches the difference between "the domain resolved" and "the docs are actually there."

Add a secondary monitor on your GitBook subdomain:

https://your-org.gitbook.io/your-space/

If the custom domain monitor fires but the GitBook subdomain monitor is fine, the problem is your DNS or SSL — not GitBook. This pattern cuts your mean time to diagnosis in half.


Step 2: Monitor key pages in your docs

A single homepage monitor will catch a total outage. But some failures are more subtle — a broken space URL scheme, a specific section that errors, a change in your navigation that created dead links.

Add monitors for your most critical pages:

| Monitor | URL | What it catches | |---|---|---| | Homepage | https://docs.yourdomain.com | Total outage | | Getting started | https://docs.yourdomain.com/getting-started | Broken top-funnel page | | API reference | https://docs.yourdomain.com/api-reference | Broken API docs | | Changelog | https://docs.yourdomain.com/changelog | Broken frequently-visited page |

Use keyword matches on each monitor with content unique to that page. If GitBook republishes with a URL restructure, the keyword match will catch pages serving wrong content before your users do.


Step 3: Monitor the API your docs describe

GitBook lets you embed live API examples and interactive content. If your API is down, those examples fail — users hit errors in your getting-started flow at exactly the moment you're trying to convert them.

Add a health endpoint to your API:

Node.js:

// health.js
const express = require('express');
const app = express();

app.get('/health', async (req, res) => {
  const checks = {};

  // Check database
  try {
    await db.query('SELECT 1');
    checks.db = 'ok';
  } catch (err) {
    checks.db = { error: err.message };
  }

  const healthy = Object.values(checks).every(v => v === 'ok');
  res.status(healthy ? 200 : 503).json({
    status: healthy ? 'ok' : 'degraded',
    checks,
  });
});

Go:

// main.go
http.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
    if err := db.Ping(); err != nil {
        w.WriteHeader(http.StatusServiceUnavailable)
        json.NewEncoder(w).Encode(map[string]string{
            "status": "error",
            "detail": err.Error(),
        })
        return
    }
    w.WriteHeader(http.StatusOK)
    json.NewEncoder(w).Encode(map[string]string{"status": "ok"})
})

In Vigilmon, create an HTTP monitor for https://api.yourdomain.com/health. Route its alerts to your engineering on-call channel — this is not a docs problem, it's an infrastructure problem.


Step 4: Heartbeat monitoring for your GitBook sync

If your GitBook space is connected to a GitHub repository (via GitBook's Git sync feature), a broken sync means your docs go stale silently. New commits don't appear. The GitHub Action keeps running but the docs don't update.

Add a heartbeat monitor to detect when syncs stop succeeding:

In Vigilmon:

  1. Click New Monitor → Heartbeat
  2. Set the expected interval to match your commit cadence (e.g. 49 hours if your team commits docs at least every 2 days)
  3. Copy the heartbeat ping URL

GitHub Actions — GitBook Git Sync heartbeat:

# .github/workflows/docs-heartbeat.yml
name: Docs Sync Heartbeat

on:
  push:
    branches: [main]
    paths:
      - 'docs/**'
      - '.gitbook.yaml'
      - 'SUMMARY.md'

jobs:
  heartbeat:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Validate SUMMARY.md structure
        run: |
          python3 -c "
          import re, sys
          content = open('SUMMARY.md').read()
          links = re.findall(r'\[.*?\]\((.*?\.md)\)', content)
          import os
          for link in links:
              if not os.path.exists(link):
                  print(f'Broken link in SUMMARY.md: {link}')
                  sys.exit(1)
          print(f'SUMMARY.md OK: {len(links)} pages linked')
          "

      - name: Ping heartbeat on success
        if: success()
        run: curl -s "${{ secrets.GITBOOK_SYNC_HEARTBEAT_URL }}"

The validation step checks that every page referenced in SUMMARY.md actually exists — a common GitBook breakage where the nav references a file that was renamed or deleted.


Step 5: Detect accidental unpublish

GitBook spaces can be unpublished in seconds — a click in the settings panel by a team member thinking they're making a draft change, or an accidental API call. From the outside this looks like a 404 on your custom domain.

Your HTTP monitor will catch this, but you can make the alert more descriptive by checking for specific content:

# Test command — run this manually if you suspect an accidental unpublish
curl -s -o /dev/null -w "%{http_code}" https://docs.yourdomain.com/

If this returns 404 instead of 200, your space is unpublished. Vigilmon will have already alerted you — but knowing the cause immediately means faster recovery.

Recovery checklist if your GitBook space goes offline:

  1. Check Vigilmon — is it the custom domain or also the .gitbook.io subdomain?
  2. Log into GitBook → Space Settings → Audience → confirm Public is still selected
  3. Check DNS settings for your custom domain
  4. Check SSL certificate expiry in your domain registrar

Step 6: Monitor GitBook's own API if you depend on it

Many teams use the GitBook API to sync content programmatically — updating pages from CI, pulling content for internal tools, reading page data for automation. If the GitBook API is down, your automation breaks.

In Vigilmon:

  1. New Monitor → HTTP
  2. URL: https://api.gitbook.com/v1/user (requires an Authorization: Bearer <token> header)
  3. Add the header in Vigilmon's Request headers field
  4. Save

This gives you independent monitoring of GitBook's API availability, separate from their status page.


Step 7: Webhook alerts

Slack:

  1. Create an incoming webhook at api.slack.com/messaging/webhooks
  2. In Vigilmon: Notifications → New Channel → Slack
  3. Paste the webhook URL
  4. Assign it to your GitBook docs monitors

Discord:

  1. Server Settings → Integrations → Webhooks → New Webhook → Copy URL
  2. In Vigilmon: Notifications → New Channel → Discord
  3. Paste and assign to monitors

Separate alert channels by audience: docs alerts go to #docs, API health alerts go to #engineering, GitBook API alerts go to #platform.


Step 8: Public status page

When your docs are down during an incident, a status page answers user questions before they flood your GitHub Issues or Discord:

  1. In Vigilmon: Status Pages → New Status Page
  2. Select your GitBook docs monitors and API health monitor
  3. Save — you'll get a hosted status URL

GitBook's built-in custom domain settings don't provide a way to add a footer link, but you can add a dedicated status page in your GitBook space:

  1. Create a new page called Status in your GitBook space
  2. Add a link card to your Vigilmon status page URL
  3. Include it in your SUMMARY.md navigation

Users who notice your docs are down and navigate to /status get real-time availability information without any support overhead.


What you've built

| What | How | |---|---| | Custom domain monitoring | Vigilmon HTTP monitor with keyword match | | Platform vs. DNS triage | Secondary monitor on .gitbook.io subdomain | | Deep page monitoring | Individual monitors on critical docs pages | | API health monitoring | Health endpoint + Vigilmon HTTP monitor | | Git sync heartbeat | CI ping on successful docs commits | | SUMMARY.md validation | Pre-push check for broken navigation links | | GitBook API monitoring | Vigilmon HTTP monitor with auth header | | Instant alerts | Slack/Discord webhook notifications | | Public status page | Vigilmon status page + GitBook status page |

GitBook handles your docs platform. Vigilmon ensures your users can always reach it — and alerts you the moment they can't.


Get started free at vigilmon.online — your first monitor is running in under a minute.

Monitor your app with Vigilmon

Free plan — 5 monitors, no credit card required. Up and running in 60 seconds.

Start free →