diff --git a/app/internal/handlers/handlers.go b/app/internal/handlers/handlers.go
index 922d89b..897de89 100644
--- a/app/internal/handlers/handlers.go
+++ b/app/internal/handlers/handlers.go
@@ -70,6 +70,17 @@ func New(imagesDir, staticDir string, mailCfg *mail.Config) (*Server, error) {
} else {
log.Print("gallery thumbnails: ready")
}
+ // Thumbnail URLs are resolved during gallery.List. Re-list after derivative
+ // generation so newly-created thumbs appear immediately on first load.
+ if refreshed, err := gallery.List(imagesDir); err != nil {
+ log.Printf("gallery refresh after thumbnails: %v", err)
+ } else {
+ srv.Images = refreshed
+ if hero, hasHero := gallery.SelectHero(refreshed); hasHero {
+ srv.Hero = hero
+ srv.HasHero = true
+ }
+ }
return srv, nil
}
diff --git a/app/templates/gallery.templ b/app/templates/gallery.templ
index d384c61..c518237 100644
--- a/app/templates/gallery.templ
+++ b/app/templates/gallery.templ
@@ -22,7 +22,9 @@ templ GalleryGrid(images []gallery.Image) {
>
if img.ThumbURL != "" {