Browser-based Data 8-style environment powered by JupyterLite + Xeus Python.
- Full public course materials from
data-8/materials-fds - Labs:
lab/ - Homework:
hw/ - Projects:
project/ - Lecture notebooks:
lectures/ - Local filesystem access via
jupyterlab-filesystem-access(sidebar folder icon; Chromium-based browsers only)
- Open the deployed site and use the homepage calendar to jump into notebooks.
- In Lab, use the file browser to navigate under
lab/,hw/,project/, andlectures/. - For a quick local test notebook, open
demo.ipynbat the root.
From the repo root:
jupyter lite build --contents content --output-dir dist
cp landing/index.html dist/index.html
cp landing/data8logo.png dist/data8logo.png
jupyter lite serve --output-dir dist --port 8000Then visit http://127.0.0.1:8000/.
Frontend (JupyterLab) extensions are declared in .github/build-environment.yml, the conda
environment CI builds the site from. jupyter lite build vendors every prebuilt extension it finds
in that environment's {sys.prefix}/share/jupyter/labextensions into dist/extensions/, so adding
one is a one-line change to that file — no jupyter-lite.json and no code required.
Currently included:
jupyterlab-filesystem-access— mounts a folder from the user's real hard drive into the Lab file browser using the browser File System Access API, so students can open and save notebooks and data files directly instead of uploading/downloading. Frontend-only, so it does not affectenvironment.yml(the xeus kernel environment). Chromium-based browsers only (Chrome, Edge, Brave): on Firefox and Safari the sidebar tab still appears but logsThe File System Access API is not supported in this browser.and does nothing.
When building locally, use a clean environment created from .github/build-environment.yml rather
than a general-purpose Jupyter environment — otherwise every unrelated labextension installed there
is copied into dist/ too, and the local site will not match what CI deploys.
- Source materials: github.com/data-8/materials-fds
- Textbook: inferentialthinking.com
- Root
README.md(this file) is repo-focused. content/README.mdis student-facing and is what opens inside JupyterLite.