Source for the organization landing portal at https://pydevices.github.io/.
This repository holds no content of its own. Everything on the page is
generated from the .github repository, and the ecosystem pitch lives in the
org profile and
pydevices/docs/ecosystem.md.
What follows is the mechanics.
| Path | Role |
|---|---|
index.html |
The portal page. The regions between <!-- PYDEVICES-…: START/END --> markers are generated — edit the database, not the markup. |
simulator/ |
Interactive browser-based Python playground PWA with Monaco editor, canvas emulation, and offline caching. |
assets/img/ |
Brand marks, synced from dotgithub/assets/img/: logo.svg, logo-512.png, logo-avatar.png. |
assets/chrome/ |
Shared first-party chrome, synced from dotgithub/assets/: site.css, site-chrome.js, theme-toggle.js, hero-runtime.js. |
assets/apps/ |
Interactive pure-Python apps, synced from dotgithub/assets/apps/. |
vendor/ |
Centralized third-party runtimes and WebAssembly interpreters (/vendor/micropython/, xterm). |
.nojekyll |
Bypasses Jekyll on GitHub Pages. |
Every landing page in the organization — this portal and the 15 per-repo
.site/index.html files — is rendered from
data/repos_db.json
by
scripts/generate_sites.py.
That database is the single source of truth for tiers, headlines, descriptions,
and CTA buttons.
The generator resolves sibling repositories relative to its own location, so run it from a workspace where the repos are checked out side by side:
python3 dotgithub/scripts/generate_sites.pyIt rewrites only the marked regions, syncs the chrome assets, and is idempotent —
running it twice produces no second diff. Repos it cannot find are skipped with a
[SKIP] line. It also writes the markdown ecosystem map into
dotgithub/profile/README.md and pydevices/docs/ecosystem.md.
Regeneration is deliberately manual — the database changes rarely, and running the generator is a one-line step when it does. It validates the database on every run and exits non-zero on a malformed entry, so the check happens at the moment you would notice it.
Pushes to main publish the repository root to GitHub Pages at
https://pydevices.github.io/. There is no build step.