diff --git a/posts/2024-05-28_gno-golang-serbia/src/thumbs/meetup.png b/posts/2024-05-28_gno-golang-serbia/src/thumbs/meetup.png
index 116374fa..945d6f95 100644
Binary files a/posts/2024-05-28_gno-golang-serbia/src/thumbs/meetup.png and b/posts/2024-05-28_gno-golang-serbia/src/thumbs/meetup.png differ
diff --git a/posts/thumbs.sh b/posts/thumbs.sh
index 3c9a9dd1..bf09a8b0 100755
--- a/posts/thumbs.sh
+++ b/posts/thumbs.sh
@@ -1,14 +1,29 @@
-#!/bin/sh -x
+#!/bin/sh
+
+MAX_WIDTH=800
 
 for dir in */; do
     if [ -d "${dir}src" ]; then
-        mkdir -p "${dir}src/thumbs"
-        cd "${dir}src" || continue
+        if [ ! -d "${dir}src/thumbs" ]; then
+            mkdir -p "${dir}src/thumbs"
+            cd "${dir}src" || continue
 
-        for img in *.png *.jpg; do
-            sips --resampleWidth 600 "$img" --out "thumbs/$img"
-        done
+             for img in *.png *.jpg; do
+                if [ -f "$img" ]; then
+                    width=$(gm identify -format "%w" "$img")
+                    if [ "$width" -gt "$MAX_WIDTH" ]; then
+                        gm convert "$img" -resize "${MAX_WIDTH}x" -quality 95 "thumbs/$img" 2>/dev/null
+                        if [ $? -ne 0 ]; then
+                            echo "Error processing $img"
+                        fi
+                    else
+                        echo "$img is already less than ${MAX_WIDTH} pixels wide, skipping..."
+                    fi
+                fi
+            done
 
-        cd ../..
+            cd ../..
+            echo "Thumbnails created in ${dir}src/thumbs"
+        fi
     fi
 done
\ No newline at end of file