| name | project-bootstrap |
| description | Bootstrap open-source projects with documentation, CI/CD, and polish. Use when user asks to "set up docs", "add MkDocs", "create GitHub Actions", "add funding", "polish README", "add Giscus comments", "bootstrap project", or wants to improve project presentation and infrastructure. |
Project Bootstrap
Bootstrap open-source projects with professional documentation, CI/CD, and polish.
Components
| Component | What it does |
|---|---|
| MkDocs | Material theme docs with tabs, code copy, dark mode |
| GitHub Actions | Auto-deploy docs on push to main |
| Giscus | GitHub Discussions-based comments on docs |
| README | Polished README with badges, tables, examples |
| Funding | Ko-fi badge, GitHub Sponsors |
Quick Reference
MkDocs Setup
Create mkdocs.yml:
site_name: Project Name
site_url: https://ninyawee.github.io/REPO
repo_url: https://github.com/ninyawee/REPO
theme:
name: material
custom_dir: docs/overrides
palette:
- scheme: default
primary: indigo
toggle:
icon: material/brightness-7
name: Switch to dark mode
- scheme: slate
primary: indigo
toggle:
icon: material/brightness-4
name: Switch to light mode
features:
- content.code.copy
- navigation.sections
- navigation.expand
markdown_extensions:
- pymdownx.highlight:
anchor_linenums: true
- pymdownx.superfences
- pymdownx.tabbed:
alternate_style: true
- tables
- admonition
- pymdownx.details
nav:
- Home: index.md
- Getting Started: getting-started.md
Add mise task:
[tasks."docs:serve"]
run = "uv run --with mkdocs-material mkdocs serve"
[tasks."docs:build"]
run = "uv run --with mkdocs-material mkdocs build"
GitHub Actions - Docs Deploy
Create .github/workflows/docs.yml:
name: Deploy Docs
on:
push:
branches: [main]
paths: ['docs/**', 'mkdocs.yml', '.github/workflows/docs.yml']
workflow_dispatch:
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: pip install mkdocs mkdocs-material
- run: mkdocs gh-deploy --force
Giscus Comments
Prerequisites (Giscus requires public repo with Discussions enabled):
# Enable discussions
gh repo edit ninyawee/REPO --enable-discussions
# Verify repo is public and discussions enabled
gh repo view ninyawee/REPO --json visibility,hasDiscussionsEnabled
Setup steps:
- Run the commands above to enable discussions
- Go to https://giscus.app and enter repo name
- Copy
data-repo-idanddata-category-id
Create docs/overrides/main.html:
{% extends "base.html" %}
{% block content %}
{{ super() }}
<h2 id="__comments">{{ lang.t("meta.comments") }}</h2>
<script
src="https://giscus.app/client.js"
data-repo="ninyawee/REPO"
data-repo-id="REPO_ID_FROM_GISCUS"
data-category="General"
data-category-id="CATEGORY_ID_FROM_GISCUS"
data-mapping="pathname"
data-strict="0"
data-reactions-enabled="1"
data-emit-metadata="0"
data-input-position="bottom"
data-theme="preferred_color_scheme"
data-lang="en"
data-loading="lazy"
crossorigin="anonymous"
async
></script>
{% endblock %}
README Polish
Docs Link (add after description)
📖 **[Documentation](https://ninyawee.github.io/REPO/)**
Badges
[](https://pypi.org/project/PACKAGE/)
[](https://www.npmjs.com/package/PACKAGE)
[](https://crates.io/crates/PACKAGE)
[](https://ninyawee.github.io/REPO)
[](LICENSE)
Structure Pattern
- Title with Thai meaning if applicable
- Badges row (optional)
- One-liner tagline (Thai + English for Thai projects)
- Docs link
📖 **[Documentation](https://ninyawee.github.io/REPO/)** - Packages table (if multi-package)
- Quick example code block
- Installation section
- Usage examples
- Support/Funding section
- License
See references/readme-template.md for full example.
Funding
Ko-fi Badge
[](https://ko-fi.com/ninyawee)
GitHub Sponsors
Create .github/FUNDING.yml:
ko_fi: ninyawee
github: ninyawee
Package Metadata
Add docs/repo URLs to package manifests:
Cargo.toml (Rust)
[package]
name = "package-name"
version = "0.1.0"
edition = "2021"
license = "MIT"
description = "Short description"
repository = "https://github.com/ninyawee/REPO"
homepage = "https://ninyawee.github.io/REPO"
documentation = "https://ninyawee.github.io/REPO"
keywords = ["keyword1", "keyword2"]
categories = ["category"]
pyproject.toml (Python)
[project]
name = "package-name"
version = "0.1.0"
description = "Short description"
license = "MIT"
readme = "README.md"
requires-python = ">=3.9"
keywords = ["keyword1", "keyword2"]
authors = [{ name = "Nutchanon Ninyawee", email = "me@nutchanon.org" }]
[project.urls]
Homepage = "https://github.com/ninyawee/REPO"
Documentation = "https://ninyawee.github.io/REPO"
Repository = "https://github.com/ninyawee/REPO"
package.json (Node.js)
{
"name": "package-name",
"version": "0.1.0",
"description": "Short description",
"license": "MIT",
"author": "Nutchanon Ninyawee <me@nutchanon.org>",
"repository": {
"type": "git",
"url": "https://github.com/ninyawee/REPO"
},
"homepage": "https://ninyawee.github.io/REPO",
"bugs": "https://github.com/ninyawee/REPO/issues",
"keywords": ["keyword1", "keyword2"]
}
Checklist
When bootstrapping a project:
- Create
mkdocs.ymlwith Material theme - Create
docs/structure (index.md, getting-started.md, api/) - Create
docs/overrides/main.htmlfor Giscus - Create
.github/workflows/docs.yml - Add
docs:serveanddocs:buildtasks to mise.toml - Add docs link to README (
📖 **[Documentation](https://ninyawee.github.io/REPO/)**) - Add badges to README
- Polish README structure
- Add
.github/FUNDING.yml - Enable GitHub Discussions for Giscus
- Update package metadata (Cargo.toml/pyproject.toml/package.json) with docs URLs