Skip to content

Showcase of commissions ​

Put photos of finished commissions into content/showcase/ and list them in manifest.json. On push to main, CI uploads new/changed images to R2 and writes the list into D1; they appear on /custom.

Only add a painting if the customer agreed to publication ("consent": true). Remove faces, names or addresses the customer did not agree to show.

  • Image: JPG/WebP, long side ~1600 px, under ~1.5 MB. File name = id, e.g. family-0001.jpg.
  • Categories: family, couples, pets, children, memorial, home, nail, other.
  • Styles (optional): classic, impressionist, vangogh, modern.
json
[
  { "file": "family-0001.jpg", "category": "family", "style": "classic", "consent": true,
    "caption": { "en": "Three generations, painted from a holiday photo", "vi": "Ba thế hệ, vẽ từ ảnh kỳ nghỉ" } },
  { "file": "nail-0001.jpg", "category": "nail", "consent": true,
    "caption": { "en": "Nail design panel for a salon in Texas", "vi": "Tranh mẫu móng cho một tiệm nail ở Texas" } }
]

node scripts/showcase/check.mjs validates the manifest (also runs in CI).