A shared visual space for projects by the médialab design team. Automatically deployed to GitHub Pages.
bun scripts/create-project.ts TAG "Project Title"Example:
bun scripts/create-project.ts MYPROJ "My Project"This creates src/lib/projects/MYPROJ/project.yaml with basic fields.
Drop images (.png, .jpg, .webp, .avif, .gif), videos (.mp4, .mov), and PDFs into src/lib/projects/MYPROJ/.
Include at least one image with thumb in the filename — it becomes the homepage card thumbnail.
title: 'My Project'
description: 'A short description of the project'
link: 'https://example.com'
tag: MYPROJ
year_begin: '2024'Optional: year_end, project_type, team_people, author.
bun install # first time only
bun run dev # http://localhost:5173git add src/lib/projects/MYPROJ/
git commit -m "feat: add MYPROJ project"
git push origin mainThe GitHub Action handles the rest: bootstrap, dithering, build → GitHub Pages.
| Command | What it does |
|---|---|
bun run dev |
Start dev server |
bun run validate |
Validate all project folders |
bun run imgYmlCreator |
Create missing .yml description files for media |
bun run dither |
Generate dithered thumbnails |
bun run build |
Full build (dither + dither check + vite) |
src/lib/projects/MYPROJ/
├── project.yaml
├── THUMB.png # Homepage card thumbnail
├── image1.jpg
├── image2.png
├── video1.mp4
├── _videos/ # Videos (auto-sorted on push)
├── _documents/ # PDFs (auto-sorted on push)
└── _gallery/ # Sub-gallery (optional)
Add captions for each media file directly in project.yaml:
media_captions:
image1.jpg: 'A descriptive caption'
video1.mp4: 'Description of the video'Or run bun run imgYmlCreator to generate separate .yml files.