Skip to content

feat: Showcases & Workshop - #332

Merged
ainsleyclark merged 1 commit into
mainfrom
feat/showcases
Oct 25, 2026
Merged

ainsleyclark merged 1 commit into
mainfrom
feat/showcases

Conversation

@ainsleyclark

@ainsleyclark ainsleyclark commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • New site sites/showcase/ → showcase.ainsleyclark.com. Built on the shared theme with the a.clark identity. The home page has the typographic hero, an "Explore" button and the latest event's film strip (the services-page carousel) over the event rows. Each event page uses the branding-service hero over a strip of featured sites, then every attendee site as an edge-to-edge 16:9 card (eyebrow @handle, bold site name, "View the code" link to the fork) in the portfolio's staggered grid.
  • Attendee sites are not committed here. They stay in ainsleyclark/workshop-sqlc-templ under showcase/; bin/showcase-fetch.sh sparse-clones that folder into sites/showcase/static/ (git-ignored) before every showcase build, and make showcase-fetch does the same locally over SSH. They are served byte-for-byte with X-Robots-Tag: noindex, nofollow via vercel.json and a robots disallow; the old listing URL 301s to the branded page. The branded pages stay indexable.
  • ainsleyclark.com: new /conferences/gophercon-africa-2026-workshop/ page with the exported slides (245 pages), abstract, agenda and sources, and a "View attendee sites" button. The talk page's date is corrected to 17 Oct and links to the workshop. conferences/single.html gains an optional links: list.
  • Tooling: bin/showcase-sync.sh + make showcase / showcase-sync stage a workshop's output locally and generate thumbnails and mosaics with sharp; SITE=showcase build scripts; bin/build.sh fetches the tree and skips image optimisation for this site; .prettierignore keeps formatters off the fetched files. bin/generate-agents-md.sh now finds the moved guidelines and runs under macOS bash, and AGENTS.md is regenerated.
  • Theme: one @import, a desktop padding-right on the feature card title (helps /media/ too), and an opt-in .hero-animate-fade hook in text.ts so extra hero elements fade in with the lead.

Vercel setup (manual, after merge)

  1. Token: create a fine-grained personal access token (resource owner ainsleyclark, only workshop-sqlc-templ, permission Contents: Read-only, the longest expiry you're comfortable with).
  2. New project on ainsleydev/website: Framework Other, keep the repo's vercel.json (build command ./bin/build.sh, output public). Environment variables for Production, Preview and Development: SITE=showcase and SHOWCASE_REPO_TOKEN=<the token> (mark it sensitive).
  3. Domain showcase.ainsleyclark.com on the new project; ainsleyclark.com's DNS is in Vercel so it is a single CNAME, and Vercel issues the certificate.
  4. Deploy hook: Project → Settings → Git → Deploy Hooks → create one for main. Call it whenever showcase/ changes in the workshop repo (a tiny GitHub Action there on push to main with paths: ['showcase/**'], or by hand). Until then, a redeploy from the Vercel dashboard picks up new attendee sites.
  5. Plausible: add showcase.ainsleyclark.com, then set plausible.enable: true in sites/showcase/config/production/params.yaml.

Expect the first build to take a little longer: the fetch is ~330 MB (about 20–30 s) and the Go function under api/ builds for every project.

Post-deploy checks

curl -I https://showcase.ainsleyclark.com/                                            # 200, no X-Robots-Tag
curl -I https://showcase.ainsleyclark.com/gophercon-africa-2026/                      # 200, no X-Robots-Tag
curl -I https://showcase.ainsleyclark.com/workshop-gophercon-africa-2026/ru0ya/       # 200 + x-robots-tag: noindex, nofollow
curl -I https://showcase.ainsleyclark.com/workshop-gophercon-africa-2026/             # 301 → /gophercon-africa-2026/
curl -s https://showcase.ainsleyclark.com/robots.txt                                  # Disallow: /workshop-gophercon-africa-2026/

Open one attendee site and confirm its images (/_images/) and scripts load, then check the main site's workshop page button lands on the event page.

Follow-ups

  • Workshop repo: remove .do/app.yaml and the showcase deploy command (publishing is now commit showcase/ + the Vercel deploy hook), fix the README's stale workshop-showcase mention; optionally have showcase build emit a sites.yaml so the sites: list is generated.
  • Add award: Best Website to the winners' entries once decided; featured: true controls the hero strip.
  • Pre-existing: pnpm lint:scss fails repo-wide because the stylelint config uses an option stylelint 15 rejects.

🤖 Generated with Claude Code

@vercel

vercel Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Actions Updated
ainsleyclark.com Ignored Ignored Preview Oct 25, 2026 5:05pm UTC
ainsleydev Ignored Ignored Preview Oct 25, 2026 5:05pm UTC

Request Review

@github-advanced-security github-advanced-security AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

Adds showcase.ainsleyclark.com, a third Hugo site on the shared theme, to
publish what attendees build in workshops. Its home lists each event over a
film strip of featured sites, each event page shows every attendee site as an
edge-to-edge card linking to the live site and the author's fork, and the raw
attendee sites are served from static/ with noindex headers and a robots
disallow.

The attendee sites stay in the workshop repository: bin/showcase-fetch.sh
sparse-clones showcase/ into sites/showcase/static before every showcase
build (bin/build.sh, SITE=showcase) and the tree is git-ignored here, so this
repository only carries the site, thumbnails and mosaics.

Publishes the GopherCon Africa 2026 workshop on ainsleyclark.com with its
slides, abstract and agenda, corrects the talk date to 17 October and links
both pages to the showcase. The conference template gains an optional links
list for extra buttons.

Adds bin/showcase-sync.sh and make showcase / showcase-fetch / showcase-sync
to stage a workshop's output locally and generate thumbnails and mosaics, a
build path that skips image optimisation for the showcase, and a
.prettierignore so fetched attendee files are never reformatted. Fixes
bin/generate-agents-md.sh to find the moved guidelines and run under macOS
bash, and regenerates AGENTS.md.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@ainsleyclark
ainsleyclark merged commit f97255e into main Oct 25, 2026
11 checks passed
@ainsleyclark
ainsleyclark deleted the feat/showcases branch October 25, 2026 17:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants