Skip to content

feat(site): GitHub Pages — cosmic-green landing + MkDocs Material docs#149

Merged
ancongui merged 1 commit into
mainfrom
feat/github-pages-site
Jun 25, 2026
Merged

feat(site): GitHub Pages — cosmic-green landing + MkDocs Material docs#149
ancongui merged 1 commit into
mainfrom
feat/github-pages-site

Conversation

@ancongui

Copy link
Copy Markdown
Contributor

What

A public GitHub Pages site for PyFly, in two parts:

  1. Landing page (web/) — a hand-crafted, brand-matched single page in the cosmic-green firefly identity: animated firefly hero, an at-a-glance stats band, a tabbed pre-highlighted code panel (DI · CQRS · Saga), the four philosophy pillars, the existing architecture / hexagonal / auto-config / distributed-patterns / ecosystem brand diagrams, a 39-module layered grid, the 4-step quickstart, a PyFly by Example book callout, and a footer. Self-contained, relative URLs, prefers-reduced-motion aware.
  2. Docs site (mkdocs.yml + overrides/ + docs/stylesheets/pyfly.css + docs/assets/pyfly-mark.svg) — MkDocs + Material rendering the existing docs/*.md with a layered nav over 43 module + 10 adapter pages, a cosmic-green palette, Maven Pro headings, dark mode, and client-side search. The docs logo links back to the landing page.

Both are assembled into _site/ by scripts/build_site.py — the single source of truth used identically locally and in CI — and deployed by .github/workflows/pages.yml.

URL & base path

Served at https://fireflyframework.github.io/fireflyframework-pyfly/ (docs at …/docs/). The landing page uses relative URLs and the docs config is base-path-aware, so repointing at pyfly.io later is a CNAME + two config values.

The install command uses the GitHub raw install.sh URL (not get.pyfly.io).

⚠️ One-time step to go live

Settings → Pages → Source: GitHub Actions. After that, merging to main deploys automatically (the workflow triggers on push to main and on manual dispatch). Pushing this branch does not deploy.

Preview locally

pip install -r requirements-docs.txt
python scripts/build_site.py
python -m http.server -d _site 8000   # → http://localhost:8000/

Verification

  • build_site.py builds cleanly (docs compile in ~2.5s); every landing → docs link target resolves under use_directory_urls.
  • Rendered in a browser: hero, stats band, Why cards, and code panel confirmed; docs theme confirmed (deep-green header #1f5e16, Maven Pro headings, firefly logo linking home, working search). No console errors.
  • All landing copy fact-checked against README / book.yaml / CHANGELOG / pyproject.toml / samples/lumen — version, "18 chapters in five parts", Lumen wallet & ledger, 39 modules across 5 layers, the six patterns, code samples, CLI archetypes/commands, and the ecosystem family all verified accurate.

Notes / possible follow-ups

  • The MkDocs build logs a few pre-existing in-doc anchor-link warnings (non-fatal; not introduced here).
  • docs/superpowers/ and the duplicate docs/README.md are excluded from the public docs.
  • Could later optimize the 441 KB pyfly-logo.png used for OG/social.

Adds a public GitHub Pages site with two parts, assembled into _site/ by a single
build script used both locally and in CI:

- web/ — hand-crafted, brand-matched landing page (firefly hero, stats band,
  tabbed pre-highlighted code, philosophy, architecture/patterns/ecosystem brand
  diagrams, 39-module layered grid, quickstart, book, footer). Self-contained,
  relative URLs, prefers-reduced-motion aware. Install uses the GitHub raw
  install.sh URL.
- mkdocs.yml + overrides/ + docs/stylesheets/pyfly.css + docs/assets/pyfly-mark.svg —
  MkDocs Material rendering the existing docs/ (layered nav over 43 module + 10
  adapter pages), cosmic-green theme, Maven Pro headings, dark mode, search; the
  docs logo links back to the landing page.
- scripts/build_site.py — assembles landing + brand assets + docs build into _site/.
- .github/workflows/pages.yml — build + deploy to GitHub Pages.

Served at https://fireflyframework.github.io/fireflyframework-pyfly/ (base path
aware; easy to repoint at pyfly.io later). Requires a one-time repo setting:
Settings -> Pages -> Source: GitHub Actions.
@ancongui ancongui merged commit 38f6b72 into main Jun 25, 2026
6 checks passed
@ancongui ancongui deleted the feat/github-pages-site branch June 25, 2026 12:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant