diff --git a/app/models/communication/block.rb b/app/models/communication/block.rb
index 788027d4e2b2f50115d68786de59f3566d7bebd8..5c07c25e34b97c83456e3d4760d2f57641102443 100644
--- a/app/models/communication/block.rb
+++ b/app/models/communication/block.rb
@@ -105,8 +105,10 @@ class Communication::Block < ApplicationRecord
     "Communication::Block::Template::#{template_kind.classify}".constantize
   end
 
+  # FIXME @sebou
+  # Could not find or build blob: expected attachable, got #<ActiveStorage::Blob id: "f4c78657-5062-416b-806f-0b80fb66f9cd", key: "gri33wtop0igur8w3a646llel3sd", filename: "logo.svg", content_type: "image/svg+xml", metadata: {"identified"=>true, "width"=>709, "height"=>137, "analyzed"=>true}, service_name: "scaleway", byte_size: 4137, checksum: "aZqqTYabP5+72ZeddcZ/2Q==", created_at: "2022-05-05 12:17:33.941505000 +0200", university_id: "ebf2d273-ffc9-4d9f-a4ee-a2146913d617">
   def attach_template_blobs
-    self.template_images = template.active_storage_blobs
+    # self.template_images = template.active_storage_blobs
   end
 
   def save_and_sync_about
diff --git a/app/models/communication/block/component/base.rb b/app/models/communication/block/component/base.rb
index 798e61e84c515baeb5cfc90984ece2ae4ac6b852..0637e0adaba6c13149c527f66168c51328e3604a 100644
--- a/app/models/communication/block/component/base.rb
+++ b/app/models/communication/block/component/base.rb
@@ -26,10 +26,6 @@ class Communication::Block::Component::Base
   end
 
   def git_dependencies
-    active_storage_blobs
-  end
-
-  def active_storage_blobs
     []
   end
 
diff --git a/app/models/communication/block/component/category.rb b/app/models/communication/block/component/category.rb
index e11cd06a510ad83d50f96e73123fceada132d6c0..a7db68fa12e70859a1274757e1c5e04ac46f043d 100644
--- a/app/models/communication/block/component/category.rb
+++ b/app/models/communication/block/component/category.rb
@@ -6,11 +6,7 @@ class Communication::Block::Component::Category < Communication::Block::Componen
   end
 
   def git_dependencies
-    active_storage_blobs +
-    [category]
+    [category, category&.best_featured_image&.blob]
   end
 
-  def active_storage_blobs
-    category&.active_storage_blobs || []
-  end
 end
diff --git a/app/models/communication/block/component/file.rb b/app/models/communication/block/component/file.rb
index 230b018e0e1094b487edd5633df20e479cb881f1..3cb698ec24eba14c5ac51f78b5992b87b53a2000 100644
--- a/app/models/communication/block/component/file.rb
+++ b/app/models/communication/block/component/file.rb
@@ -11,9 +11,8 @@ class Communication::Block::Component::File < Communication::Block::Component::B
     }
   end
 
-  def active_storage_blobs
-    # If blob is nil, compact will remove it and the method will return an empty array
-    [blob].compact
+  def git_dependencies
+    [blob]
   end
 
 end
diff --git a/app/models/communication/block/component/organization.rb b/app/models/communication/block/component/organization.rb
index f9206289398bdbf1bd17530baec38f5d3a1b074b..72f8e2d40396e293b7e0b899a729d86f7056bb32 100644
--- a/app/models/communication/block/component/organization.rb
+++ b/app/models/communication/block/component/organization.rb
@@ -4,4 +4,8 @@ class Communication::Block::Component::Organization < Communication::Block::Comp
     template.block.university.organizations.find_by(id: data)
   end
 
+  def git_dependencies
+    [organization, organization&.logo&.blob]
+  end
+
 end
diff --git a/app/models/communication/block/component/page.rb b/app/models/communication/block/component/page.rb
index 61978e9b802ee00a09dd41c9f34380ec510defa1..2f5617ad6d5f1b5b17bc5aa48ace9ae2f945db70 100644
--- a/app/models/communication/block/component/page.rb
+++ b/app/models/communication/block/component/page.rb
@@ -5,4 +5,8 @@ class Communication::Block::Component::Page < Communication::Block::Component::B
     website.pages.published.find_by(id: data)
   end
 
+  def git_dependencies
+    [page, page&.best_featured_image&.blob]
+  end
+
 end
diff --git a/app/models/communication/block/component/person.rb b/app/models/communication/block/component/person.rb
index f15ddb44e81d5c29fcda98053e4b3e0001bd89ca..e082a01394a75e991c08c73e1357c74c78adfd20 100644
--- a/app/models/communication/block/component/person.rb
+++ b/app/models/communication/block/component/person.rb
@@ -4,4 +4,8 @@ class Communication::Block::Component::Person < Communication::Block::Component:
     template.block.university.people.find_by(id: data)
   end
 
+  def git_dependencies
+    [person, person&.picture&.blob]
+  end
+
 end
diff --git a/app/models/communication/block/component/post.rb b/app/models/communication/block/component/post.rb
index 0a653a7eaf991a0a89a29e5021cdbbee2006668b..8b08eb17d0ae81a98a31f7993824300b7f025e11 100644
--- a/app/models/communication/block/component/post.rb
+++ b/app/models/communication/block/component/post.rb
@@ -6,12 +6,12 @@ class Communication::Block::Component::Post < Communication::Block::Component::B
   end
 
   def git_dependencies
-    active_storage_blobs +
-    [post, post.author, post.author.author]
-  end
-
-  def active_storage_blobs
-    post&.author&.active_storage_blobs || []
+    [
+      post,
+      post&.author,
+      post&.author&.author,
+      post&.author&.picture&.blob
+    ]
   end
 
 end
diff --git a/app/models/communication/block/template/base.rb b/app/models/communication/block/template/base.rb
index 68dd8061e2fae0bf8488b388beb723c6ccc00901..b69b73cf6c4b9a36371696149f790dd9c775b7e8 100644
--- a/app/models/communication/block/template/base.rb
+++ b/app/models/communication/block/template/base.rb
@@ -98,23 +98,17 @@ class Communication::Block::Template::Base
         add_dependency element.git_dependencies
       end
       add_custom_git_dependencies
+      @git_dependencies.compact!
       @git_dependencies.uniq!
     end
     @git_dependencies
   end
 
   def active_storage_blobs
-    unless @active_storage_blobs
-      @active_storage_blobs = []
-      components.each do |component|
-        @active_storage_blobs += component.active_storage_blobs
-      end
-      elements.each do |element|
-        @active_storage_blobs += element.active_storage_blobs
-      end
-      @active_storage_blobs.uniq!
-    end
-    @active_storage_blobs
+    @active_storage_blobs ||= git_dependencies.select { |dependency|
+      # dependency.is_a? ActiveStorage::Blob misses some occurrences
+      dependency.class.name == 'ActiveStorage::Blob'
+    }.uniq
   end
 
   def default_element(data = nil)
diff --git a/app/models/communication/block/template/page.rb b/app/models/communication/block/template/page.rb
index 69678611bd5a241ee07df3e33883fcd8b7f02eb3..f4784136816a8a6852f6a6c5a8315cacb4436fd5 100644
--- a/app/models/communication/block/template/page.rb
+++ b/app/models/communication/block/template/page.rb
@@ -21,19 +21,22 @@ class Communication::Block::Template::Page < Communication::Block::Template::Bas
     !website.nil?
   end
 
-  protected
-
-  def kind
-    @kind ||= data['kind'] || 'selection'
+  def add_custom_git_dependencies
+    selected_pages.each do |page|
+      add_dependency page
+      add_dependency page.active_storage_blobs.to_a
+    end
   end
 
+  protected
+
   def selected_pages_selection
     elements.map { |element| element.page }.compact
   end
 
   def selected_pages_children
-    return [] unless main_page
-    main_page.children.published.ordered
+    return [] unless page
+    page.children.published.ordered
   end
 
 end
diff --git a/app/models/communication/block/template/post.rb b/app/models/communication/block/template/post.rb
index 22f772ae3266f18d47a464fdabc202185f1edeb6..379e5377294f9b561e804533fd1824ffb0794663 100644
--- a/app/models/communication/block/template/post.rb
+++ b/app/models/communication/block/template/post.rb
@@ -8,10 +8,10 @@ class Communication::Block::Template::Post < Communication::Block::Template::Bas
   def add_custom_git_dependencies
     selected_posts.each do |post|
       add_dependency post
-      add_dependency post.active_storage_blobs
+      add_dependency post.active_storage_blobs.to_a
       if post.author.present?
         add_dependency [post.author, post.author.author]
-        add_dependency post.author.active_storage_blobs
+        add_dependency post.author.active_storage_blobs.to_a
       end
     end
   end
diff --git a/app/views/admin/communication/blocks/_list.html.erb b/app/views/admin/communication/blocks/_list.html.erb
index 479ed06b8d9324776a5bb7c1f5da31f1c2096534..1993d41ba2d6e2b72501fb8bef3e7bd6a2430eb7 100644
--- a/app/views/admin/communication/blocks/_list.html.erb
+++ b/app/views/admin/communication/blocks/_list.html.erb
@@ -37,6 +37,9 @@
               </p>
             </td>
             <td class="text-end">
+              <%= link_to 'Dependencies', 
+                          [:admin, block],
+                          class: button_classes('btn-light') if current_user.server_admin? %>
               <%= edit_link block %>
             </td>
           </tr>
diff --git a/app/views/admin/communication/blocks/edit.html.erb b/app/views/admin/communication/blocks/edit.html.erb
index dbd8da90171d87b28dae9a6f7ec110eefaea8967..959fa68d74f4d5abc01d10bb0802d9058febb397 100644
--- a/app/views/admin/communication/blocks/edit.html.erb
+++ b/app/views/admin/communication/blocks/edit.html.erb
@@ -23,6 +23,12 @@
     <textarea name="communication_block[data]" rows="20" cols="200" class="d-none">
       {{ JSON.stringify(data) }}
     </textarea>
+    <% content_for :action_bar_left do %>
+      <%= destroy_link @block %>
+      <%= link_to 'Dependencies', 
+                  [:admin, @block],
+                  class: button_classes('btn-light') if current_user.server_admin? %>
+    <% end %>
     <% content_for :action_bar_right do %>
       <%= submit f %>
     <% end %>
diff --git a/app/views/admin/communication/blocks/show.html.erb b/app/views/admin/communication/blocks/show.html.erb
index 0902341bfee57d95d0f1ae7ef0cf9693b1c0e722..6b358527c2bc1d1de25e1741831aeae6837305ef 100644
--- a/app/views/admin/communication/blocks/show.html.erb
+++ b/app/views/admin/communication/blocks/show.html.erb
@@ -4,14 +4,15 @@
 <table class="table">
     <thead>
         <tr>
+            <th>Id</th>
             <th>Class</th>
             <th>Name</th>
-            <th>Id</th>
         </tr>
     </thead>
     <tbody>
         <% @block.template.git_dependencies.each do |dependency| %>
             <tr>
+                <td><%= dependency.id %></td>
                 <td><%= dependency.class %></td>
                 <td><%= dependency.to_s %></td>
             </tr>
@@ -23,15 +24,15 @@
 <table class="table">
     <thead>
         <tr>
-            <th>Filename</th>
             <th>Id</th>
+            <th>Filename</th>
         </tr>
     </thead>
     <tbody>
-        <% @block.template.active_storage_blobs.each do |attachment| %>
+        <% @block.template.active_storage_blobs.each do |blob| %>
             <tr>
-                <td><%= attachment.to_s %></td>
-                <td><%= attachment.id %></td>
+                <td><%= blob.id %></td>
+                <td><%= blob.filename %></td>
             </tr>
         <% end %>
     </tbody>