diff --git a/app/controllers/admin/administration/members_controller.rb b/app/controllers/admin/administration/members_controller.rb
index d17fe8e7f4ad981fdd68341cea404e3f363c30e1..70cb824337ec55db5ef4dea267aec0e377b1f78e 100644
--- a/app/controllers/admin/administration/members_controller.rb
+++ b/app/controllers/admin/administration/members_controller.rb
@@ -22,7 +22,7 @@ class Admin::Administration::MembersController < Admin::Administration::Applicat
   end
 
   def create
-    if @member.save
+    if @member.save_and_sync
       redirect_to admin_administration_member_path(@member), notice: t('admin.successfully_created_html', model: @member.to_s)
     else
       breadcrumb
@@ -31,7 +31,7 @@ class Admin::Administration::MembersController < Admin::Administration::Applicat
   end
 
   def update
-    if @member.update(member_params)
+    if @member.update_and_sync(member_params)
       redirect_to admin_administration_member_path(@member), notice: t('admin.successfully_updated_html', model: @member.to_s)
     else
       breadcrumb
@@ -41,7 +41,7 @@ class Admin::Administration::MembersController < Admin::Administration::Applicat
   end
 
   def destroy
-    @member.destroy
+    @member.destroy_and_sync
     redirect_to admin_administration_members_url, notice: t('admin.successfully_destroyed_html', model: @member.to_s)
   end
 
diff --git a/app/models/administration/member.rb b/app/models/administration/member.rb
index 7ffa80d327abef1c9cda03ab726de7025e03520c..cf4201377479faba57db2c0a5c33d97c8219a687 100644
--- a/app/models/administration/member.rb
+++ b/app/models/administration/member.rb
@@ -36,11 +36,6 @@ class Administration::Member < ApplicationRecord
   belongs_to :university
   belongs_to :user, optional: true
 
-  has_many :communication_website_posts,
-           class_name: 'Communication::Website::Post',
-           foreign_key: :author_id,
-           dependent: :nullify
-
   has_and_belongs_to_many :research_journal_articles,
                           class_name: 'Research::Journal::Article',
                           join_table: :research_journal_articles_researchers,
@@ -52,29 +47,42 @@ class Administration::Member < ApplicationRecord
                           foreign_key: :education_teacher_id,
                           association_foreign_key: :education_program_id
 
-  has_many :communication_websites,
-           -> { distinct },
-           through: :communication_website_posts,
-           source: :website
-  has_many :research_websites,
-           -> { distinct },
-           through: :research_journal_articles,
-           source: :websites
-  has_many :education_websites,
-           -> { distinct },
-           through: :education_programs,
-           source: :websites
-
-  validates_presence_of :first_name, :last_name
-  validates_uniqueness_of :email, scope: :university_id, allow_blank: true, if: :will_save_change_to_email?
-  validates_format_of :email, with: Devise::email_regexp, allow_blank: true, if: :will_save_change_to_email?
-
-
-  scope :ordered, -> { order(:last_name, :first_name) }
+  has_many                :communication_website_posts,
+                          class_name: 'Communication::Website::Post',
+                          foreign_key: :author_id,
+                          dependent: :nullify
+
+  has_many                :communication_websites,
+                          -> { distinct },
+                          through: :communication_website_posts,
+                          source: :website
+
+  has_many                :research_websites,
+                          -> { distinct },
+                          through: :research_journal_articles,
+                          source: :websites
+
+  has_many                :education_websites,
+                          -> { distinct },
+                          through: :education_programs,
+                          source: :websites
+
+  validates_presence_of   :first_name, :last_name
+  validates_uniqueness_of :email,
+                          scope: :university_id,
+                          allow_blank: true,
+                          if: :will_save_change_to_email?
+  validates_format_of     :email,
+                          with: Devise::email_regexp,
+                          allow_blank: true,
+                          if: :will_save_change_to_email?
+
+
+  scope :ordered,         -> { order(:last_name, :first_name) }
   scope :administratives, -> { where(is_administrative: true) }
-  scope :authors, -> { where(is_author: true) }
-  scope :teachers, -> { where(is_teacher: true) }
-  scope :researchers, -> { where(is_researcher: true) }
+  scope :authors,         -> { where(is_author: true) }
+  scope :teachers,        -> { where(is_teacher: true) }
+  scope :researchers,     -> { where(is_researcher: true) }
 
   def to_s
     "#{first_name} #{last_name}"
@@ -88,68 +96,47 @@ class Administration::Member < ApplicationRecord
     ].flatten.uniq)
   end
 
-  def github_manifest
-    manifest = []
-    manifest.concat(author_github_manifest_items) if is_author?
-    manifest.concat(researcher_github_manifest_items) if is_researcher?
-    manifest.concat(teacher_github_manifest_items) if is_teacher?
-    manifest.concat(administrator_github_manifest_items) if is_administrative?
-    manifest
+  def identifiers
+    [:static, :author, :researcher, :teacher, :administrator]
+  end
+
+  def git_path_static
+    "content/persons/#{slug}.html"
+  end
+
+  def git_path_author
+    "content/authors/#{slug}/_index.html"
+  end
+
+  def git_path_researcher
+    "content/researchers/#{slug}/_index.html"
+  end
+
+  def git_path_teacher
+    "content/teachers/#{slug}/_index.html"
+  end
+
+  def git_path_administrator
+    "content/administrators/#{slug}/_index.html"
+  end
+
+  def git_dependencies_static
+    []
   end
 
-  def author_github_manifest_items
-    [
-      {
-        identifier: "author",
-        generated_path: -> (github_file) { "content/authors/#{slug}/_index.html" },
-        data: -> (github_file) { ApplicationController.render(
-          template: "admin/communication/website/authors/static",
-          layout: false,
-          assigns: { author: self, github_file: github_file }
-        ) }
-      }
-    ]
+  def git_dependencies_author
+    []
   end
 
-  def researcher_github_manifest_items
-    [
-      {
-        identifier: "researcher",
-        generated_path: -> (github_file) { "content/researchers/#{slug}/_index.html" },
-        data: -> (github_file) { ApplicationController.render(
-          template: "admin/research/researchers/static",
-          layout: false,
-          assigns: { researcher: self, github_file: github_file }
-        ) }
-      }
-    ]
+  def git_dependencies_researcher
+    []
   end
 
-  def teacher_github_manifest_items
-    [
-      {
-        identifier: "teacher",
-        generated_path: -> (github_file) { "content/teachers/#{slug}/_index.html" },
-        data: -> (github_file) { ApplicationController.render(
-          template: "admin/education/teachers/static",
-          layout: false,
-          assigns: { teacher: self, github_file: github_file }
-        ) }
-      }
-    ]
+  def git_dependencies_teacher
+    []
   end
 
-  def administrator_github_manifest_items
-    [
-      {
-        identifier: "administrator",
-        generated_path: -> (github_file) { "content/administrators/#{slug}/_index.html" },
-        data: -> (github_file) { ApplicationController.render(
-          template: "admin/administration/members/static",
-          layout: false,
-          assigns: { member: self, github_file: github_file }
-        ) }
-      }
-    ]
+  def git_dependencies_administrator
+    []
   end
 end
diff --git a/app/models/communication/website/category.rb b/app/models/communication/website/category.rb
index 8f294a62a6272d1ae20b016a01b5ecd379a5b9c4..56c83147c042b75f7d313d6e6c6ee75e4af9f578 100644
--- a/app/models/communication/website/category.rb
+++ b/app/models/communication/website/category.rb
@@ -83,7 +83,7 @@ class Communication::Website::Category < ApplicationRecord
     "content/categories/#{path}/_index.html".gsub(/\/+/, '/')
   end
 
-  def git_dependencies(identifier)
+  def git_dependencies_static
     posts
   end
 
diff --git a/app/models/communication/website/page.rb b/app/models/communication/website/page.rb
index 076601f132f99b06622feada528dc89f262fd22e..6d328380c59233afe4bd61bfe91397d2ab11de5f 100644
--- a/app/models/communication/website/page.rb
+++ b/app/models/communication/website/page.rb
@@ -75,7 +75,7 @@ class Communication::Website::Page < ApplicationRecord
     "content/pages/#{path}/_index.html".gsub(/\/+/, '/')
   end
 
-  def git_dependencies(identifier)
+  def git_dependencies_static
     descendents + siblings
   end
 
diff --git a/app/models/communication/website/post.rb b/app/models/communication/website/post.rb
index 290c08f4e96a4fd4e8161ec7a7077c1e86e14a52..616d3a21d5a51f8582682755d31c1e520b686e7e 100644
--- a/app/models/communication/website/post.rb
+++ b/app/models/communication/website/post.rb
@@ -71,6 +71,10 @@ class Communication::Website::Post < ApplicationRecord
     "content/posts/#{published_at.year}/#{published_at.strftime "%Y-%m-%d"}-#{slug}.html"
   end
 
+  def git_dependencies_static
+    [author] + categories
+  end
+
   def to_s
     "#{title}"
   end
diff --git a/app/models/concerns/with_git.rb b/app/models/concerns/with_git.rb
index dcd0af344b5ba4f465bd8f3c93edcf0609e157c2..37f41564dcd6a654827d3442c743f23fcdcac298 100644
--- a/app/models/concerns/with_git.rb
+++ b/app/models/concerns/with_git.rb
@@ -45,7 +45,8 @@ module WithGit
     websites.each do |website|
       identifiers.each do |identifier|
         Communication::Website::GitFile.sync website, self, identifier
-        git_dependencies(identifier).each do |object|
+        dependencies = send "git_dependencies_#{identifier}"
+        dependencies.each do |object|
           Communication::Website::GitFile.sync website, object, identifier
         end
       end
@@ -61,7 +62,7 @@ module WithGit
     [:static]
   end
 
-  def git_dependencies(identifier)
+  def git_dependencies_static
     []
   end
 end
diff --git a/app/views/admin/administration/members/administrator.html.erb b/app/views/admin/administration/members/administrator.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..4e281854bb2a179ec5840553696077f975b65ed2
--- /dev/null
+++ b/app/views/admin/administration/members/administrator.html.erb
@@ -0,0 +1,7 @@
+---
+title: >
+  Responsabilités de <%= @member.to_s %>
+person: >
+  <%= @member.to_s %>
+slug: "<%= @member.slug %>"
+---
diff --git a/app/views/admin/administration/members/author.html.erb b/app/views/admin/administration/members/author.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..3dccaf0e07b122f7ed809237bd4568d7d1bc5abb
--- /dev/null
+++ b/app/views/admin/administration/members/author.html.erb
@@ -0,0 +1,7 @@
+---
+title: >
+  Actualités de <%= @member.to_s %>
+person: >
+  <%= @member.to_s %>
+slug: "<%= @member.slug %>"
+---
diff --git a/app/views/admin/administration/members/researcher.html.erb b/app/views/admin/administration/members/researcher.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..823ad92baffa6f82ba68b385df08156dacaf3cec
--- /dev/null
+++ b/app/views/admin/administration/members/researcher.html.erb
@@ -0,0 +1,7 @@
+---
+title: >
+  Publications de <%= @member.to_s %>
+person: >
+  <%= @member.to_s %>
+slug: "<%= @member.slug %>"
+---
diff --git a/app/views/admin/administration/members/static.html.erb b/app/views/admin/administration/members/static.html.erb
index 3c16ebf872dc90c2583fb3f410c7a2ae830a7cfb..7928024938a6ed1cac1bd1f4fcd198a3d2c31280 100644
--- a/app/views/admin/administration/members/static.html.erb
+++ b/app/views/admin/administration/members/static.html.erb
@@ -6,5 +6,18 @@ first_name: "<%= @member.first_name %>"
 last_name: "<%= @member.last_name %>"
 phone: "<%= @member.phone %>"
 email: "<%= @member.email %>"
+roles:
+<% if @member.is_author %>
+  - author
+<% end %>
+<% if @member.is_teacher %>
+  - teacher
+<% end %>
+<% if @member.is_researcher %>
+  - researcher
+<% end %>
+<% if @member.is_administrative %>
+  - administrator
+<% end %>
 ---
 <%= prepare_for_github @member.biography, @member.university %>
diff --git a/app/views/admin/administration/members/teacher.html.erb b/app/views/admin/administration/members/teacher.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..6a76fea4a1bb7fde112936bbf7d0029b80406614
--- /dev/null
+++ b/app/views/admin/administration/members/teacher.html.erb
@@ -0,0 +1,7 @@
+---
+title: >
+  Enseignements de <%= @member.to_s %>
+person: >
+  <%= @member.to_s %>
+slug: "<%= @member.slug %>"
+---
diff --git a/app/views/admin/communication/website/authors/static.html.erb b/app/views/admin/communication/website/authors/static.html.erb
deleted file mode 100644
index b52f8eadc00232b290777c8eb59b98abad0c88b1..0000000000000000000000000000000000000000
--- a/app/views/admin/communication/website/authors/static.html.erb
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: >
-  <%= @author.to_s %>
-slug: "<%= @author.slug %>"
-first_name: "<%= @author.first_name %>"
-last_name: "<%= @author.last_name %>"
-phone: "<%= @author.phone %>"
-email: "<%= @author.email %>"
----
-<%= prepare_for_github @author.biography, @author.university %>
diff --git a/app/views/admin/education/teachers/static.html.erb b/app/views/admin/education/teachers/static.html.erb
deleted file mode 100644
index 8da73a8a3f988110b42f6820a754471f85dbe147..0000000000000000000000000000000000000000
--- a/app/views/admin/education/teachers/static.html.erb
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: >
-  <%= @teacher.to_s %>
-slug: "<%= @teacher.slug %>"
-first_name: "<%= @teacher.first_name %>"
-last_name: "<%= @teacher.last_name %>"
-phone: "<%= @teacher.phone %>"
-email: "<%= @teacher.email %>"
-<% if @teacher.education_programs.any? %>
-programs:
-  <% @teacher.education_programs.each do |program| %>
-  - "<%= program.id %>"
-  <% end %>
-<% end %>
----
-<%= prepare_for_github @teacher.biography, @teacher.university %>
diff --git a/app/views/admin/research/researchers/static.html.erb b/app/views/admin/research/researchers/static.html.erb
deleted file mode 100644
index ba6513d72803d21aed4d02251467574dd9f2b75d..0000000000000000000000000000000000000000
--- a/app/views/admin/research/researchers/static.html.erb
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: >
-  <%= @researcher.to_s %>
-slug: "<%= @researcher.slug %>"
-first_name: "<%= @researcher.first_name %>"
-last_name: "<%= @researcher.last_name %>"
-phone: "<%= @researcher.phone %>"
-email: "<%= @researcher.email %>"
----
-<%= prepare_for_github @researcher.biography, @researcher.university %>