diff --git a/sites/ainsley-clark/archetypes/conference-bundle/index.md b/sites/ainsley-clark/archetypes/conference-bundle/index.md index 5dfa1b518..32f88bce0 100644 --- a/sites/ainsley-clark/archetypes/conference-bundle/index.md +++ b/sites/ainsley-clark/archetypes/conference-bundle/index.md @@ -21,6 +21,7 @@ event: # - text: View attendee sites # url: https://showcase.ainsleyclark.com/{{ .Name }}/ # title: See what attendees built in the workshop +# colour: black # Optional, defaults to white. slides: path: files/slides.pdf name: {{ .Name }}-ainsley-clark.pdf diff --git a/sites/ainsley-clark/content/conferences/gophercon-africa-2026-talk/files/slides.pdf b/sites/ainsley-clark/content/conferences/gophercon-africa-2026-talk/files/slides.pdf new file mode 100644 index 000000000..cb7c2522f Binary files /dev/null and b/sites/ainsley-clark/content/conferences/gophercon-africa-2026-talk/files/slides.pdf differ diff --git a/sites/ainsley-clark/content/conferences/gophercon-africa-2026-talk/images/featured.jpg b/sites/ainsley-clark/content/conferences/gophercon-africa-2026-talk/images/featured.jpg new file mode 100644 index 000000000..b45f22c40 Binary files /dev/null and b/sites/ainsley-clark/content/conferences/gophercon-africa-2026-talk/images/featured.jpg differ diff --git a/sites/ainsley-clark/content/conferences/gophercon-africa-2026/index.md b/sites/ainsley-clark/content/conferences/gophercon-africa-2026-talk/index.md similarity index 91% rename from sites/ainsley-clark/content/conferences/gophercon-africa-2026/index.md rename to sites/ainsley-clark/content/conferences/gophercon-africa-2026-talk/index.md index cd34d921f..c2fd42787 100644 --- a/sites/ainsley-clark/content/conferences/gophercon-africa-2026/index.md +++ b/sites/ainsley-clark/content/conferences/gophercon-africa-2026-talk/index.md @@ -1,7 +1,7 @@ --- title: "//go:embed: From Comment to Binary" description: How //go:embed turns a comment into bytes in your binary, from the lexer to the linker, plus the tradeoffs and patterns for using it in production. -heading: GopherCon Africa 2026 +heading: GopherCon Africa 2026 - Talk talkTitle: "//go:embed: From Comment to Binary - Linker Internals, Tradeoffs and Production Patterns" lead: This talk follows a single //go:embed directive through go build, the compiler and the linker, then looks at what embedding costs you and how to test it. weight: 1 @@ -18,15 +18,10 @@ event: date: 2026-10-17 # location: Venue, City url: https://gophercon.africa/ -links: - - text: View workshop - url: /conferences/gophercon-africa-2026-workshop/ - title: View the full-stack Go workshop with sqlc and templ -# Uncomment once files/slides.pdf has been added. -# slides: -# path: files/slides.pdf -# name: gophercon-africa-2026-ainsley-clark.pdf -# text: Download slides +slides: + path: files/slides.pdf + name: go-embed-from-comment-to-binary-ainsley-clark.pdf + text: Download slides sources: - title: 1. Mastering Embed in Go 1.16 url: https://lakefs.io/blog/working-with-embed-in-go/ diff --git a/sites/ainsley-clark/content/conferences/gophercon-africa-2026-workshop/files/slides.pdf b/sites/ainsley-clark/content/conferences/gophercon-africa-2026-workshop/files/slides.pdf deleted file mode 100644 index 7ce7bc372..000000000 Binary files a/sites/ainsley-clark/content/conferences/gophercon-africa-2026-workshop/files/slides.pdf and /dev/null differ diff --git a/sites/ainsley-clark/content/conferences/gophercon-africa-2026-workshop/images/featured.jpg b/sites/ainsley-clark/content/conferences/gophercon-africa-2026-workshop/images/featured.jpg index bb9e6978c..794f03f42 100644 Binary files a/sites/ainsley-clark/content/conferences/gophercon-africa-2026-workshop/images/featured.jpg and b/sites/ainsley-clark/content/conferences/gophercon-africa-2026-workshop/images/featured.jpg differ diff --git a/sites/ainsley-clark/content/conferences/gophercon-africa-2026-workshop/index.md b/sites/ainsley-clark/content/conferences/gophercon-africa-2026-workshop/index.md index fb58133fc..09f13bc6c 100644 --- a/sites/ainsley-clark/content/conferences/gophercon-africa-2026-workshop/index.md +++ b/sites/ainsley-clark/content/conferences/gophercon-africa-2026-workshop/index.md @@ -1,7 +1,7 @@ --- title: Full-Stack Go Workshop at GopherCon Africa 2026 description: A full-day workshop at GopherCon Africa 2026 in Nairobi on building domain-driven, full-stack Go apps with sqlc and templ, and the sites attendees shipped. -heading: GopherCon Africa 2026 Workshop +heading: GopherCon Africa 2026 - Workshop talkTitle: "Full-Stack Go: Domain-Driven Applications with sqlc and templ" lead: A full-day, intermediate workshop building a complete Go application, from data ingestion through a type-safe sqlc data layer to a server-rendered templ UI, finishing with a theming block where every attendee shipped their own site. weight: 1 @@ -19,14 +19,11 @@ event: date: 2026-10-15 location: Nairobi, Kenya url: https://gophercon.africa/ -slides: - path: files/slides.pdf - name: full-stack-go-sqlc-templ-workshop-ainsley-clark.pdf - text: Download slides links: - text: View attendee sites url: https://showcase.ainsleyclark.com/gophercon-africa-2026/ title: See every website built in the workshop + colour: black sources: - title: 1. sqlc url: https://sqlc.dev/ @@ -58,19 +55,6 @@ Build a complete full-stack application in Go, from data ingestion through persi We started from a working application built on a real public API: an animal-sightings site fed by GBIF records, stored in SQLite and enriched with Open-Meteo weather. From there we walked through five different architectures for the same feature (flat, layered, onion, hexagonal and feature-based) to see what domain-driven design actually buys you, then looked at how the app is built: a type-safe data layer with sqlc and a front-end written with templ. The build is a guided walkthrough of real, finished code, so the time goes on the decisions rather than the typing. -## Agenda - -| Block | Minutes | -| --- | --- | -| Welcome and setup | 10 | -| App intro | 20 | -| Architecture and DDD practices | 50 | -| Querying with sqlc | 40 | -| Intro to templ | 40 | -| Profiling | 20 | -| Theming | 80 | -| Wrapping up | 10 | - ## What attendees built The hands-on part came last. Every attendee forked the workshop repository, profiled it under load with pprof and themed their own copy of the site using the `/design-site` skill in Claude Code or JetBrains Air, with two competitions running alongside: Best Website and Best Social Post. Thirty-three themed sites made it into the [showcase](https://showcase.ainsleyclark.com/gophercon-africa-2026/), each served exactly as its author shipped it. diff --git a/sites/ainsley-clark/layouts/conferences/single.html b/sites/ainsley-clark/layouts/conferences/single.html index bc456b1a8..36c6899f7 100644 --- a/sites/ainsley-clark/layouts/conferences/single.html +++ b/sites/ainsley-clark/layouts/conferences/single.html @@ -12,36 +12,14 @@ ===================== -->
- +
- + {{ partial "components/breadcrumbs.html" (dict + "ctx" . + "margin" false + "parent" (site.GetPage "/media") + "title" .Params.heading + )}}
{{ with .Params.tags }} @@ -147,7 +125,7 @@

{{ partial "components/button.html" (dict "text" .text "link" .url - "colour" "white" + "colour" (.colour | default "white") "size" "small" "arrow" true "title" (.title | default .text) diff --git a/themes/shared/layouts/partials/components/breadcrumbs.html b/themes/shared/layouts/partials/components/breadcrumbs.html index f949ab259..f6357c5f8 100644 --- a/themes/shared/layouts/partials/components/breadcrumbs.html +++ b/themes/shared/layouts/partials/components/breadcrumbs.html @@ -3,9 +3,14 @@ partial "components/breadcrumbs.html" (dict "ctx" . "margin" false + "parent" (site.GetPage "/media") + "title" .Params.heading ) - ctx: The current Hugo context - margin: If margin should be outputted. + - parent: Optional page to use as the parent instead of the ctx's ancestors, + for sections that don't render, such as conferences under /media/. + - title: Optional title for the current page, defaults to breadcrumbs or Title. ===================== -->