Skip to content
Conduit

skill

openfreebooks

OFB: High-quality learning materials for elementary school through university — on the web, at no cost.

HananoshikaYomaru/openfreebookscommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/HananoshikaYomaru/openfreebooks itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 22, 2026

Open Free Books

DeepWiki

Work in Progress. I am looking for contributors to help build this project. Educators and engineer welcome.

Free, open-source textbooks for every learner — from elementary school through university. The site is fully static, open on GitHub, and deployed to Cloudflare.

Live site: openfreebooks.org

Stack

LayerTool
Site generatorZola
ThemeCustom theme in themes/openfreebooks/
InteractivitySolid.js (header, marquee, scroll reveal, theme toggle)
JS buildBun + Vite
SearchPagefind (post-build index, Component UI)
HostingCloudflare Workers (static assets via Wrangler)

Chapter content is HTML partials in the theme today (not Markdown). Catalog maps use a Mermaid-powered interactive tree view (pan/zoom).

Contributing curriculum, subjects, or chapters? See CONTRIBUTING.md.

Prerequisites

Project layout

content/                 # Pages and sections (Markdown front matter)
data/                    # Catalog + per-subject curriculum JSON
static/                  # Site assets copied to public/ (favicons, _redirects)
themes/openfreebooks/    # Zola theme
  templates/             # HTML (Tera)
  sass/                  # Stylesheets (compiled to main.css)
  static/js/bundle.js    # Built Solid bundle (committed for simple deploys)
frontend/src/            # Solid.js source
public/                  # Zola build output (gitignored) — Wrangler deploy target
wrangler.jsonc           # Cloudflare Workers static assets config

Development

Install JS dependencies:

bun install

Serve locally:

bun run dev

Open http://127.0.0.1:1111.

Search UI is available in local serve; run a build command to refresh the search index (static/pagefind/ is gitignored and copied from build output).

Build commands

bun run build:chapter math/measures-dispersion math/loci
bun run build:chapter math/*
bun run build:chapter   # auto-detect changed chapters, list them, ask for confirmation
bun run build:site      # full site build (includes sponsor sync when GITHUB_TOKEN is set)
bun run build           # alias of build:site

build:chapter updates chapter sync, chapter widget JS (targeted), metadata, site output, and search index.

In non-interactive environments, build:chapter requires explicit chapter arguments.

Testing

bun test

bun test includes curriculum validation.

Deploy to Cloudflare

bun run build
wrangler deploy

The Worker name is openfreebooks (see wrangler.jsonc). Assets are served from public/ with no server-side logic.

Configuration

Site-wide settings live in zola.toml:

  • base_url — canonical URL for feeds and absolute links
  • [extra] — site_title, github_url, browse_url, search_url, about_url (used in templates and the Solid config block)

Theme notes

The visual design is inspired by manlung.work: paper background with grain, Instrument Serif headings, warm ochre accent (#9a6b2e), and light/dark mode (system preference plus a toggle).

Keep themes/openfreebooks/static/ clean. Only committed built assets belong there (currently js/bundle.js). Do not copy Zola’s public/ output into the theme static/ folder — that pollutes public/js/ on the next build.

Contributor experience — known friction (task list)

These issues make contributions harder than they should be. PRs that fix any item are welcome.

Agent skills

SkillPathUse
OFB (this project).agents/skills/ofb/SKILL.mdCatalog, curriculum JSON, chapters, product rules
Zola + Solid.agents/skills/zola/SKILL.mdTemplates, Sass, bundle, zola serve

License

Open source — see the repository license file when added.

↑↓ navigate openesc close