Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Welcome to the JupyterBook v2 + JupyterLite Template

This template is designed so users can publish quickly with minimal setup using JupyterBook v2 (MyST).

Jupyter Book JupyterLite Google Colab

GitHub Pages Pyodide MyST PR Friendly

1) Create Your Repository

2) Understand Project Structure

JupyterBook v2 uses a single config file at the project root:

3) Configure Your Book

Edit myst.yml at the project root and set:

project:
  title: My Book Title
  authors:
    - name: Your Name
      github: your-github-username
  github: https://github.com/your-username/your-repo
  license:
    code: MIT
    content: CC-BY-4.0
  # Adds a native JupyterLite "Launch" button to every page
  jupyter:
    lite: true
  banner: images/banner_image.png
  toc:
    - file: intro
    - title: Chapter 1
      children:
        - file: notebooks/chapter1
site:
  template: book-theme
  options:
    logo: images/banner_image.png
    folders: true

4) Deployment Model

This template comes pre-configured with GitHub Actions and GitHub Pages. Once enabled, every push to the main branch automatically builds and deploys your site.

To enable deployment:

After pushing your changes, your site will be available at:

https://<yourusername>.github.io/<your-repo-name>/

Nice to know before using the template


Optional Local Preview

You can develop fully on GitHub Actions, but local preview is useful for quick checks:

pip install -r requirements.txt
jupyter book start

This starts a live-reloading dev server at http://localhost:3000.

To build static HTML instead:

jupyter book build

Then open _build/html/index.html in your browser.


Keyboard & UI Tips

TipHow
FullscreenClick the 🔵 floating button (bottom-right) or press F11
Collapse right outlineClick the small toggle arrow in the “On this page” header
Run code in-pageClick the ⚡ power button in the top toolbar to activate JupyterLite
Scrollable outputLong outputs scroll automatically inside the cell
import numpy as np
np.arange(10)