Hyperbook Documentation

Cloud [Alpha]

This feature is still in alpha. It may be buggy and subject to change. Please test it out and share your feedback with us!

Hyperbook Cloud is a self-hosted student management platform that enables user login, progress tracking, and cloud synchronization for your hyperbooks.

Setup

To connect a hyperbook to a cloud server, add the cloud property to your hyperbook.json:

{
  "name": "My Hyperbook",
  "cloud": {
    "url": "https://cloud.example.com",
    "id": "my-hyperbook"
  }
}
Property Description
url The URL of your Hyperbook Cloud server.
id The slug of the hyperbook as configured in the cloud admin interface. Must match exactly.

How It Works

When cloud is configured, a login button appears in the hyperbook. Students log in with the credentials created by their teacher in the cloud admin interface.

Once logged in, the following happens automatically:

  • State synchronization — All interactive element state (code editors, bookmarks, collapsibles, excalidraw drawings, etc.) is saved to the cloud server.
  • Cross-device access — Students can continue where they left off on any device.
  • Offline support — Changes are queued locally when offline and synced when the connection is restored.
  • External databases — Data from embedded tools like SQL-IDE and LearnJ is also synced.

Cloud Server

The cloud server is a separate application located in platforms/cloud/ of the Hyperbook repository. See the Cloud README for installation and deployment instructions.

Key Concepts

  • Hyperbooks — Each hyperbook is registered in the cloud with a unique slug. This slug is used as the cloud.id.
  • Groups — Students are organized into groups within a hyperbook.
  • Students — Each student has a username and password for logging into the hyperbook.
  • Teachers — Teachers can manage groups and students for their assigned hyperbooks.
  • Permissions — Admins can grant teachers fine-grained permissions per hyperbook.

Impersonation

Teachers and admins can impersonate a student to view their progress in read-only mode. This opens the hyperbook with the student's saved state without allowing any modifications.

Data Flow

Student interacts with hyperbook

Local state saved (IndexedDB)

Cloud sync (debounced, automatic)

POST /api/store/:hyperbookId

Stored per-user on cloud server

When the student logs in on another device:

Student logs in

GET /api/store/:hyperbookId

State imported into local storage

Interactive elements restored

Import & Export

Cloud sync works alongside the importExport feature. Students can still manually export and import their state as a file, even when cloud sync is active.

Cloud [Alpha]

Create Shareable URL

Select Sections

✎ GitHub© Copyright 2026 by OpenPatch