Github To Skool Sync
View on Chrome Web StoreChrome will indicate if you already have this installed.
Overview
GitHub to Skool Sync is a Chrome extension that bridges your GitHub repository and your Skool community. Write or edit course content in your repo (as Markdown or .skool.html files), then pull it into Skool classroom lessons—or push what you've written in Skool back to GitHub. Automatically sync embedded YouTube videos along with your content. No manual copy-paste, no separate API: the extension runs in your browser and syncs content directly.
Key features
• Auto-Map All Lessons: Map Skool lessons to GitHub files quickly; fuzzy matching for truncated titles; matches titles to folder names (e.g. "My Lesson" → "My_Lesson/SKOOL.html"); maps most lessons automatically.
• Bulk operations: Pull ALL / Push ALL for 100+ lessons in one batch with progress and cancel; large courses in minutes.
• Bidirectional sync, smart mapping, branch support, file browser, default folder in Settings.
• Community feed (HTML): On community home, open Create post and apply a repo .html file into title and body (YAML title and/or SKOOL_SYNC_META; optional video URLs for Add video). Primary authoring is semantic HTML; separate from classroom lesson sync.
What it does
• Two-way sync: Push content from the current Skool page to a file in your GitHub repo, or pull content from a GitHub file into the Skool editor.
• Video syncing: Automatically detect and sync embedded YouTube videos with your content—videos are preserved during push and restored during pull (including placeholder URLs → iframe embeds where supported).
• Page-to-file mapping: Map each Skool classroom lesson (or post) to a specific file path in your repo. Once mapped, one click pushes or pulls that page.
• Bulk sync: Use Push ALL or Pull ALL to sync every mapped page in a folder—ideal for whole modules or courses.
• Branch support: Choose which branch to read from and write to (default branch or any other).
• File browser: Browse your repo in the side panel, pick a file (or type a path), then map the current Skool page to it.
• Default folder: In Settings you can set a default folder in the repo (e.g. course or content). The panel's path starts there when you have no mapping; your choice isn't overwritten when you push or pull.
The extension works by injecting content into Skool's editor the same way you'd paste it—so it works with Skool's native rendering (including Markdown). No Skool API key is required.
Who it's for
• Creators who keep course material in GitHub (version control, collaboration, backups) and publish to Skool.
• Anyone who wants to edit in Skool and push changes back to GitHub for history and reuse.
• Communities that use a repo as the single source of truth and Skool as the delivery platform.
Getting started
1. Install the extension from the Chrome Web Store.
2. Settings: Click the extension icon to open the side panel, then open Settings. Enter:
- GitHub Token: A Personal Access Token from GitHub (scope "repo" for private repos, or "public_repo" for public only). Create one at github.com/settings/tokens.
- Repo (owner/name): e.g. yourname/your-course-repo.
- Default folder (optional): e.g. course or leave blank for repo root. This is the starting folder for the path box; it is not overwritten when you sync.
3. Open a Skool page: Go to your Skool community and open the classroom lesson (or post) you want to sync—or stay on community home to draft a feed post from HTML (see below).
4. Side panel: Click the extension icon so the side panel opens. Select the branch, then either browse to a file in the file list or type the file path (e.g. course/intro/welcome.skool.html).
5. Map (classroom): Click "Map Page to Content" to save the link between this Skool page and that file. The panel will show the mapping (e.g. "Classroom Lesson → path/to/file.skool.html").
6. Sync (classroom):
- Push to GitHub: Sends the current Skool page content to the mapped file (creates or updates the file in the repo).
- Pull from GitHub: Fetches the mapped file from GitHub and injects it into the Skool editor.
For a whole folder of lessons, enter a folder path (no file extension) in the path box. Push ALL pushes all mapped pages in that folder from Skool to GitHub; Pull ALL pulls all of them from GitHub into Skool.
Community post draft (HTML): On community home, open "Write something". Enter a path to a .html file in the side panel and use "Apply selected file → post" (or the floating Community pull control). Pick category and Post in Skool. Does not use lesson mappings.
File format
• .skool.html / .html: HTML fragments or full snippets that Skool can render. The extension can create or update these when you push. Community apply uses semantic .html (optional YAML or SKOOL_SYNC_META for title and video URLs).
• Markdown (.md): Pulling a .md file injects the raw Markdown into the classroom editor; Skool's editor will render it. Pushing from Skool saves whatever is in the editor (often as .skool.html if that's what you mapped).
Suggested workflow: keep one file per lesson (e.g. course/module-name/lesson-slug.skool.html). Map each Skool lesson to its file once; after that, Push and Pull are one-click.
YouTube Video Embeds
If your Skool content includes embedded YouTube videos, the extension detects YouTube links and YouTube <iframe> embeds in the Skool editor, extracts the YouTube video URLs, preserves YouTube iframe embed HTML when present, and restores embedded videos during synchronization. On pull, if YouTube URLs are stored as placeholders (for example <p>url</p>), the extension converts those placeholders back into YouTube <iframe> embeds so the videos visibly render again. The extension uses <iframe> elements exclusively for YouTube video integration within the Skool classroom environment.
Billing and trial
The extension may offer a 7-day free trial and paid plans (e.g. monthly, annual, lifetime) via the developer's billing provider. After the trial or when a subscription ends, you may need an active subscription to keep using sync. Manage billing from the link in the side panel. No payment data is stored in the extension; billing is handled by a third-party payment provider.
Permissions
• Storage: Saves your settings (e.g. GitHub token, repo name, default folder) and page-to-file mappings locally.
• Tabs / Active tab: Used to know which Skool tab is active and to inject content into the correct page.
• GitHub API (api.github.com): To list branches, browse files, and read/write file contents in your repo.
• Skool (skool.com, *.skool.com): To read the current page URL and structure, and to inject content into the editor.
• Scripting: To run the content script that performs the injection on Skool pages.
• Side panel: To show the extension UI next to Skool.
• Clipboard (read): Optional; used if the extension supports pasting from clipboard.
• Billing provider: To check subscription status and open management/checkout pages.
Your GitHub token and repo name stay in your browser; they are not sent to the developer's servers. Content is sent only to GitHub (when you push) and to Skool (when you pull); the extension does not upload your content to any other service except the billing provider for subscription checks.
Tips
• Map first: For a new lesson, select or type the file path, then click "Map Page to Content". After that, Push and Pull use that file automatically.
• Suggested path: If you're on a Skool lesson and no mapping exists, the panel may suggest a path based on your course/module and page title; you can accept or change it before mapping.
• Refresh: After pushing, the file list may take a moment to update; use Refresh if you don't see the new file.
• Log: The status area at the bottom of the panel shows recent actions (newest on top). Use Clear Log to tidy it.
Support
For bugs, feature requests, or documentation, use the support link provided by the developer (e.g. GitHub repository or website). Ensure you're on a supported Skool page (classroom lesson with editor, or community home with the post composer open for HTML apply) and that your GitHub token has the correct scope and your repo path is correct (owner/repo).
Tags
Privacy Practices
🔐 Security Analysis
⏳ Security scan is queued. Check back soon.