A static site that curates projects built in under a day's time, along with the AI tool that helped build each one. Data is authored as YAML, validated and compiled to JSON at build time, and rendered in the browser with vanilla Web Components. Published to GitHub Pages via GitHub Actions.
Create one YAML file per project under data/projects/:
name: My Weekend Hack
description: >
A short description of what it does.
source_url: https://github.com/you/my-weekend-hack
ai_tool: Claude # Claude, Codex, etc.
duration_hours: 5 # number, 0 < n <= 24All five fields are required. The build validates each file and fails (so the
deploy fails) if a field is missing, source_url isn't a valid http(s) URL, or
duration_hours isn't a number between 0 and 24. Open a pull request to contribute.
data/projects/*.yaml— the source of truth, one file per project.scripts/build.mjs— reads + validates the YAML and writesdist/(static assets fromsrc/plus a generatedprojects.json). GitHub Pages can't parse YAML server-side, so this happens at build time.src/components/*.js— native custom elements (<project-gallery>,<project-card>); no framework or bundler, fully GitHub Pages compatible..github/workflows/deploy.yml— builds and deploys to Pages on every push tomain.
npm install
npm run build # validate YAML + generate dist/
npm run serve # build, then serve dist/ at http://localhost:9080- Push to
main. - In the repo settings, set Settings → Pages → Build and deployment → Source to GitHub Actions (one-time).
The site is served from username.github.io/<repo>/. All asset paths are relative,
so it works regardless of the repo name.