Skip to content

Repository files navigation

All in a Day's Work

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.

Adding a project

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 <= 24

All 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.

How it works

  • data/projects/*.yaml — the source of truth, one file per project.
  • scripts/build.mjs — reads + validates the YAML and writes dist/ (static assets from src/ plus a generated projects.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 to main.

Local development

npm install
npm run build     # validate YAML + generate dist/
npm run serve     # build, then serve dist/ at http://localhost:9080

Deploying

  1. Push to main.
  2. 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.

About

A static site that curates projects built in under a day's time, along with the AI tool that helped build each one.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages