"Explore the faces behind GitHub. Discover the people shaping open-source."
Explore and showcase the top GitHub user avatars in a modern, interactive grid. This project fetches, caches, and displays real GitHub profiles with up-to-date avatars and stats.
- Dynamic fetching of GitHub users via the API
- Secure avatar downloads and cache management
- Responsive HTML grid with Bootstrap
- Real user filtering (
type: User) - Automatic avatar updates
- RSS feed for new faces
- Modern, clean design
- Pre-commit hooks for code quality (black, isort)
- XSS-safe Jinja2 templates
-
Clone the repo:
git clone https://github.com/john-bampton/john-bampton.github.io.git cd john-bampton.github.io -
Install dependencies:
pip install -e . -
Run the fetcher:
APP_ENV=test python fetch.py
Tip: SettingAPP_ENV=testwill fetch only 20 users for fast testing. Omit this variable to fetch 400 users (default, production mode). -
Open the grid:
docs/index.html
TARGET_USERS: Number of GitHub users to fetch (default: 400, or 20 in test mode)MAX_EXTRA_PAGES: Extra pages to fetch if needed (default: 2)- Set
APP_ENV=testfor test mode (fetches 20 users)
- Code formatted with black and isort
- Pre-commit hooks: see
.pre-commit-config.yaml - Configs in
pyproject.toml - Linting: flake8, pylint, yamllint, isort, black
-
RSS feed generated at docs/feed.xml
-
Sitemap generated at docs/sitemap.xml
-
Both are auto-generated when you run
render.py -
RSS feed follows RSS 2.0 format and is loaded in your HTML via:
<link rel="alternate" type="application/rss+xml" title="John Bampton RSS Feed" href="/feed.xml"> -
Sitemap follows the standard XML sitemap protocol for search engines and is referenced in
robots.txt:Sitemap: https://john-bampton.github.io/sitemap.xml -
Subscribe for new updates and enjoy better SEO!
We welcome PRs, issues, and suggestions! Add a ⭐, fork, or help improve the grid and features.
Code Quality Reminder:
-
Always run
pre-commit run --all-filesbefore pushing or opening a pull request. This ensures your code is auto-formatted and passes all checks. -
If you don't have pre-commit installed, run:
pip install pre-commit pre-commit install
This sets up the hooks for your local repo.
pip install -r requirements-docs.txt
cd doc
make htmlFiles will be in the doc/build folder.
MIT License © 2025 John Bampton & Seyyed Ali Mohammadiyeh (Max Base)


