Fix dogfood QA: 404, content hygiene, grid UX, a11y, CTAs

- Add branded NotFound catch-all (no more blank unknown routes)
- Portfolio cards: shimmer skeleton, eager first-row thumbs, real alts
- Hide empty categories; rename CAD view slug to avoid collision
- Resume summary preserves paragraphs/bullets
- Home/About/footer hire contact mailto CTA
- Sticky header scroll-padding; chip aria-labels
- Security headers; Flickr import strip View On Black + junk tags
- Content cleanup script for grammar, residue, tags, featured
This commit is contained in:
2026-08-04 16:14:24 -04:00
parent ba5325196c
commit a2cec1baf1
18 changed files with 479 additions and 42 deletions
+5 -1
View File
@@ -74,7 +74,11 @@ async function main() {
"3d-animation",
"video",
]);
await createView("CAD", "cad", "CAD and technical design.", ["cad", "3d-modeling"]);
// Slug must not collide with category "cad" (path resolution prefers categories)
await createView("CAD & Technical", "technical-cad", "CAD and technical design.", [
"cad",
"3d-modeling",
]);
await createView("AI", "ai", "AI-generated creative work.", [
"ai-generated-content",
"illustration",