Thank you for taking the time to contribute. This document is the single source of truth for what an acceptable contribution looks like. PRs that follow these rules get merged quickly; PRs that ignore them get asked to revise.
- You are comfortable making a fork, a branch and a pull request. New to this? Read GitHub's contributing flow.
- Your project is static: HTML, CSS, JavaScript, optional assets.
No build step, no server, no package manager. It must open by
double-clicking
index.html. - Your project is original or properly attributed. Tutorial clones are fine only if you credit the source in your project README.
- A new project under
Projects/(most common). - Improvements to an existing example project (bug fix, accessibility, responsiveness).
- Improvements to the showcase page, workflows or documentation.
Do not open PRs that:
- Add only whitespace, rename files for no reason, or "fix" the main README by reformatting it.
- Add empty folders, placeholder files or "coming soon" projects.
- Import frameworks (React, Vue, Tailwind via CDN is allowed; bundlers are not).
- Use AI-generated boilerplate without changes — we can tell, and they will be closed.
PRs of that shape are considered spam and will be closed. Repeated spam leads to a block.
-
Create one folder per project under
Projects/. -
Use Title Case with real spaces:
To Do Web App, notto-do,to_doortodoWebApp. -
Folder names must be unique. If your idea exists, improve the existing one via a PR instead of duplicating.
-
Inside the folder, the following are required:
Projects/Your Project Name/ README.md project.json index.htmlEverything else (
style.css,script.js,assets/, etc.) is up to you.
Every project folder must contain a project.json so the showcase page can
render it. Example:
{
"title": "To Do Web App",
"description": "A keyboard-friendly to-do list with localStorage persistence and tag filters.",
"author": {
"name": "Your Name",
"github": "your-github-handle"
},
"tags": ["productivity", "localstorage", "vanilla-js"],
"entry": "index.html",
"thumbnail": "thumbnail.svg"
}Field rules:
| Field | Required | Notes |
|---|---|---|
title |
yes | Must match the folder name exactly. |
description |
yes | One sentence, under 160 characters. |
author.name |
yes | Real name or display name. |
author.github |
yes | GitHub username without the @. |
tags |
yes | 1–6 lowercase tags, hyphen-separated. |
entry |
yes | Path to the HTML file that opens the project. |
thumbnail |
no | SVG or PNG inside your folder. Falls back to a generated tile. |
If project.json is missing or invalid, the action that builds the index
will fail the PR check.
At minimum include:
- A one-paragraph description.
- A "Run it" section: usually just "Open
index.htmlin any modern browser." - A short "What I learned" or "Features" list.
- Credits, if you followed a tutorial.
Keep it honest and short. Screenshots are welcome but optional.
- Indent with 2 spaces. Use semicolons. Use
const/let, nevervar. - Run your project in the latest Chrome and Firefox before submitting.
- No console errors in normal use.
- Respect
prefers-reduced-motionif you add animations. - Provide basic keyboard accessibility for interactive elements.
- Do not add tracking scripts, analytics or third-party iframes.
- Fork the repo and create a branch named after your project, e.g.
add-to-do-web-app. - Commit your folder. Keep commits focused.
- Open a PR using the New Project template.
- A maintainer will review. Expect small revision requests on naming or the README — they exist to keep the showcase clean.
- Once merged, the showcase page rebuilds automatically. Your project appears within a minute.
Use the issue templates under Issues → New issue. For security reports, follow SECURITY.md instead.
By contributing you agree that your work is licensed under the repository's MIT license and that you will follow the Code of Conduct.