Skip to content

Overview

Extensions let you customize your community from code. You declare widgets, scripts, and stylesheets in a single registry file in your Git repository, push to your watched branch, and the platform publishes everything automatically.

The Three Extension Types

You can publish any combination of the three types — one, two, or all three. They share the same registry file, the same publishing pipeline, and the same page-targeting rules.

TypeWhat it isScopeWhen to use
WidgetsInteractive components placed on pages via the No-Code BuilderOne placed instance per page zoneBuild tailored UI — forms, dashboards, dynamic content
ScriptsGlobal JavaScript injected into the pageEvery matching pageAnalytics, tracking, shared utilities
StylesheetsGlobal CSS injected into the pageEvery matching pageSitewide theming, fonts, design tokens

The Registry File

Every extension you publish is declared in a single file at the root of your repository: extensions_registry.json. The file has three top-level arrays — one per extension type — and each array is optional.

A registry with only scripts publishes no widgets. A registry with only widgets publishes no scripts or stylesheets. You build only what you need.

See Registry Reference for the root object specification.

How It Works

  1. Connect — Link your GitHub organization to the platform.
  2. Configure — Select which repositories and branches to watch.
  3. Push — Commit changes to your watched branch.
  4. Publish — Extensions update within seconds.

For publishing details, see Build & Publish and Repository & Branch Settings.

Why Extensions

For DevelopersFor Teams
Version control for every changeNo manual uploads
Pull requests and code reviewInstant deployments
Branch-based environmentsAudit trail via commits
Familiar Git workflowRollback via Git

Start Here

Pick the extension you want to build — each type has its own hands-on tutorial:

You want to build...Start with
A custom interactive componentYour First Widget
A global scriptYour First Script
A global stylesheetYour First Stylesheet

New to the platform entirely? Connect Your GitHub Account first, then return here.

Branch-Based Environments

Each repository watches one branch at a time per community. Use separate communities to run multiple environments (dev, staging, production) — each watching its own branch.

See Repository & Branch Settings and Preview and Promote.

Requirements

  • GitHub account with repository access
  • Platform access with Sources permissions
  • Repository containing extensions_registry.json at the root

Limitations

  • One watched branch per repository per community — use a separate community to watch a different branch without affecting your existing setup.
  • Extension names must be unique across your community (widget type, script name, stylesheet name).

Security

  • Read-only access, scoped to repositories you explicitly grant.
  • Extension code is scanned for security issues before publishing.
  • Security headers (CSP, X-Content-Type-Options, Referrer-Policy) added to every widget response.

See Content Security for details.

Next Steps

Gainsight CC Developer Portal