diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 19aeb4cda30340ef43197fc0f2acc76a2927deaa..a660e450d3daab6d0586f7738463ab486edda7f0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -282,3 +282,21 @@ communityhubl:
   when: manual
   tags:
     - deploy
+
+playground:
+  stage: deployment
+  environment:
+    name: playground
+    url: https://playground.hubl.world
+  before_script:
+    - npm ci --cache .npm --prefer-offline --only=production
+  script:
+    - echo "$APP_CONFIG_PLAYGROUND" > config.json
+    - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+    - npm run build
+    - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* playground@astral.startinblox.com:~/front/
+  only:
+    - master
+  when: manual
+  tags:
+    - deploy
diff --git a/README.md b/README.md
index b00252878e9250af468e8c65d233e67c3189ee22..790fd7d9a0ee630199b9a7426266582ef65d363e 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ These instructions will get you a copy of the project up and running on your loc
 
 To install Hubl, you'll need:
 
-* A Hubl Server (djangoldp>=0.6.42) with the appropriate modules
+* A Hubl Server (djangoldp>=0.7.11) with the appropriate modules
 * A Prosody Server (with [appropriate modules](https://git.startinblox.com/infra/prosody-modules/)
 * A SMTP Server (optional)
 * NodeJS on your machine
@@ -71,7 +71,7 @@ By default, a Hubl includes only individual chat modules.
 
 On Server: `djangoldp_account`, `djangoldp_profile`, `djangoldp_notification`, `djangoldp_skill`, `djangoldp_upload`, `oidc_provider` packages
 
-On `config.json`: 
+On `config.json`:
 
 ```json
 {
@@ -87,7 +87,7 @@ On `config.json`:
 
 Where:
 
-* `xmpp` is your Prosody with [appropriate modules](https://git.startinblox.com/infra/prosody-modules/) configured on.
+* `xmpp` is your [Prosody](https://prosody.im/) with [appropriate modules](https://git.startinblox.com/infra/prosody-modules/) configured on.
 * `authority` is the OpenID Provider. Usually, if you use `djangoldp-account` it's the same as your djangoldp server.
 * `endpoints.users` is the API endpoints for Users on your djangoldp server.
 
@@ -177,7 +177,7 @@ On `config.json`:
 
 ### Project
 
-(Experimental) Project are a private group chat including Customer and Business Provider management. To activate them, you need:
+Project are a private group chat including Customer and Business Provider management. To activate them, you need:
 
 On Server: `djangoldp_project` packages
 
@@ -194,7 +194,7 @@ On `config.json`:
 
 ### Users Directory
 
-(In development) Directory includes a listing of each users of your app and editable individual profile. To activate them, you need:
+Directory includes a listing of each users of your app and editable individual profile. To activate them, you need:
 
 On Server: `djangoldp_skill`, `djangoldp_upload` packages
 
@@ -211,7 +211,7 @@ On `config.json`:
 
 ### Job Offers
 
-(In development) Job Offers includes a job board with conversation. To activate them, you need:
+Job Offers includes a job board with conversation. To activate them, you need:
 
 On Server: `djangoldp_joboffer`, `djangoldp_skill`, `djangoldp_upload`, `djangoldp_conversation` packages
 
diff --git a/client.sample.happy-dev.css b/client.sample.happy-dev.css
index 8642cc0b69ea1cae01c8f6febfbfca0680ebb4c1..f75cb0ace5416f6025cf04ba5e656bc4ecf5597b 100644
--- a/client.sample.happy-dev.css
+++ b/client.sample.happy-dev.css
@@ -112,32 +112,41 @@
   --color-chat-grey-3: var(--color-grey-10);
 
   /* Directory */
-  --color-directory-grey-4: #7A7F85;
-  --color-directory-grey-5: #F0F3F6;
+  --color-directory-grey-4: #7A7F85 !important;
+  --color-directory-grey-5: #F0F3F6 !important;
 
-  --color-directory-avatar-background: #E4E8ED;
-  --color-directory-back-link: #36383B;
-  --color-directory-border: #DAE2F3;
-  --color-directory-content-header-border: #DAE2F3;
+  --color-directory-avatar-background: #E4E8ED !important;
+  --color-directory-back-link: #36383B !important;
+  --color-directory-border: #DAE2F3 !important;
+  --color-directory-content-header-border: #DAE2F3 !important;
   --color-directory-h1: var(--color-complementary-darken);
   --color-directory-list-icon: var(--color-primary);
   --color-directory-text: var(--color-directory-grey-4);
 
-  --color-directory-form-input: #EDF1FA;
-  --color-directory-form-input-text: var(--color-directory-grey-4);
-  --color-directory-form-input-active: var(--color-complementary);
-  --color-directory-form-select-icon: var(--color-complementary);
+  --color-directory-send-border: var(--color-complementary) !important;
+  --color-directory-list-icon: var(--color-primary) !important;
+  --color-directory-counter-background: var(--color-directory-grey-5) !important;
+  --color-directory-counter-border: #9BA0A7 !important;
+  --color-directory-counter-text: #4A4A4A !important;
+
+  --color-directory-paginate: #36383B !important;
+  --color-directory-paginate-disabled: #9BA0A7 !important;
+
+  --color-directory-form-input: #EDF1FA !important;
+  --color-directory-form-input-text: var(--color-directory-grey-4) !important;
+  --color-directory-form-input-active: var(--color-complementary) !important;
+  --color-directory-form-select-icon: var(--color-complementary) !important;
 }
 
 /* Button to edit a channel or a project (in project-profile) */
-#project sib-link[next="project-edit"],
-#circle sib-link[next="circle-edit"] {
+#project solid-link[next="project-edit"],
+#circle solid-link[next="circle-edit"] {
   background: var(--color-complementary);
   border: 1px solid var(--color-complementary);
 }
 
-#project sib-link[next="project-edit"]:hover,
-#circle sib-link[next="circle-edit"]:hover {
+#project solid-link[next="project-edit"]:hover,
+#circle solid-link[next="circle-edit"]:hover {
   background: var(--color-white);
   border: 1px solid var(--color-complementary);
   color: var(--color-complementary);
@@ -145,74 +154,117 @@
 
 /* Button to delete a channel */
 /* box-button is depreciated */
-#circle-profile>div>div.desktop-button__end>sib-ac-checker>sib-delete,
-#circle-profile>div>div.box-button>sib-ac-checker>sib-delete {
+#circle-profile>div>div.desktop-button__end>solid-ac-checker>solid-delete,
+#circle-profile>div>div.box-button>solid-ac-checker>solid-delete {
   background: var(--color-white);
   border: 1px solid var(--color-complementary);
   color: var(--color-complementary);
 }
 
-#circle-profile>div>div.desktop-button__end>sib-ac-checker>sib-delete>button,
-#circle-profile>div>div.box-button>sib-ac-checker>sib-delete>button {
+#circle-profile>div>div.desktop-button__end>solid-ac-checker>solid-delete>button,
+#circle-profile>div>div.box-button>solid-ac-checker>solid-delete>button {
   color: var(--color-complementary);
 }
 
-#circle-profile>div>div.desktop-button__end>sib-ac-checker>sib-delete:hover,
-#circle-profile>div>div.box-button>sib-ac-checker>sib-delete:hover {
+#circle-profile>div>div.desktop-button__end>solid-ac-checker>solid-delete:hover,
+#circle-profile>div>div.box-button>solid-ac-checker>solid-delete:hover {
   background: var(--color-complementary);
   border: 1px solid var(--color-complementary);
   color: var(--color-white);
 }
 
-#circle-profile>div>div.desktop-button__end>sib-ac-checker>sib-delete:hover>button,
-#circle-profile>div>div.box-button>sib-ac-checker>sib-delete:hover>button {
+#circle-profile>div>div.desktop-button__end>solid-ac-checker>solid-delete:hover>button,
+#circle-profile>div>div.box-button>solid-ac-checker>solid-delete:hover>button {
   color: var(--color-white);
 }
 
 /* Button with a pen to edit a user */
-#admin-users-list>div>div.table>sib-display>div>sib-display>div>sib-action-hd-custom>sib-ac-checker>sib-link {
+#admin-users-list>div>div.table>solid-display>div>solid-display>div>solid-action-hd-custom>solid-ac-checker>solid-link {
   background: var(--color-complementary);
   border: 1px solid var(--color-complementary);
   color: var(--color-white);
 }
 
-#admin-users-list>div>div.table>sib-display>div>sib-display>div>sib-action-hd-custom>sib-ac-checker>sib-link:hover {
+#admin-users-list>div>div.table>solid-display>div>solid-display>div>solid-action-hd-custom>solid-ac-checker>solid-link:hover {
   background: var(--color-white);
   border: 1px solid var(--color-complementary);
   color: var(--color-complementary);
 }
 
 /* Button to join a channel */
-#admin-circle-list>div>div.table>sib-display:nth-child(5)>div>sib-display>div>admin-circle-join-button>sib-form {
+#admin-circle-list>div>div.table>solid-display:nth-child(5)>div>solid-display>div>admin-circle-join-button>solid-form {
   background: var(--color-complementary);
   border: 1px solid var(--color-complementary);
   color: var(--color-white);
 }
 
-#admin-circle-list>div>div.table>sib-display:nth-child(5)>div>sib-display>div>admin-circle-join-button>sib-form:hover {
+#admin-circle-list>div>div.table>solid-display:nth-child(5)>div>solid-display>div>admin-circle-join-button>solid-form:hover {
   background: var(--color-white);
   border: 1px solid var(--color-complementary);
   color: var(--color-complementary);
 }
 
-#admin-circle-list>div>div.table>sib-display:nth-child(5)>div>sib-display>div>admin-circle-join-button>sib-form:hover input {
+#admin-circle-list>div>div.table>solid-display:nth-child(5)>div>solid-display>div>admin-circle-join-button>solid-form:hover input {
   color: var(--color-complementary);
 }
 
 
 /* Directory - my profile*/
 
-/* Button to update the avatar */
-#sib-picture-browse,
-#sib-picture-remove {
-  background-color: var(--color-white);
-  border: 1px solid var(--color-complementary);
-  color: var(--color-complementary);
+/* Colors for buttons to send a message to a member and to update or remove your profile picture */
+#member-profile>div.profile-card>div.user-profile>div>solid-display>div>solid-action.button.button-primary.bordered,
+button#solid-picture-browse.button.button-primary,
+button#solid-picture-remove.button.button-primary {
+  border: 1px solid var(--color-directory-complementary) !important;
 }
 
-#sib-picture-browse:hover,
-#sib-picture-remove:hover {
-  background-color: var(--color-complementary);
-  border: 1px solid var(--color-complementary);
-  color: var(--color-white);
+#member-profile solid-action.button.button-primary>solid-link,
+button#solid-picture-browse.button.button-primary,
+button#solid-picture-remove.button.button-primary {
+  color: var(--color-directory-complementary) !important;
+}
+
+#member-profile>div.profile-card>div.user-profile>div>solid-display>div>solid-action.button.button-primary.bordered>solid-link::before {
+  background-color: var(--color-directory-complementary) !important;
+}
+
+/* Hover */
+#member-profile solid-action.button.button-primary:hover,
+#member-profile solid-action.button.button-primary:hover>solid-link,
+button#solid-picture-browse.button.button-primary:hover,
+button#solid-picture-remove.button.button-primary:hover {
+  color: var(--color-directory-white) !important;
+  background-color: var(--color-directory-complementary) !important;
+}
+
+#member-profile>div.profile-card>div.user-profile>div>solid-display>div>solid-action.button.button-primary.bordered:hover>solid-link::before {
+  background-color: var(--color-directory-white) !important;
+}
+
+#members-list .send-display solid-link::before {
+    background-color: var(--color-directory-complementary)!important;
+}
+
+/* Dashboard */
+.dashboard-card>div>div>p {
+  color: var(--color-complementary) !important;
+}
+
+.dashboard-card .svg-color-secondary {
+  fill: var(--color-complementary) !important;
+}
+
+.dashboard-card i {
+  border-color: var(--color-primary) !important;
+  color: var(--color-complementary) !important;
+}
+
+.dashboard-card sib-link, .dashboard-card solid-link {
+  border-color: var(--color-complementary) !important;
+  color: var(--color-complementary) !important;
+}
+
+.dashboard-card sib-link:hover, .dashboard-card solid-link:hover {
+  background-color: var(--color-complementary) !important;
+  color: #fff !important;
 }
diff --git a/cypress/integration/tests.spec.js b/cypress/integration/tests.spec.js
index cee47af33a893b97cb3de73c1369c271bcffdf15..ba535717ac5d283266803d6c6d28426281a0366e 100644
--- a/cypress/integration/tests.spec.js
+++ b/cypress/integration/tests.spec.js
@@ -48,21 +48,21 @@ context('Browser testing', () => {
 //    });
 //    describe('Main interface', () => {
 //      // it('should show my name on top right', () => {
-//      //   cy.get('sib-display-value').contains('Admin');
+//      //   cy.get('solid-display-value').contains('Admin');
 //      // });
 //      it('should show my username on the left menu', () => {
-//        cy.get('[fields="username, badge"][data-src="http://localhost:8000/users/admin/"] > :nth-child(1) > sib-display-div > div').contains('admin');
+//        cy.get('[fields="username, badge"][data-src="http://localhost:8000/users/admin/"] > :nth-child(1) > solid-display-div > div').contains('admin');
 //      });
 //      it('should open a chat with myself', () => {
-//        cy.get('[fields="username, badge"][data-src="http://localhost:8000/users/admin/"] > :nth-child(1) > sib-display-div > div').click();
+//        cy.get('[fields="username, badge"][data-src="http://localhost:8000/users/admin/"] > :nth-child(1) > solid-display-div > div').click();
 //        cy.get('.name').contains('admin');
 //      });
 //      it('should not work, because I have no Prosody configured', () => {
-//        cy.get('.content-box > .chat-view > sib-chat').should('be.empty');
+//        cy.get('.content-box > .chat-view > solid-xmpp-chat').should('be.empty');
 //      });
 //      describe('Circles', () => {
 //        it('should navigate the Administration from left menu', () => {
-//          cy.get('.create > sib-link').click();
+//          cy.get('.create > solid-link').click();
 //          cy.get('#admin-circles > .content-box > .content-box__header > .without-margin').contains('Administration');
 //          cy.get('#admin-circle-list > .content-box__info > .admin-header > .admin-header__title').contains('Circles');
 //        });
@@ -76,10 +76,10 @@ context('Browser testing', () => {
 //        crypto.getRandomValues(name);
 //        name = "Test Circle " + name;
 //        it('should allow Circle Creation', () => {
-//          cy.get('form > sib-form-label-text[name="name"] > label > input').type(name);
-//          cy.get('.content-box__info > sib-form > form > sib-form-label-text[name="description"] > label > input').type('With a great description!');
-//          cy.get('#admin-circle-create > .content-box__info > sib-form > form > [type="submit"]').click();
-//          cy.get('#admin-circle-list > div > div.table > sib-display').contains(name);
+//          cy.get('form > solid-form-label-text[name="name"] > label > input').type(name);
+//          cy.get('.content-box__info > solid-form > form > solid-form-label-text[name="description"] > label > input').type('With a great description!');
+//          cy.get('#admin-circle-create > .content-box__info > solid-form > form > [type="submit"]').click();
+//          cy.get('#admin-circle-list > div > div.table > solid-display').contains(name);
 //        });
 //        it('should open the circle information page', () => {
 //          cy.screenshot();
@@ -87,7 +87,7 @@ context('Browser testing', () => {
 //          cy.get('[name="circle-information"] > li').click();
 //        });
 //        it('should delete the circle', () => {
-//          cy.get('.box-button > sib-ac-checker > .button').click();
+//          cy.get('.box-button > solid-ac-checker > .button').click();
 //          cy.get('#navbar-router').should('not.contain', name);
 //        });
 //      });
diff --git a/src/components/hubl-reactivity.js b/src/components/hubl-reactivity.js
new file mode 100644
index 0000000000000000000000000000000000000000..dce2a6c8f54dc20d2b580eced28471bf502fcc20
--- /dev/null
+++ b/src/components/hubl-reactivity.js
@@ -0,0 +1,40 @@
+import { store } from 'https://unpkg.com/@startinblox/core@0.10';
+import { Sib } from "https://unpkg.com/@startinblox/core@0.10/dist/libs/Sib.js";
+import { StoreMixin } from "https://unpkg.com/@startinblox/core@0.10/dist/mixins/storeMixin.js";
+
+export const HublReactivity = {
+  name: 'hubl-reactivity',
+  use: [StoreMixin],
+  attributes: {
+    targetSrc: {
+      type: String,
+      default: '',
+      callback: function () {
+        this.subscribe();
+      }
+    },
+    dataSrc: {
+      type: String,
+      default: '',
+      callback: async function (value) {
+        this.resourceId = null;
+        if (this.nestedField) {
+          const resource = store.get(value) || await store.getData(value, this.context);
+          const nestedResource = await resource[this.nestedField]
+          this.resourceId = nestedResource ? nestedResource['@id'] : null;
+        } else {
+          this.resourceId = value;
+        }
+        this.subscribe();
+      }
+    },
+  },
+  subscribe() {
+    if (this.resourceId && this.targetSrc) {
+      store.subscribeVirtualContainerTo(this.resourceId, this.targetSrc);
+      store.subscribeVirtualContainerTo(this.targetSrc, this.resourceId);
+    }
+  }
+}
+
+Sib.register(HublReactivity);
\ No newline at end of file
diff --git a/src/components/hubl-search-users.js b/src/components/hubl-search-users.js
index 1916860a9ff333000cdd2dc1e936ca0da6ef2689..ab4300ed0a3c9f378e315c29c51e50902755ec85 100644
--- a/src/components/hubl-search-users.js
+++ b/src/components/hubl-search-users.js
@@ -1,4 +1,4 @@
-import { widgetFactory } from 'https://unpkg.com/@startinblox/core@0.9/dist/widgets/widget-factory.js';
+import { widgetFactory } from 'https://unpkg.com/@startinblox/core@0.10/dist/widgets/widget-factory.js';
 
 const HublSearchUsers = widgetFactory(
   'hubl-search-users',
diff --git a/src/components/hubl-status.js b/src/components/hubl-status.js
index f3d256dc79ce88f94fd8f13d0708b336c454d42b..7a9471846bed3e15223ba148afb0c981a0481fef 100644
--- a/src/components/hubl-status.js
+++ b/src/components/hubl-status.js
@@ -1,5 +1,5 @@
-import { widgetFactory } from 'https://unpkg.com/@startinblox/core@0.9/dist/widgets/widget-factory.js';
-import { importCSS } from 'https://unpkg.com/@startinblox/core@0.9/dist/libs/helpers.js';
+import { widgetFactory } from 'https://unpkg.com/@startinblox/core@0.10/dist/widgets/widget-factory.js';
+import { importCSS } from 'https://unpkg.com/@startinblox/core@0.10/dist/libs/helpers.js';
 import SlimSelect from 'https://dev.jspm.io/slim-select@1.23';
 
 const HublStatus = widgetFactory(
diff --git a/src/dependencies.pug b/src/dependencies.pug
index 3682ff9f9dacea21e10a854cd11411a6b8b7d9f1..5a33452cc6918c2ebac8eb70e97f18ada2d7dddf 100644
--- a/src/dependencies.pug
+++ b/src/dependencies.pug
@@ -1,16 +1,17 @@
 script(type="module" src="/components/hubl-search-users.js" defer)
 script(type="module" src="/components/hubl-status.js" defer)
+script(type="module" src="/components/hubl-reactivity.js" defer)
 
-script(type="module" src="https://unpkg.com/@startinblox/core@0.9" defer)
+script(type="module" src="https://unpkg.com/@startinblox/core@0.10" defer)
 //- script(type="module" src="/lib/sib-core/dist/index.js" defer)
 
-script(type="module" src="https://unpkg.com/@startinblox/oidc@0.8" defer)
+script(type="module" src="https://unpkg.com/@startinblox/oidc@0.9" defer)
 //- script(type="module" src="/lib/sib-oidc/index.js" defer)
 
-script(type="module" src="https://unpkg.com/@startinblox/router@0.7" defer)
-    //- script(type="module" src="/lib/sib-router/src/index.js" defer)
+script(type="module" src="https://unpkg.com/@startinblox/router@0.8" defer)
+    //- script(type="module" src="/lib/solid-router/src/index.js" defer)
 
-script(type="module" src="https://unpkg.com/@startinblox/component-notifications@0.3" defer)
+script(type="module" src="https://unpkg.com/@startinblox/component-notifications@0.4" defer)
     //- script(type="module" src="/lib/sib-notifications/index.js" defer)
 
 if endpoints.events || (endpoints.get && endpoints.get.events)
@@ -22,22 +23,20 @@ if endpoints.resources || (endpoints.get && endpoints.get.resources)
     //- script(type="module" src="/lib/sib-resource/sib-resource.js" defer)
 
 if endpoints.joboffers || (endpoints.get && endpoints.get.joboffers)
-    script(type="module" src="https://unpkg.com/@startinblox/component-job-board@0.3" defer)
-    script(type="module" src="https://unpkg.com/@startinblox/component-conversation@0.3" defer)
-    //- script(type="module" src="/lib/sib-job-board/sib-job-board.js" defer)
-    //- script(type="module" src="/lib/sib-conversation/sib-conversation.js" defer)
+    script(type="module" src="https://unpkg.com/@startinblox/component-job-board@0.5" defer)
+    //- script(type="module" src="/lib/solid-job-board/dist/index.js" defer)
 
 if (endpoints.uploads || (endpoints.get && endpoints.get.uploads)) && (endpoints.skills || (endpoints.get && endpoints.get.skills)) && (endpoints.users || (endpoints.get && endpoints.get.users))
-    script(type="module" src="https://unpkg.com/@startinblox/component-directory@0.4" defer)
-    //- script(type="module" src="/lib/sib-directory/dist/index.js" defer)
+    script(type="module" src="https://unpkg.com/@startinblox/component-directory@0.5" defer)
+    //- script(type="module" src="/lib/solid-directory/dist/index.js" defer)
 
 if endpoints.dashboards || (endpoints.get && endpoints.get.dashboards)
-    script(type="module" src="https://unpkg.com/@startinblox/component-dashboard@0.1" defer)
-    //- script(type="module" src="/lib/sib-dashboard/sib-dashboard.js" defer)
+    script(type="module" src="https://unpkg.com/@startinblox/component-dashboard@0.2" defer)
+    //- script(type="module" src="/lib/solid-dashboard/dist/index.js" defer)
 
 if endpoints.users || (endpoints.get && endpoints.get.users)
-    script(type="module" src="https://unpkg.com/@startinblox/component-chat@0.6" defer)
-    //-script(type="module" src="/lib/sib-chat/sib-chat.js" defer)
+    script(type="module" src="https://unpkg.com/@startinblox/component-chat@0.8" defer)
+    //- script(type="module" src="/lib/solid-xmpp-chat/dist/index.js" defer)
 
 script(src="/scripts/index.js" defer)
 
diff --git a/src/header.pug b/src/header.pug
index 106fc37333328616fcecb0581e60ab1ff776c14f..75a28068498413f2dcc4570c90d26403a0807432 100644
--- a/src/header.pug
+++ b/src/header.pug
@@ -1,5 +1,5 @@
 .logo
-  sib-link(next='dashboard')
+  solid-link(next='dashboard')
     img(src=`${clientLogo || '/images/logo.png'}` style=`max-height:${clientLogoHeight || '32px'}`)
 
 sib-notifications.notLoggedIn(
@@ -11,7 +11,7 @@ include templates/hubl-user-avatar.pug
 
 details#user-controls.notLoggedIn
   summary(tabindex='0' role='button')
-    sib-display#user-controls__profile(
+    solid-display#user-controls__profile(
       fields='first_name, account.picture'
       class-first_name='flex'
       class-account.picture='avatar'
@@ -23,11 +23,11 @@ details#user-controls.notLoggedIn
       ul
         if (endpoints.uploads || (endpoints.get && endpoints.get.uploads)) && (endpoints.skills || (endpoints.get && endpoints.get.skills)) && (endpoints.users || (endpoints.get && endpoints.get.users))
           li
-            sib-link(next='profile') Mon profil
+            solid-link(next='profile') Mon profil
         li
-          sib-link(next='admin') Administration
+          solid-link(next='admin') Administration
         li
-          sib-link(next='about') A propos
+          solid-link(next='about') A propos
       button(role='log out' onclick="document.querySelector('sib-auth').logout();") Se déconnecter
 
 button.loggedIn(role='log in' onclick="document.querySelector('sib-auth').login();") Se connecter
diff --git a/src/index.pug b/src/index.pug
index 3e69d87995c6c4d6343c25bcb4d02d1d40497614..06302bdec6e8e31f76d32fef1e05ead4b480f372 100644
--- a/src/index.pug
+++ b/src/index.pug
@@ -35,14 +35,26 @@ html(lang="en")
 
         if endpoints.joboffers || (endpoints.get && endpoints.get.joboffers)
           #job-offers(hidden).no-sidebar.with-padding
+            hubl-reactivity(data-src=`${endpoints.joboffers || endpoints.get.joboffers}current/` target-src=`${endpoints.joboffers || endpoints.get.joboffers}`)
+            hubl-reactivity(data-src=`${endpoints.joboffers || endpoints.get.joboffers}current/` target-src=`${endpoints.joboffers || endpoints.get.joboffers}expired/`)
+            hubl-reactivity(data-src=`${endpoints.joboffers || endpoints.get.joboffers}expired/` target-src=`${endpoints.joboffers || endpoints.get.joboffers}`)
+            hubl-reactivity(bind-user nested-field="joboffers" target-src=`${endpoints.joboffers || endpoints.get.joboffers}expired/`)
+            hubl-reactivity(bind-user nested-field="joboffers" target-src=`${endpoints.joboffers || endpoints.get.joboffers}`)
+            hubl-reactivity(bind-user nested-field="joboffers" target-src=`${endpoints.joboffers || endpoints.get.joboffers}current/`)
             include page-job-offers.pug
 
         if endpoints.projects || (endpoints.get && endpoints.get.projects)
           #project(hidden).with-sidebar
+            hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}joinable/` target-src=`${endpoints.projects || endpoints.get.projects}`)
+            hubl-reactivity(bind-user nested-field="projects" target-src=`${endpoints.projects || endpoints.get.projects}`)
+            hubl-reactivity(bind-user nested-field="projects" target-src=`${endpoints.projects || endpoints.get.projects}joinable/`)
             include page-project.pug
 
         if endpoints.circles || (endpoints.get && endpoints.get.circles)
           #circle(hidden).with-sidebar
+            hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}joinable/` target-src=`${endpoints.circles || endpoints.get.circles}`)
+            hubl-reactivity(bind-user nested-field="circles" target-src=`${endpoints.circles || endpoints.get.circles}`)
+            hubl-reactivity(bind-user nested-field="circles" target-src=`${endpoints.circles || endpoints.get.circles}joinable/`)
             include page-circle.pug
 
         if endpoints.users || (endpoints.get && endpoints.get.users)
@@ -70,7 +82,7 @@ html(lang="en")
     if analytics
       each provider in analytics
         if provider.type && provider.url && provider.url
-            sib-analytics(
+            solid-analytics(
               type=`${provider.type}`
               url=`${provider.url}`
               id=`${provider.id}`
diff --git a/src/menu-left.pug b/src/menu-left.pug
index 4e57d9a0705b1c731a8d1f11057972736633c95b..52ae2f5a7477104ca6310e8ddd23f6c7e3612078 100644
--- a/src/menu-left.pug
+++ b/src/menu-left.pug
@@ -1,40 +1,40 @@
-sib-widget(name='hubl-counter')
+solid-widget(name='hubl-counter')
   template
-    sib-fix-badge(data-src="${value == 'badge' ? src : value}")
+    solid-fix-badge(data-src="${value == 'badge' ? src : value}")
 
-sib-widget(name='hubl-menu-jabberid')
+solid-widget(name='hubl-menu-jabberid')
   template
     div.hidden(
       data-jabberID="${value}"
     )
 
-sib-widget(name='hubl-menu-publicprivate')
+solid-widget(name='hubl-menu-publicprivate')
   template
     div ${value == 'Public' ? '#' : 'î‚Ž'}
 
-sib-widget(name='hubl-create')
+solid-widget(name='hubl-create')
   template
     p.create Tu ne fais partie d'aucun ${value}.
       br
       | Pour en créer un nouveau, tu peux te rendre dans le 
-      sib-link(next='admin') panneau d'administration
+      solid-link(next='admin') panneau d'administration
 
-sib-widget(name='hubl-menu-fix-url-circle')
+solid-widget(name='hubl-menu-fix-url-circle')
   template
-    sib-display(
+    solid-display(
       data-src='${value}'
       fields='status, name, jabberID, badge'
       value-badge='${value}'
       widget-status='hubl-menu-publicprivate'
       widget-badge='hubl-counter'
       widget-jabberID='hubl-menu-jabberid'
-      widget-name='sib-display-div'
+      widget-name='solid-display-div'
       order-by="name"
     )
 
-sib-widget(name='hubl-menu-fix-url-project')
+solid-widget(name='hubl-menu-fix-url-project')
   template
-    sib-display(
+    solid-display(
       data-src='${value}'
       fields='status, project(customer.name, name, jabberID), badge'
       class-name='project-name'
@@ -43,29 +43,29 @@ sib-widget(name='hubl-menu-fix-url-project')
       widget-status='hubl-menu-publicprivate'
       widget-jabberID='hubl-menu-jabberid'
       widget-badge='hubl-counter'
-      widget-name='sib-display-div'
+      widget-name='solid-display-div'
       order-by="customer.name"
     )
 
 
-sib-router#navbar-router(default-route='dashboard')
+solid-router#navbar-router(default-route='dashboard')
   if endpoints.dashboards || (endpoints.get && endpoints.get.dashboards)
-    sib-route.menu(name='dashboard')
+    solid-route.menu(name='dashboard')
       div.menu-label Tableau de bord
       div.menu-icon.icon-home
     div.divider
   if publicDirectory && (endpoints.users || (endpoints.get && endpoints.get.users))
-    sib-route.menu(name='members')
+    solid-route.menu(name='members')
       div.menu-label Annuaire des membres
       div.menu-icon.icon-people
     div.divider
   if endpoints.joboffers || (endpoints.get && endpoints.get.joboffers)
-    sib-route.menu(name='job-offers', rdf-type='hd:joboffer')
+    solid-route.menu(name='job-offers', rdf-type='hd:joboffer')
       div.menu-label Offres de mission
       div.menu-icon.icon-briefcase
     div.divider
   if endpoints.events || (endpoints.get && endpoints.get.events)
-    sib-route.menu(name='events')
+    solid-route.menu(name='events')
       div.menu-label Evènements
       div.menu-icon.icon-calendar
     div.divider
@@ -76,15 +76,15 @@ sib-router#navbar-router(default-route='dashboard')
     div.divider
   if endpoints.projects || (endpoints.get && endpoints.get.projects)
     div
-      sib-link(next='admin-project-list')
+      solid-link(next='admin-project-list')
         div.menu
           div.menu-chevron
             div.menu-icon.icon-arrow-right-circle
           div.menu-label  Projets
           div.menu-icon.icon-folder-alt
-      sib-route(name='project', rdf-type='hd:project', use-id='', hidden)
+      solid-route(name='project', rdf-type='hd:project', use-id='', hidden)
       div.sub-menu.menu-notification
-        sib-display.project-tab(
+        solid-display.project-tab(
           bind-user
           nested-field='projects'
           fields='project'
@@ -97,15 +97,15 @@ sib-router#navbar-router(default-route='dashboard')
     div.divider
   if endpoints.circles || (endpoints.get && endpoints.get.circles)
     div
-      sib-link(next='admin-circle-list')
+      solid-link(next='admin-circle-list')
         div.menu
           div.menu-chevron
             div.menu-icon.icon-arrow-right-circle
           div.menu-label  Canaux
           div.menu-icon.icon-folder-alt
-      sib-route(name='circle', rdf-type='hd:circle', use-id='', hidden)
+      solid-route(name='circle', rdf-type='hd:circle', use-id='', hidden)
       div.sub-menu.menu-notification
-        sib-display.circle-tab(
+        solid-display.circle-tab(
           bind-user
           nested-field='circles'
           fields='circle'
@@ -123,15 +123,15 @@ sib-router#navbar-router(default-route='dashboard')
           div.menu-icon.icon-arrow-up
         div.menu-label Messages
         div.menu-icon.icon-envelope-letter
-      sib-route(name='messages', rdf-type='foaf:user', use-id='', hidden)
+      solid-route(name='messages', rdf-type='foaf:user', use-id='', hidden)
       div.sub-menu.menu-notification
-        sib-display.nosub.message-tab(
+        solid-display.nosub.message-tab(
           data-src=`${endpoints.users || (endpoints.get && endpoints.get.users)}`
           fields='name, chatProfile.jabberID, badge'
           search-fields="name"
           search-label-name="Rechercher..."
           search-widget-name="hubl-search-users"
-          widget-name='sib-display-div'
+          widget-name='solid-display-div'
           widget-badge='hubl-counter'
           widget-chatProfile.jabberID='hubl-menu-jabberid'
           action-badge='badge'
@@ -141,6 +141,6 @@ sib-router#navbar-router(default-route='dashboard')
         )
     div.divider
 
-  sib-route(name='admin', hidden)
-  sib-route.menu(name='profile', hidden)
-  sib-route(name='about', hidden)
+  solid-route(name='admin', hidden)
+  solid-route.menu(name='profile', hidden)
+  solid-route(name='about', hidden)
diff --git a/src/page-admin.pug b/src/page-admin.pug
index 30b7cd0a5961a67b9c359b734eec0bd707e53d8a..54e08f92b8467059075f1f7abb41a17049841295 100644
--- a/src/page-admin.pug
+++ b/src/page-admin.pug
@@ -9,19 +9,19 @@
     #admin-users(hidden)
       include views/admin/page-admin-users.pug
 nav.jsRightMenu(role='navigation')
-  sib-router(default-route='admin-circles')
+  solid-router(default-route='admin-circles')
     ul
       li.jsOffsiteToggle
         a Replier le menu
       if (endpoints.users || (endpoints.get && endpoints.get.users))
-        sib-route.active-color(name='admin-users')
+        solid-route.active-color(name='admin-users')
           li
             a Utilisateurs
       if endpoints.circles || (endpoints.get && endpoints.get.circles)
-        sib-route(name='admin-circles')
+        solid-route(name='admin-circles')
           li
             a Canaux
       if endpoints.projects || (endpoints.get && endpoints.get.projects)
-        sib-route(name='admin-projects')
+        solid-route(name='admin-projects')
           li
             a Projets
diff --git a/src/page-circle.pug b/src/page-circle.pug
index ce4a12a8817c1cc4f417f093e416de8d4e65cd52..7286b46dcd0ae41039e7cabc811a32ccc2f24dd9 100644
--- a/src/page-circle.pug
+++ b/src/page-circle.pug
@@ -1,8 +1,8 @@
 .views-container.sidebar-is-closed
   .content-box.flex.full-width.with-form
     div.content-box__header
-      sib-ac-checker.flex.space-between(permission='acl:Read', bind-resources)
-        sib-display(
+      solid-ac-checker.flex.space-between(permission='acl:Read', bind-resources)
+        solid-display(
           bind-resources
           fields='name, description'
 
@@ -11,7 +11,7 @@
         )
         button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle MENU
     div.content-box__height
-      sib-ac-checker(permission='acl:Read', bind-resources)
+      solid-ac-checker(permission='acl:Read', bind-resources)
         #circle-chat(hidden)
           include views/circle/page-circle-chat.pug
         #circle-information.content-box__height(hidden)
@@ -22,14 +22,14 @@
           include views/circle/page-circle-resources.pug
 
 nav.jsRightMenu(role='navigation')
-  sib-router(default-route='circle-chat')
+  solid-router(default-route='circle-chat')
     ul
       li.jsOffsiteToggle
         a Replier le menu
-      sib-route(name='circle-chat')
+      solid-route(name='circle-chat')
         li
           a Chat
-      sib-route(name='circle-information')
+      solid-route(name='circle-information')
         li
           a Information
       sib-route(name='circle-events' use-id)
diff --git a/src/page-dashboard.pug b/src/page-dashboard.pug
index ea3db7d7c305fd950f6824c14cc9605566c58297..9a22752ee0d61b2bcf4f1b6e97d528a181ed0b3d 100644
--- a/src/page-dashboard.pug
+++ b/src/page-dashboard.pug
@@ -1,5 +1,5 @@
 .views-container
   h1 Tableau de bord
-  sib-dashboard(
+  solid-dashboard(
     data-src=`${endpoints.dashboards || endpoints.get.dashboards}`
   )
diff --git a/src/page-directory.pug b/src/page-directory.pug
index e8f8c3c4e20630b73e144362a75722bc2a14f857..3937823e262d756e0113a9e2699e2be27058f553 100644
--- a/src/page-directory.pug
+++ b/src/page-directory.pug
@@ -1,5 +1,4 @@
-sib-directory(
-  data-src=`${endpoints.users || endpoints.get.users}`,
-  range-groups=`${endpoints.groups || endpoints.get.groups}`,
+solid-directory(
+  data-src=`${endpoints.users || endpoints.get.users}`
   range-skills=`${endpoints.skills || endpoints.get.skills}`
 )
diff --git a/src/page-job-offers.pug b/src/page-job-offers.pug
index b7cb1868950fab615f47a911bf53dcf32a359e62..bf83ad66b4bb0655243d550e978c9e83381ee965 100644
--- a/src/page-job-offers.pug
+++ b/src/page-job-offers.pug
@@ -1,25 +1,7 @@
 .content-box.full-width
-  #job-offer-board
-    .job-offers__container
-    sib-job-board(
+  #job-offers.job-offers__container
+    solid-job-board(
       data-src=`${endpoints.joboffers || endpoints.get.joboffers}`,
+      post-data-src=`${endpoints.joboffers || endpoints.post.joboffers}`,
       range-skills=`${endpoints.skills || endpoints.get.skills}`
     )
-
-    div.job-offers__newoffer
-      sib-link(next="job-offer-create").plus-button
-        div.icon-plus
-        div Post a new offer
-
-  #job-offer-create(hidden)
-    sib-link(class="backlink", next="job-offers") Back
-    include views/job-offer/page-job-offer-create.pug
-
-  #job-offer-edit(hidden)
-    sib-link(class="backlink", next="job-offers") Back
-    include views/job-offer/page-job-offer-edit.pug
-
-sib-router(default-route='job-offer-board')
-  sib-route(name='job-offer-board')
-  sib-route(name='job-offer-create')
-  sib-route(name='job-offer-edit')
\ No newline at end of file
diff --git a/src/page-messages.pug b/src/page-messages.pug
index 154a42db46042d24070ea510af1f6a2f28a3de50..21f7c6dde0b2c6b4d9e8082f11430da88dd312de 100644
--- a/src/page-messages.pug
+++ b/src/page-messages.pug
@@ -1,7 +1,7 @@
 .content-box.flex.full-width
 
   div.content-box__header
-    sib-display(
+    solid-display(
       bind-resources
       fields='name, parenthesis, username, endParenthesis'
       value-parenthesis=" ("
@@ -14,7 +14,7 @@
     )
 
   .chat-view
-    sib-chat(
+    solid-xmpp-chat(
       data-authentication='login',
       data-auto-login='true',
       data-bosh-service-url=`${xmpp}`,
diff --git a/src/page-profile.pug b/src/page-profile.pug
index 79702ef03113b3deffb047bc87477f090ecfaaec..32d9bb690ac8a334e32860c48d77e4788c7f1370 100644
--- a/src/page-profile.pug
+++ b/src/page-profile.pug
@@ -1,4 +1,4 @@
-sib-profile(
+solid-profile(
   bind-user
   upload-src=`${endpoints.uploads || endpoints.post.uploads}`
   range-skills=`${endpoints.skills || endpoints.get.skills}`
diff --git a/src/page-project.pug b/src/page-project.pug
index dacf1b1e79d9614075368e692ac1f35629a9c018..3c102656818c215ad892df83ed991b0b532a6de4 100644
--- a/src/page-project.pug
+++ b/src/page-project.pug
@@ -1,8 +1,8 @@
 .views-container.sidebar-is-closed
   .content-box.flex.full-width.with-form
     div.content-box__header
-      sib-ac-checker.flex.space-between(permission='acl:Read', bind-resources)
-        sib-display(
+      solid-ac-checker.flex.space-between(permission='acl:Read', bind-resources)
+        solid-display(
           bind-resources
           fields='const-title1, number, customer.name, name'
 
@@ -15,21 +15,23 @@
         )
         button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle MENU
     div.content-box__height
-      sib-ac-checker(permission='acl:Read', bind-resources)
+      solid-ac-checker(permission='acl:Read', bind-resources)
         #project-chat(hidden)
           include views/project/page-project-chat.pug
         #project-information.content-box__height(hidden)
           include views/project/page-project-profile.pug
+        #project-picture(hidden)
+          include views/project/page-project-picture.pug
 
 nav.jsRightMenu(role='navigation')
-  sib-router(default-route='project-chat')
+  solid-router(default-route='project-chat')
     ul
       li.jsOffsiteToggle
         a Replier le menu
-      sib-route(name='project-chat')
+      solid-route(name='project-chat')
         li 
           a Chat
-      sib-route(name='project-information')
+      solid-route(name='project-information')
         li 
           a Information
-      sib-route(name='project-contributions-help')
\ No newline at end of file
+      solid-route(name='project-picture' use-id)
\ No newline at end of file
diff --git a/src/page-user-profile.pug b/src/page-user-profile.pug
index d10d1e1939ce295d8e043bd17fa85ebdf3cf684d..aee271e6e21aacf71db58197d3247e298366fd4f 100644
--- a/src/page-user-profile.pug
+++ b/src/page-user-profile.pug
@@ -4,14 +4,14 @@ include templates/hubl-groups.pug
 
   .section.user-bio
 
-    sib-display.avatar-display(
+    solid-display.avatar-display(
       bind-user=''
       fields='account.picture'
       label-account.picture=''
-      widget-account.picture='sib-display-img'
+      widget-account.picture='solid-display-img'
     )
     
-    sib-display.name-diplay(
+    solid-display.name-diplay(
       bind-user=''
       fields='user-name-groups(name, groups), username'
 
@@ -24,7 +24,7 @@ include templates/hubl-groups.pug
       class-username='username'
     )
 
-    sib-form.info-form(
+    solid-form.info-form(
       bind-user=''
       fields='profile.bio, inline-1(profile.city, email), inline-2(profile.phone, profile.website), inline-3(profile.available), account.picture, instruction'
 
@@ -53,19 +53,19 @@ include templates/hubl-groups.pug
 
   .section.user-skills
 
-    sib-form(
+    solid-form(
       bind-user=''
       range-skills=`${endpoints.skills || endpoints.get.skills}`
       fields='skills'
 
       class-skills='form-label is-dark'
       label-skills='Your main skills (4 max.):'
-      multiple-skills='sib-multiple-select'
-      widget-skills='sib-form-auto-completion'
+      multiple-skills='solid-multiple-select'
+      widget-skills='solid-form-auto-completion'
     )
 
 
-  sib-widget(name='hubl-instruction')
+  solid-widget(name='hubl-instruction')
     template
       span Show us your most beautiful smile
       p Pictures help us to know ourselves and also to recognize ourselves, so don't be afraid to show your pretty face and avoid strange avatars.
diff --git a/src/scripts/reactive-store.js b/src/scripts/reactive-store.js
deleted file mode 100644
index a8bd6087f1e6d41b4b598352f932aa3ea9f1cb8a..0000000000000000000000000000000000000000
--- a/src/scripts/reactive-store.js
+++ /dev/null
@@ -1,152 +0,0 @@
-//auxiliary function clears cache & refreshes sib-displays for a given resource ID
-function refreshSibDisplays(resourceId, clearCache = true) {
-  let cacheCleared = false;
-
-  Array.from(document.querySelectorAll("sib-display"))
-    .filter(sibDisplay => sibDisplay.component?sibDisplay.component.resourceId == resourceId:false) // keep only elements with resource == edited resource
-    .forEach(async (e) => {
-      //clear cache if we were unable to before
-      if ((clearCache && !cacheCleared) && e.component.resource != null) {
-        await e.component.resource.clearCache();
-        cacheCleared = true;
-      }
-      e.dataset.src = e.dataset.src;
-    }); // and update them
-}
-
-async function updateSources(resource) {
-  let res = resource.split('/');
-  res.splice(3, 0, 'sources');
-  let cacheCleared = false;
-  if (event.target.component.resource != null) {
-    await event.target.component.resource.clearCache();
-    cacheCleared = true;
-  }
-  refreshSibDisplays(res.join('/'),cacheCleared);
-}
-
-async function resToChildrens(resource) {
-  resource = resource.getResourceData();
-  refreshSibDisplays(resource["http://happy-dev.fr/owl/#user"]["@id"]);
-  refreshSibDisplays(resource["http://happy-dev.fr/owl/#project"]["@id"] + "members/");
-  refreshSibDisplays(resource["http://happy-dev.fr/owl/#circle"]["@id"] + "members/");
-}
-
-//auxiliary function updates displays using a given resource
-//NOTE: this is a temporary workaround and should be replaced by a reactive storage
-//https://git.startinblox.com/framework/sib-core/issues/524
-async function refreshResource(event) {
-
-  // if of the edited resource || id of the container of the created resource
-  const resourceId = event.detail.resource["@id"] || event.target.dataset.src;
-  updateSources(resourceId, event);
-  [...new Set(Array.from(document.querySelectorAll('[data-src="' + resourceId + '"]')).map(e=>e.component?e.component.resource:null).filter(e=>e!=null))].forEach(resToChildrens);
-  [...new Set(Array.from(document.querySelectorAll('[data-src="' + resourceId.replace('circle-members','circles').split('/').slice(0, 4).join('/') + '/"]')).map(e=>e.component?e.component.resource:null).filter(e=>e!=null))].forEach(resToChildrens);
-  [...new Set(Array.from(document.querySelectorAll('[nested-field="' + resourceId.split('/').slice(3, 4).join('').replace('circle-members','circles') + '"]')).map(e=>e.component?e.component.resource:null).filter(e=>e!=null))].forEach(resToChildrens);
-
-  //special cases updating users/X/circles for the left-side-menu (leaving or joining circle)
-  let user = await document.querySelector('sib-auth').getUser();
-  if(resourceId.includes('circle') && user != null) {
-    let userId = user['@id'];
-    refreshSibDisplays(userId + "circles/");
-    refreshSibDisplays(resourceId.replace('circle-members','circles').split('/').slice(0, 3).join('/') + '/circles/joinable/');
-    refreshSibDisplays(resourceId.replace('circle-members','circles').split('/').slice(0, 3).join('/') + '/sources/circlesjoinable/');
-  }
-
-  if(resourceId.includes('users')) {
-    refreshSibDisplays(resourceId.split('/').slice(0, 3).join('/') + '/users/');
-    refreshSibDisplays(resourceId.split('/').slice(0, 3).join('/') + '/sources/users/');
-    refreshSibDisplays(resourceId + 'profile/');
-    refreshSibDisplays(resourceId + 'account/');
-    refreshSibDisplays(resourceId + 'chatProfile/');
-    refreshSibDisplays(resourceId + 'skills/');
-    refreshSibDisplays(resourceId + 'account/');
-  }
-
-  //clear cache on this resource
-  //NOTE: this is required because the cache is not refreshed after POSTing changes on the resource
-  let cacheCleared = false;
-  if (event.target.component.resource != null) {
-    await event.target.component.resource.clearCache();
-    cacheCleared = true;
-  }
-
-  //update all displays which use this resource
-  refreshSibDisplays(resourceId, cacheCleared);
-}
-
-//auxiliary function performs a redirect
-//NOTE: currently a sib-display is required to dispatch the requestNavigation event
-function performRedirect(route) {
-  document.dispatchEvent(
-    new CustomEvent("requestNavigation", {
-      bubbles: true,
-      detail: { route: route }
-    })
-  );
-}
-
-//auxiliary function redirects after leaving a project/circle
-//NOTE: this is a temporary workaround until the following issues are resolved:
-//https://git.startinblox.com/framework/sib-core/issues/476
-//https://git.startinblox.com/framework/sib-core/issues/546
-async function checkForPostLeaveRedirect(event) {
-  //a redirect will only be required if I left in the information page of the resource
-  if(!window.location.href.includes('-information')) {
-    return;
-  }
-  //first need to get a sib-display with this resource id (to have access to the target Proxy, containing model fields)
-  const resourceId = event.detail.resource['@id'] || event.target.dataset.src;
-  let target = document.querySelector('[data-src="' + resourceId + '"]');
-  let resource = target.component.resource.getResourceData();
-
-  //no redirect is required for public circles
-  let targetCircleId = resource["http://happy-dev.fr/owl/#circle"];
-  if(targetCircleId != undefined) {
-    let targetCircle = document.querySelector('[data-src="' + targetCircleId["@id"] + '"]');
-    let targetCircleResource = targetCircle.component.resource.getResourceData();
-    if(targetCircleResource['http://happy-dev.fr/owl/#status'] == 'Public') {
-      return;
-    }
-  }
-
-  //a redirect will only be required if I've deleted myself
-  let targetUser = resource['http://happy-dev.fr/owl/#user'];
-  if(targetUser != undefined) {
-    //compare with current user
-    let user = await document.querySelector('sib-auth').getUser();
-    if(targetUser['@id'] != user['@id'] && targetUser['@id'] != undefined) {
-      return;
-    }
-  }
-
-  //perform the redirect
-  if(resourceId.includes('circle')) {
-    performRedirect('circle-left');
-  } else if(resourceId.includes('project')) {
-    performRedirect('project-left');
-  }
-}
-
-
-document.addEventListener("DOMContentLoaded", function(event) {
-  const menuWrappers = Array.from(document.querySelectorAll(".menu-wrapper"));
-
-  //- Toggle sub-menus
-  menuWrappers.forEach(menuWrapper => {
-    const menu = menuWrapper.querySelector(".menu");
-    menu.addEventListener("click", e => {
-      menuWrapper.classList.toggle("is-closed");
-    });
-  });
-
-  //- Watch every sib-forms & update data-src of linked sib-display
-  document.querySelector("body").addEventListener("save", event => {
-    refreshResource(event);
-  });
-  document.querySelector("body").addEventListener("resourceDeleted", event => {
-    //I might need to be redirected from this page
-    checkForPostLeaveRedirect(event).then(refreshResource(event));
-  });
-
-});
diff --git a/src/scripts/sib-notifications.js b/src/scripts/sib-notifications.js
index d45bba7bcddd864c6676f06308b2c72dcbe742aa..a6c9ddb908ff0d0fd9a664b7e8e331e4cef4d40b 100644
--- a/src/scripts/sib-notifications.js
+++ b/src/scripts/sib-notifications.js
@@ -12,7 +12,7 @@ async function updateBadges(element) {
   }
   // update badges
   unreadNotifications.forEach((notifNumber, objectId) => {
-    const badge = document.querySelector(`sib-fix-badge[data-src="${objectId}"]`);
+    const badge = document.querySelector(`solid-fix-badge[data-src="${objectId}"]`);
     if (badge) {
       badge.innerText = notifNumber || '';
       badge.style.display = notifNumber ? 'block' : 'none';
@@ -29,7 +29,7 @@ document.addEventListener("DOMContentLoaded", function (event) {
       clearInterval(checkNotificationMenuExist);
       notifsMenu.addEventListener('populate', (event) => {
         const checkExist = setInterval(function () { // wait for left menus to exist
-          const subMenus = document.querySelectorAll('.sub-menu > sib-display > div');
+          const subMenus = document.querySelectorAll('.sub-menu > solid-display > div');
           if (subMenus.length >= 2) {
             updateBadges(event.target);
             clearInterval(checkExist);
@@ -53,7 +53,7 @@ document.addEventListener("DOMContentLoaded", function (event) {
   // on read notification
   window.addEventListener('read', (event) => {
     if (event.detail && event.detail.resource && event.detail.resource['@id']) {
-      const badge = document.querySelector(`sib-fix-badge[data-src="${event.detail.resource['@id']}"]`);
+      const badge = document.querySelector(`solid-fix-badge[data-src="${event.detail.resource['@id']}"]`);
       if (badge) badge.style.display = "none";
     }
   });
diff --git a/src/scripts/unreads-menu.js b/src/scripts/unreads-menu.js
index 3cd1904fac05038aca1f2a8b501c14c27fb30585..66b18b5468bb8a0f244191f6d89c0cd14b5cfbf2 100644
--- a/src/scripts/unreads-menu.js
+++ b/src/scripts/unreads-menu.js
@@ -8,7 +8,7 @@ document.addEventListener("DOMContentLoaded", function (event) {
 
   window.addEventListener('read', (event) => {
     if (event.detail && event.detail.resource && event.detail.resource['@id']) {
-      const badge = document.querySelector(`sib-fix-badge[data-src="${event.detail.resource['@id']}"]`);
+      const badge = document.querySelector(`solid-fix-badge[data-src="${event.detail.resource['@id']}"]`);
       if (badge) badge.parentElement.parentElement.classList.remove('unread');
     }
   });
diff --git a/src/scripts/widget-extension.js b/src/scripts/widget-extension.js
index d126f3b6d4637e9f65030cf3bf18e97f1e33cc85..13c2295f14b528077b882dcd9d2940b771e3ed92 100644
--- a/src/scripts/widget-extension.js
+++ b/src/scripts/widget-extension.js
@@ -8,10 +8,10 @@ function applyAdapt(prefix, sibDisplay, user) {
     );
   }
 
-  //- Allow to set data-src to a children sib-form
+  //- Allow to set data-src to a children solid-form
   if (sibDisplay.getAttribute(prefix + "-bind-resources")) {
     let form = sibDisplay.querySelector(
-      sibDisplay.getAttribute(prefix + "-bind-resources") + " sib-form"
+      sibDisplay.getAttribute(prefix + "-bind-resources") + " solid-form"
     );
     if (form) {
       form.setAttribute(
@@ -38,7 +38,7 @@ function recursiveAdaptWidgets(prefix, element, user) {
       el.setAttribute(el.getAttribute(prefix + "-user-id"), user["@id"]);
     });
     applyAdapt(prefix, element, user);
-    document.querySelectorAll('sib-display, sib-form').forEach(sibDisplay => {
+    document.querySelectorAll('solid-display, solid-form').forEach(sibDisplay => {
       applyAdapt(prefix, sibDisplay, user);
     });
   });
@@ -50,12 +50,12 @@ document.addEventListener("DOMContentLoaded", function (event) {
     .getUser()
     .then(user => {
       if (user !== null) {
-        document.querySelectorAll('sib-display, sib-form').forEach(element => {
-          // Set current user id on set-user-id of sib-display
+        document.querySelectorAll('solid-display, solid-form').forEach(element => {
+          // Set current user id on set-user-id of solid-display
           recursiveAdaptWidgets("hubl-inherit", element, user);
         });
         for (leaveBtn of document.querySelectorAll(
-            "admin-circle-leave > sib-ac-checker:not([hidden])"
+            "admin-circle-leave > solid-ac-checker:not([hidden])"
           )) {
              // Hide Join button
           leaveBtn.parentNode.parentNode.parentNode.nextElementSibling.setAttribute(
diff --git a/src/styles/abstracts/_variables.scss b/src/styles/abstracts/_variables.scss
index 13c0135dc40fb983af2abac84388600cbf6f5bd4..ae485e09d94375881d99871e21f553cdd5e5e7af 100644
--- a/src/styles/abstracts/_variables.scss
+++ b/src/styles/abstracts/_variables.scss
@@ -118,6 +118,15 @@
   --color-backlink: var(--color-secondary);
   --color-content-header: var(--color-grey-9);
 
+  /* job board */
+  --color-job-board-primary:  var(--color-primary) !important;
+  --color-job-board-secondary: var(--color-secondary)!important;
+  --color-job-board-complementary: var(--color-complementary)!important;
+  --color-job-board-complementary-darken: var(--color-complementary-darken)!important;
+  --color-job-board-white: var(--color-white)!important;
+  --color-job-board-black-1: var(--color-black)!important;
+  --color-job-board-grey-10: #E4E8ED !important; // for some reason with the var it doesh't work var(--color-grey-12) !important;
+
   /* directory */
   --color-directory-primary: var(--color-primary)!important;
   --color-directory-secondary: var(--color-secondary)!important;
@@ -131,4 +140,4 @@
 $color-212-4-50: hsl(212.7,4.3%,50%);
 $color-0-0-22: hsl(0,0%,22.7%);
 $color-203-87-19: hsl(203, 87.8%, 19.2%);
-$color-357-67-45: hsl(357,67.5%,45.9%);
\ No newline at end of file
+$color-357-67-45: hsl(357,67.5%,45.9%);
diff --git a/src/styles/base/form.scss b/src/styles/base/form.scss
index 7d555fcefea4755a6ffbd8694d7431ef3871f1b8..ad3c93be213737be33fc205374281e56bc29bd5e 100644
--- a/src/styles/base/form.scss
+++ b/src/styles/base/form.scss
@@ -18,8 +18,23 @@
   .reversed,
   .button-secondary,
   .bordered;
-  margin-left: auto;
-  margin-top: 3.2rem;
+  height: auto;
+  position: fixed;
+  bottom: 1em;
+  left: 10%;
+  white-space: normal;
+  width: 80%;
+  z-index: 1;
+  
+  @include breakpoint(lg) {
+    height: 3rem;
+    left: 0;
+    margin: 0;
+    margin-left: auto;
+    margin-top: 109px;
+    position: relative;
+    width: auto;
+  }
 }
 
 .form-label {
@@ -78,19 +93,20 @@
 
 textarea {
   height: 100px;
+  resize: vertical;
 }
     
 .content-box {
   
   &.with-form {
 
-    /*sib-set-default:not([name='user-thumb']) {
+    /*solid-set-default:not([name='user-thumb']) {
       clear: both;
 	    display: flex!important;
 			flex-wrap: wrap;
 			max-width: 100%;
 			
-			sib-form-label-text {
+			solid-form-label-text {
 				float: left;
 				width: 50%;
 			}
@@ -98,7 +114,7 @@ textarea {
   }
 }
 
-/*sib-form[set-user-id-select] {
+/*solid-form[set-user-id-select] {
 
   input[type="submit"] {
     margin-left: 0;
@@ -113,7 +129,7 @@ textarea {
 
 /* WIDGETS SIB  (let in .content-box to override default styles) */
 
-sib-form-auto-completion,
+solid-form-auto-completion,
 hubl-status {
 
   .ss-main {
@@ -189,7 +205,7 @@ hubl-status {
 }
 /* End */
 
-sib-form-date {
+solid-form-date {
   input[type="date"] {
     background-image: url("/images/calendar.svg");
     background-position: right 12px top 50%;
@@ -223,42 +239,61 @@ sib-form-date {
   }
 }
 
-sib-form-file {
-
-  label {
-    align-items: baseline;
-    clear: both;
+solid-form-file {
+  
+  div {
     display: flex;
-    flex-direction: row;
-    flex-wrap: wrap;
-    max-width: 100%;
-
-    div {
-      width: 100%;
+    flex-direction: column-reverse;
+    align-items: center;
+    margin-top: 1.8rem;
+    
+    @include breakpoint(lg) {
+      flex-direction: row-reverse;
+      justify-content: flex-end;
     }
-
+  
+    input[type='file'] {
+      height: 0.1px;
+      opacity: 0;
+      overflow: hidden;
+      position: absolute;
+      width: 0.1px;
+      z-index: -1;
+    }
+      
     input[type='text'] {
-      box-sizing: border-box;
-      flex: 0 0 50%;
+      margin-bottom: 0.8rem;
+      width: 100%;
+
+      @include breakpoint(lg) {
+        width: auto;
+      }
     }
 
-    input[type='file'] {
-      box-sizing: border-box;
-      flex: 0 0 20%;
-      color: var(--color-input-text);
-      cursor: pointer;
-      padding-left: 3rem;
+    label {
+      @extend .button,
+      .text-bold,
+      .text-uppercase,
+      .button-primary,
+      .bordered;
+      text-align: center;
+      width: 100%;
+      
+      @include breakpoint(lg) {
+        margin: auto 2.2rem;
+        width: auto;
+      }
     }
   }
 }
 
-/*sib-multiple-select {
+/*solid-multiple-select {
 
   &.select-skills .ss-values .ss-disabled::before {
     content: "Select skills";
   }
 
-  sib-form-auto-completion > label {
+  solid-form-auto-completion > label {
     display: flex;
     flex-direction: column;
 
@@ -342,7 +377,7 @@ hubl-member-form {
       margin-bottom: 1rem;
     }
 
-    sib-form-auto-completion {
+    solid-form-auto-completion {
       float: left;
     }
 
diff --git a/src/styles/base/header.scss b/src/styles/base/header.scss
index c8634f80284c1a64932c2bf80a50a1d48ae21bd1..1288dfff883025b3f83ed137801646fd89243331 100644
--- a/src/styles/base/header.scss
+++ b/src/styles/base/header.scss
@@ -40,7 +40,7 @@
   }
 
   /* To remove the place taken by this element */
-  sib-widget[name='hubl-user-avatar'] {
+  solid-widget[name='hubl-user-avatar'] {
     display: contents;
   }
 }
@@ -176,7 +176,7 @@ sib-notifications {
         }
       }
       
-      sib-display-value[name='first_name'] {
+      solid-display-value[name='first_name'] {
         @include icon('arrow-down');
         align-items: center;
         display: none;
@@ -224,7 +224,7 @@ sib-notifications {
         
         li {
 
-          sib-link {
+          solid-link {
             color: var(--color-grey-4);
             display: block;
             border-bottom: 1px solid var(--color-user-panel-list-border);
@@ -259,7 +259,7 @@ sib-notifications {
 
       div {
 
-        sib-display-value[name='first_name'] {
+        solid-display-value[name='first_name'] {
           @include icon('close');
 
           &::before {
diff --git a/src/styles/base/main.scss b/src/styles/base/main.scss
index 97ca8578fe636714f9e2a5020a902b128d57f9ae..23a12a6bd43b6c53248a129b1e445ff83c32ca4d 100644
--- a/src/styles/base/main.scss
+++ b/src/styles/base/main.scss
@@ -22,8 +22,8 @@
   }
 }
 
-/* Fix for sib-dashboard fixture */
-sib-dashboard section {
+/* Fix for solid-dashboard fixture */
+solid-dashboard section {
   padding: 1rem !important;
 
   @include breakpoint(lg) {
@@ -322,14 +322,14 @@ h5 {
     }
   }
 
-  sib-display {
+  solid-display {
     @include breakpoint(sm) {
       float: left;
     }
   }
 
-  /* For sib-display on project, circle, or private message view */
-  sib-display {
+  /* For solid-display on project, circle, or private message view */
+  solid-display {
     width: calc(100% - 94px); /* 94px = width of .mobile-sidebar-button */
 
     div {
@@ -394,7 +394,7 @@ h5 {
     max-width: 75%;
   }
 
-  sib-link {
+  solid-link {
     font-size: 2.7rem;
     position: absolute;
     right: 32px;
@@ -430,8 +430,8 @@ h5 {
     }
   }
 
-  sib-ac-checker,
-  sib-link {
+  solid-ac-checker,
+  solid-link {
     width: 100%;
 
     @include breakpoint(lg) {
@@ -516,9 +516,9 @@ h5 {
 @import 'user-thumb';
 
 // Button global CSS
-sib-delete,
-sib-route,
-sib-link,
+solid-delete,
+solid-route,
+solid-link,
 button,
 input[type='submit'],
 a,
diff --git a/src/styles/base/menu-left.scss b/src/styles/base/menu-left.scss
index 4d6819201c46685d62207cc04e6255ca94909725..7b070ed674c0ab2f1f714cd6417ab5e5c7d952b7 100644
--- a/src/styles/base/menu-left.scss
+++ b/src/styles/base/menu-left.scss
@@ -11,7 +11,7 @@
     font-weight: bolder;
   }
 
-  sib-router {
+  solid-router {
     .menu-wrapper {
       &.is-closed {
         .sub-menu {
@@ -24,7 +24,7 @@
       }
     }
 
-    sib-link {
+    solid-link {
       width: 100%;
     }
 
@@ -42,7 +42,7 @@
           background-color: var(--color-menu-icon-background-active);
         }
 
-        .menu-notification>sib-display>div:first-child {
+        .menu-notification>solid-display>div:first-child {
           background-color: var(--color-menu-badge-background);
         }
       }
@@ -85,7 +85,7 @@
         width: 2em;
       }
 
-      >sib-display {
+      >solid-display {
         display: block;
       }
     }
@@ -94,9 +94,9 @@
 
       /* Ellipsis for project tab */
 
-      .project-tab>div>sib-display>div:nth-child(1) {
+      .project-tab>div>solid-display>div:nth-child(1) {
 
-        sib-set-default[name='project'] {
+        solid-set-default[name='project'] {
           flex: 3;
           
           .project-customer,
@@ -125,9 +125,9 @@
 
       /* Ellipsis for circle tab */
 
-      .circle-tab>div>sib-display>div {
+      .circle-tab>div>solid-display>div {
 
-        sib-display-div[name='name'] {
+        solid-display-div[name='name'] {
           flex: 3;
 
           >div[name='name'] {
@@ -147,7 +147,7 @@
 
       /* Ellipsis for message tab */
 
-      .message-tab>div>sib-display>div>sib-display-div>div {
+      .message-tab>div>solid-display>div>solid-display-div>div {
         box-sizing: border-box;
         width: calc(80vw - 96px); /*96px = padding of the element + width and margin of counter */
         
@@ -156,7 +156,7 @@
         }
       }
 
-      sib-display.nosub>sib-form[fields="name"]>hubl-search-users>input {
+      solid-display.nosub>solid-form[fields="name"]>hubl-search-users>input {
         margin-left: 30px;
         margin-bottom: 10px;
         width: calc(80vw - 71px);
@@ -169,11 +169,12 @@
 
         @include breakpoint(lg) {
           margin: auto;
+          margin-bottom: 10px;
           width: auto;
         }
       }
 
-      sib-display.nosub>nav {
+      solid-display.nosub>nav {
         text-align: center;
         overflow: hidden;
         display: grid;
@@ -209,18 +210,18 @@
         }
       }
 
-      >sib-display.nosub>div>sib-display>div {
+      >solid-display.nosub>div>solid-display>div {
         padding: 1rem 1rem 1rem 3rem;
       }
 
-      sib-display>div {
+      solid-display>div {
 
         .create {
           color: var(--color-white);
           margin: 1rem 1rem 2.2rem 3.2rem;
         }
 
-        &>sib-display {
+        &>solid-display {
           &:last-child>div {
             margin-bottom: 2.2rem;
           }
@@ -229,8 +230,8 @@
             color: var(--color-grey-6);
             cursor: pointer;
 
-            >hubl-menu-fix-url-circle>sib-display>div,
-            >hubl-menu-fix-url-project>sib-display>div {
+            >hubl-menu-fix-url-circle>solid-display>div,
+            >hubl-menu-fix-url-project>solid-display>div {
               padding: 1rem 1rem 1rem 3rem;
             }
           }
@@ -240,9 +241,9 @@
           }
         }
 
-        &>sib-display[active]>div,
-        &>sib-display>div>hubl-menu-fix-url-circle>sib-display[active]>div,
-        &>sib-display>div>hubl-menu-fix-url-project>sib-display[active]>div {
+        &>solid-display[active]>div,
+        &>solid-display>div>hubl-menu-fix-url-circle>solid-display[active]>div,
+        &>solid-display>div>hubl-menu-fix-url-project>solid-display[active]>div {
           background-color: var(--color-menu-highlight-primary);
           color: var(--color-menu-text-active);
           font-weight: bold;
@@ -251,14 +252,14 @@
 
       &.menu-notification {
 
-        >sib-display>div>sib-display>div>hubl-menu-fix-url-circle,
-        >sib-display>div>sib-display>div>hubl-menu-fix-url-project {
+        >solid-display>div>solid-display>div>hubl-menu-fix-url-circle,
+        >solid-display>div>solid-display>div>hubl-menu-fix-url-project {
           flex: 1;
         }
 
-        >sib-display>div>sib-display>div,
-        >sib-display>div>sib-display>div>hubl-menu-fix-url-circle>sib-display>div,
-        >sib-display>div>sib-display>div>hubl-menu-fix-url-project>sib-display>div {
+        >solid-display>div>solid-display>div,
+        >solid-display>div>solid-display>div>hubl-menu-fix-url-circle>solid-display>div,
+        >solid-display>div>solid-display>div>hubl-menu-fix-url-project>solid-display>div {
           display: flex;
           justify-content: space-between;
         }
@@ -293,7 +294,7 @@
 }
 
 // Temporary fix for badges
-sib-fix-badge {
+solid-fix-badge {
   display: none;
   box-sizing: border-box;
   font-family: sans-serif;
diff --git a/src/styles/base/table.scss b/src/styles/base/table.scss
index e9171282a79d3cdb4d2a77851c7b9153f51db937..6ecc645bb42cec9cd2548a1d1f1d64419042751b 100644
--- a/src/styles/base/table.scss
+++ b/src/styles/base/table.scss
@@ -4,6 +4,11 @@
   overflow: auto;
   position: relative;
   width: 100%;
+  margin-bottom: 6rem;
+
+  @include breakpoint(lg) {
+    margin-bottom: 0;
+  }
 
   .table {
     border-collapse: collapse;
@@ -32,7 +37,7 @@
     &>div {
       display: contents;
 
-      &>sib-display {
+      &>solid-display {
         display: table-row;
 
         &>div {
@@ -46,7 +51,7 @@
         }
       }
 
-      &>sib-multiple {
+      &>solid-multiple {
         display: contents;
 
         &>div {
@@ -71,7 +76,6 @@
 /* Styles of the table and its elements */
 
 .table {
-  border-bottom: 1px solid var(--color-table-border);
   border-left: 1px solid var(--color-table-border);
   border-right: 1px solid var(--color-table-border);
 }
@@ -113,20 +117,16 @@
     width: 280px;
   }
 
-  .w70 {
-    width: 70px;
+  .w230 {
+    width: 230px;
   }
 
-  .w262 {
-    width: 262px;
-  }
-
-  .W152 {
-    width: 152px;
+  .w70 {
+    width: 70px;
   }
 
-  .w355 {
-    width: 355px;
+  .w162 {
+    width: 162px;
   }
 
   .hashtag::before {
@@ -183,7 +183,7 @@
   }
 }
 
-.table sib-ac-checker {
+.table solid-ac-checker {
   text-align: center;
 }
 
@@ -209,8 +209,9 @@
 
 .circle-leave {
   position: relative;
-  width: 40%;
-  min-width: 40%;
+  width: 164px;
+  margin: 0 auto;
+  min-width: 164px;
 
   &>button {
     height: 29px;
diff --git a/src/styles/components/chat.scss b/src/styles/components/chat.scss
index e476d53442f4d58a622f6be73c055327fde34a20..440e3be0cf9762a4dcbe00322e15782977ab6351 100644
--- a/src/styles/components/chat.scss
+++ b/src/styles/components/chat.scss
@@ -8,7 +8,7 @@
     height: calc(100vh - 84px - 83px); /* Header's and subheader's height on mobile */
   }
 
-  > sib-chat {
+  > solid-xmpp-chat {
     position: absolute;
     top: 0;
     left: 0;
diff --git a/src/styles/components/comment.scss b/src/styles/components/comment.scss
index f269428ce73b852bdd0e014a4f30a33923dc894b..0a4dc9454c2cb339d81e58f8cfec9a1349da0536 100644
--- a/src/styles/components/comment.scss
+++ b/src/styles/components/comment.scss
@@ -37,9 +37,9 @@
       }
     }
 
-    sib-conversation.conversation {
+    solid-conversation.conversation {
 
-      .sib-conversation {
+      .solid-conversation {
         font-family: Open Sans;
 
         [name='conversation-wrapper'] {
@@ -67,14 +67,14 @@
           }
         }
 
-        >sib-display.conversation>div>sib-display:first-child {
+        >solid-display.conversation>div>solid-display:first-child {
           margin-bottom: 4.5rem;
         }
 
-        sib-ac-checker {
+        solid-ac-checker {
           border-top: 1px solid $color-210-17-91;
 
-          sib-form-textarea {
+          solid-form-textarea {
 
             >label div {
               color: $color-210-5-56;
@@ -111,7 +111,7 @@
           }
         }
 
-        .conversation>div>sib-display,
+        .conversation>div>solid-display,
         .conversation-form {
           border: none;
           margin: 1rem 2.1rem;
diff --git a/src/styles/components/filters.scss b/src/styles/components/filters.scss
index 2823c38c4c46822ecb03bb96440e118f3aacc208..18319099808fafed2225a0bf0a875b4872d25852 100644
--- a/src/styles/components/filters.scss
+++ b/src/styles/components/filters.scss
@@ -41,19 +41,19 @@
     }
   }
 
-  sib-form-label-text {
+  solid-form-label-text {
     display: flex;
     flex-direction: column;
   }
 
-  sib-form-placeholder-dropdown[name="skills"] {
+  solid-form-placeholder-dropdown[name="skills"] {
     grid-column-end: 3;
     grid-column-start: 1;
   }
 }
 
 .job-board, #members-list {
-  sib-form[naked] {
+  solid-form[naked] {
     @extend %filters;
   }
 }*/
diff --git a/src/styles/components/sidebar.scss b/src/styles/components/sidebar.scss
index 6e4d13a0ce3cfee358c9e649fb6f2a7f9ba68358..9454ebe26cb78dfc050d50b99d9885e78974da74 100644
--- a/src/styles/components/sidebar.scss
+++ b/src/styles/components/sidebar.scss
@@ -45,7 +45,7 @@
     transition: all 0.5s;
     width: 25rem;
 
-    >sib-router {
+    >solid-router {
       color: var(--color-right-menu-text);
       flex: 0 0 auto;
       font-weight: 600;
@@ -79,7 +79,7 @@
           @include icon('arrow-right-circle');
         }
 
-        >sib-route {
+        >solid-route {
 
           &[name*='circle'],
           &[name*='project'] {
diff --git a/src/styles/components/skills.scss b/src/styles/components/skills.scss
index 496f0a5ff3e8ae2af6e1939f98a298eaf03779a1..b6290fd2aac5cb66d59a311dc58cfefe1b6a8909 100644
--- a/src/styles/components/skills.scss
+++ b/src/styles/components/skills.scss
@@ -1,4 +1,4 @@
-sib-multiple[name*='skills'] {
+solid-multiple[name*='skills'] {
   display: flex;
   flex-wrap: wrap;
 }
diff --git a/src/styles/layout/dashboard/dashboard.scss b/src/styles/layout/dashboard/dashboard.scss
index 0718af8ec449accccdb8c366fd2e97ccee0863f6..a7beab803909fef8f59b368b3e40aa3b960b184b 100644
--- a/src/styles/layout/dashboard/dashboard.scss
+++ b/src/styles/layout/dashboard/dashboard.scss
@@ -2,6 +2,6 @@
   margin: 0 2px;
 }
 
-sib-dashboard .icon::before {
+solid-dashboard .icon::before {
   width: 41px;
 }
\ No newline at end of file
diff --git a/src/styles/layout/events/events.scss b/src/styles/layout/events/events.scss
index 3b38a7e020ebfe8e0903b71a7e55b90c1cc48010..6ada157861532ca2995d2b879f3be4297b622a7b 100644
--- a/src/styles/layout/events/events.scss
+++ b/src/styles/layout/events/events.scss
@@ -17,12 +17,12 @@
             font-weight: 700;
         }
         #listevents [name="name"],
-        sib-display-link-event .mdi::before {
+        solid-display-link-event .mdi::before {
             color:  $color-357-67-45;
         }
         .event-place-name,
         .nextevent-startdate,
-        sib-display-link-event {
+        solid-display-link-event {
             color: $color-0-0-22;
         }
         .sib-event {
@@ -43,7 +43,7 @@
                 padding: 5px 20px;
                 color: $color-203-87-19;
             }
-            sib-form sib-form-dropdown{
+            solid-form solid-form-dropdown{
                 label div {
                     height: 2.5rem;
                 }
@@ -72,7 +72,7 @@
                 width: max-content;
                 height: max-content;
             }
-            sib-display-location-events {
+            solid-display-location-events {
                 padding: 5px;
             }
         }
@@ -83,7 +83,7 @@
                 line-height: 3.8rem;
                 color: $color-203-87-19;
             }
-            sib-display div .event-type {
+            solid-display div .event-type {
                 width: max-content;
                 padding: 5px 20px; 
             }
@@ -91,7 +91,7 @@
                 font-size: 1.6rem;
                 line-height: 2.6rem;
             }
-            sib-display-link-event a {
+            solid-display-link-event a {
                 font-size: 1.6rem;
             }
         }
diff --git a/src/styles/layout/job-offers/job-offers.scss b/src/styles/layout/job-offers/job-offers.scss
index ef08ead866541a1342a20b82b65ff2346564b804..80e6b892ec24dcc6f9f69f17617da62d6c7598f0 100644
--- a/src/styles/layout/job-offers/job-offers.scss
+++ b/src/styles/layout/job-offers/job-offers.scss
@@ -2,7 +2,7 @@
   @extend %grid-layer;
 }
 
-sib-job-board {
+solid-job-board {
   @extend %grid-layer-main;
   @extend %containerV;
 }
@@ -37,7 +37,7 @@ sib-job-board {
   .job-board__list {
     @extend %grid-layer;
 
-    >sib-form {
+    >solid-form {
       grid-column-start: start;
       grid-column-end: middle;
       grid-row-start: start;
@@ -54,7 +54,7 @@ sib-job-board {
         margin-top: 5rem;
       }
 
-      >sib-display {
+      >solid-display {
         @include window-style-modal();
         display: block;
         font-size: 1.5rem;
@@ -71,7 +71,7 @@ sib-job-board {
             display: flex;
             margin: -0.25em;
 
-            >*:not(sib-action) {
+            >*:not(solid-action) {
               margin: 0.25em;
             }
 
@@ -80,7 +80,7 @@ sib-job-board {
               font-weight: 600;
             }
 
-            sib-multiple[name$='groups'] {
+            solid-multiple[name$='groups'] {
               display: flex;
 
               label {
@@ -147,7 +147,7 @@ sib-job-board {
             font-size: 1.3rem;
             float: right;
 
-            >sib-link {
+            >solid-link {
               cursor: pointer;
               @include icon('speech');
 
@@ -180,7 +180,7 @@ sib-job-board {
           }
         }
 
-        .sib-conversation,
+        .solid-conversation,
         .conversation > div {
           display: flex;
           flex-direction: column-reverse;
@@ -194,11 +194,11 @@ sib-job-board {
   }
 }
 
-sib-action[name='edit'] {
+solid-action[name='edit'] {
   margin-left: auto;
   color: $color-215-6-63;
 
-  &>sib-link {
+  &>solid-link {
     @include icon('pencil');
     font-size: 2rem;
   }
diff --git a/src/styles/layout/members/member-profile.scss b/src/styles/layout/members/member-profile.scss
index 22ee6ed020ab7f32f99cc06f33cd444b6bb1f242..4a334d8d840c8313b75e42ee31426e9db5b3a0d4 100644
--- a/src/styles/layout/members/member-profile.scss
+++ b/src/styles/layout/members/member-profile.scss
@@ -11,7 +11,7 @@
 
     .member-bio {
 
-      sib-set-default[name='member-profile__bio'] {
+      solid-set-default[name='member-profile__bio'] {
         display: grid;
         grid-gap: 1rem;
         grid-template-areas: "avatar name status"
@@ -20,7 +20,7 @@
           "avatar list button";
         grid-template-columns: 1fr 2fr 1fr;
 
-        sib-set-default[name='member-img'] {
+        solid-set-default[name='member-img'] {
           grid-area: avatar;
           
           member-picture {
@@ -56,23 +56,23 @@
           }
         }
 
-        sib-set-default[name='member-profile'] {
+        solid-set-default[name='member-profile'] {
           align-items: baseline;
           align-self: end;
           display: flex;
           grid-area: name;
 
-          >sib-multiple[name$='groups'] {
+          >solid-multiple[name$='groups'] {
             display: flex;
             padding-left: 1.4rem;
           }
         }
 
-        sib-display-value[name='profile.bio'] {
+        solid-display-value[name='profile.bio'] {
           grid-area: bio;
         }
 
-        sib-set-default[name='infos'] {
+        solid-set-default[name='infos'] {
           display: block;
           grid-area: list;
 
@@ -115,7 +115,7 @@
           }
         }
 
-        sib-action[name='send'] {
+        solid-action[name='send'] {
           align-self: flex-end;
           grid-area: button;
           justify-self: flex-end;
diff --git a/src/styles/layout/members/members.scss b/src/styles/layout/members/members.scss
index 54934e246e6a6aa7e22765d14b9e878b001622bb..ca07cb0872325ddcd80e9939d1ff36da4facc3be 100644
--- a/src/styles/layout/members/members.scss
+++ b/src/styles/layout/members/members.scss
@@ -1,8 +1,8 @@
 /*%member-info {
 
-  sib-multiple[name^='user.'],
+  solid-multiple[name^='user.'],
   >member-info>div,
-  >sib-display-value {
+  >solid-display-value {
     display: flex;
     flex-wrap: wrap;
     margin-bottom: 0;
@@ -70,7 +70,7 @@ member-info-groups {
       }
     }
 
-    &>sib-form {
+    &>solid-form {
       grid-column-start: start;
       grid-column-end: middle;
       grid-row-start: start;
@@ -126,7 +126,7 @@ member-info-groups {
         grid-template-columns: repeat(3, 1.5fr);
       }
 
-      &>sib-display {
+      &>solid-display {
         background-color: white;
         box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.14);
         color: $color-210-4-50;
@@ -151,7 +151,7 @@ member-info-groups {
           display: none;
         }
 
-        sib-multiple[name$='groups'] {
+        solid-multiple[name$='groups'] {
           align-items: flex-start;
           display: flex;
           justify-content: flex-end;
@@ -189,7 +189,7 @@ member-info-groups {
           }
         }
 
-        sib-set-default[name='bio'] {
+        solid-set-default[name='bio'] {
           align-items: center;
           border-bottom: 1px solid $color-210-25-95;
           display: flex;
@@ -204,7 +204,7 @@ member-info-groups {
             margin-top: 0.6rem;
           }
 
-          sib-display-value[name$='bio'] {
+          solid-display-value[name$='bio'] {
             flex: 1;
             margin: 2.5rem 0;
             padding: 0 10px;
@@ -228,11 +228,11 @@ member-info-groups {
           }
         }
 
-        sib-set-default[name='infos'] {
+        solid-set-default[name='infos'] {
           padding: 0.4rem 2rem 3.7rem;
           @extend %member-info;
 
-          sib-multiple[name='skills'] {
+          solid-multiple[name='skills'] {
             margin: 1.6rem 0;
           }
         }
diff --git a/src/styles/layout/user/user-profile.scss b/src/styles/layout/user/user-profile.scss
index 90c1542a1ec26c0d0f32c994953c8c5d715d8973..8a2be675193abeda567526632a47152a3d517227 100644
--- a/src/styles/layout/user/user-profile.scss
+++ b/src/styles/layout/user/user-profile.scss
@@ -30,7 +30,7 @@
         align-self: end;
         display: flex;
 
-        sib-multiple {
+        solid-multiple {
           display: flex;
           padding-left: 1.4rem;
 
diff --git a/src/templates/hubl-captain.pug b/src/templates/hubl-captain.pug
index 116f04ef47cc82527ad9e25d357431cad46e7adc..4b2bc9b781c6cf6264eb9aaaf11c38f51b681239 100644
--- a/src/templates/hubl-captain.pug
+++ b/src/templates/hubl-captain.pug
@@ -1,8 +1,8 @@
 include hubl-user-avatar.pug
 
-sib-widget(name='hubl-captain')
+solid-widget(name='hubl-captain')
   template
-    sib-display.user-thumb(
+    solid-display.user-thumb(
       data-src="${await value}"
       fields='account.picture, sup(name), sub(is_lead)'
 
@@ -11,5 +11,5 @@ sib-widget(name='hubl-captain')
       class-is_lead='user-thumb__lead'
 
       widget-account.picture='hubl-user-avatar'
-      value-is_lead='Project lead'
+      value-is_lead='Capitaine'
     )
diff --git a/src/templates/hubl-circle-team.pug b/src/templates/hubl-circle-team.pug
index e02fd4a27affc3befb85e884c9837aa6ef711fbd..2aff8315eec8d6fd121983805e1a213fa1bc0933 100644
--- a/src/templates/hubl-circle-team.pug
+++ b/src/templates/hubl-circle-team.pug
@@ -1,8 +1,8 @@
 include hubl-user-avatar.pug
 
-sib-widget(name='hubl-circle-team-template')
+solid-widget(name='hubl-circle-team-template')
   template
-    sib-display.user-thumb.is-spaced(
+    solid-display.user-thumb.is-spaced(
       data-src='${await value.user}'
       fields='account.picture, sup(name, isadmin), sub(profile.city)'
       value-isadmin='${await value.is_admin}'
@@ -16,5 +16,5 @@ sib-widget(name='hubl-circle-team-template')
       widget-isadmin='hubl-circle-user-admin'
     )
 
-sib-widget(name='hubl-circle-user-admin')
+solid-widget(name='hubl-circle-user-admin')
   template ${(await value) != "false" ? "Administrateur" : ""}
diff --git a/src/templates/hubl-project-team.pug b/src/templates/hubl-project-team.pug
index f00ddca63e735ae782426197bd5fe69386cb6224..f8334c70745f4a8bec2bbf04aa23696e5efa0377 100644
--- a/src/templates/hubl-project-team.pug
+++ b/src/templates/hubl-project-team.pug
@@ -1,8 +1,8 @@
 include hubl-user-avatar.pug
 
-sib-widget(name='hubl-project-team')
+solid-widget(name='hubl-project-team')
   template
-    sib-display.user-thumb.is-spaced(
+    solid-display.user-thumb.is-spaced(
       data-src='${await value}'
       fields='user.account.picture, sup(user.name, isadmin), sub(user.profile.city, name)'
       value-isadmin='${await value.is_admin}'
@@ -18,5 +18,5 @@ sib-widget(name='hubl-project-team')
       widget-isadmin='hubl-project-user-admin'
     )
 
-sib-widget(name='hubl-project-user-admin')
+solid-widget(name='hubl-project-user-admin')
   template ${(await value) == "false" ? "" : "Administrateur"}
diff --git a/src/templates/hubl-user-avatar.pug b/src/templates/hubl-user-avatar.pug
index 08a287644417975df7ce8b1a67b91478026cd10f..68cffa1cb7f027cfb80441f843011596a9d8026b 100644
--- a/src/templates/hubl-user-avatar.pug
+++ b/src/templates/hubl-user-avatar.pug
@@ -1,2 +1,2 @@
-sib-widget(name='hubl-user-avatar')
+solid-widget(name='hubl-user-avatar')
   template ${await value ? `<img src="${await value}" style="max-width:100%; max-height: 100%;" />` : `<object type="image/svg+xml" data="/images/alien.svg"></object>`}
diff --git a/src/views/admin/page-admin-circles-create.pug b/src/views/admin/page-admin-circles-create.pug
index 5883464edbef1ab2bdcb17a46b3f59a8fdded597..2e94345d2dc9a06f31d5c79f5ef5bc9082a4398b 100644
--- a/src/views/admin/page-admin-circles-create.pug
+++ b/src/views/admin/page-admin-circles-create.pug
@@ -1,9 +1,9 @@
 div.content-box__info.flex
-  sib-link(class="backlink right", next='admin-circle-list') Retour
+  solid-link(class="backlink right", next='admin-circle-list') Retour
 
   h1.centered Créer un canal
 
-  sib-form.form.button-register(
+  solid-form.form.button-register(
     data-src=`${endpoints.circles || endpoints.post.circles}`
 
     fields='status, name, description'
diff --git a/src/views/admin/page-admin-circles.pug b/src/views/admin/page-admin-circles.pug
index 47278b60b5316dcbc0786ed8a594c998e9ece4b5..d6c1e010660d1131cb80a05a1fa999b846b5e638 100644
--- a/src/views/admin/page-admin-circles.pug
+++ b/src/views/admin/page-admin-circles.pug
@@ -1,8 +1,8 @@
 .content-box.flex.full-width.with-form
-  sib-router(default-route='admin-circle-list', hidden)
-    sib-route(name='admin-circle-list')
-    sib-route(name='admin-circle-create')
-    sib-route(name='circle-left')
+  solid-router(default-route='admin-circle-list', hidden)
+    solid-route(name='admin-circle-list')
+    solid-route(name='admin-circle-create')
+    solid-route(name='circle-left')
 
   div.content-box__header.flex.space-between
     h1.without-margin Administration
@@ -13,9 +13,9 @@
   #admin-circle-list.content-box__height(hidden)
     include ../../templates/hubl-user-avatar.pug
 
-    sib-widget(name='hubl-circle-owner')
+    solid-widget(name='hubl-circle-owner')
       template
-        sib-display.user-thumb.is-spaced(
+        solid-display.user-thumb.is-spaced(
           data-src='${await value}'
           fields='account.picture, sup(name), sub(username)'
 
@@ -33,7 +33,7 @@
 
         h3 Canaux
 
-        sib-link(
+        solid-link(
           class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
           next='admin-circle-create'
         ) Créer un canal
@@ -46,15 +46,18 @@
             div.w280 Administrateurs
             div.w280 Rejoindre
 
-          sib-widget(name='hubl-admin-circle-leave-button')
+          solid-widget(name='hubl-admin-circle-leave-button')
             template
-              sib-delete(
+              solid-delete(
                 class='circle-leave button text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
                 data-src="${src}"
                 data-label='Quitter'
               )
+              hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}` target-src='${src}')
+              hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}joinable/` target-src='${src}')
+              hubl-reactivity(bind-user nested-field="circles" target-src='${src}')
 
-          sib-display(
+          solid-display(
             class='table-body'
 
             bind-user
@@ -72,19 +75,22 @@
             order-by="circle.name"
           )
 
-          sib-widget(name='hubl-admin-circle-join-button')
+          solid-widget(name='hubl-admin-circle-join-button')
             template
-              sib-form.circle-join.button.text-bold.text-uppercase.reversed.button-primary.bordered.with-icon.icon-arrow-right-circle.flex(
+              solid-form.circle-join.button.text-bold.text-uppercase.reversed.button-primary.bordered.with-icon.icon-arrow-right-circle.flex(
                 data-src='${value}'
 
                 fields='user.username'
                 value-user.username='hubl-workaround-493'
-                widget-user.username='sib-form-hidden'
+                widget-user.username='solid-form-hidden'
 
                 submit-button='Rejoindre'
               )
+              hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}` target-src='${value}')
+              hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}joinable/` target-src='${value}')
+              hubl-reactivity(bind-user nested-field="circles" target-src='${value}')
 
-          sib-display(
+          solid-display(
             class='table-body'
 
             data-src=`${endpoints.circles || endpoints.get.circles}joinable/`
diff --git a/src/views/admin/page-admin-projects-create.pug b/src/views/admin/page-admin-projects-create.pug
index e038c7c967e0553fb6b5655379a17111bc9996f4..57c9748747640a0f1e87bc0eaa6fca1c6f33c48f 100644
--- a/src/views/admin/page-admin-projects-create.pug
+++ b/src/views/admin/page-admin-projects-create.pug
@@ -1,48 +1,50 @@
 div.content-box__info.flex
-  sib-link(class="backlink right" next='admin-project-list') Retour
+  solid-link(class="backlink right" next='admin-project-list') Retour
 
-  sib-widget(name="hubl-admin-project-add-user")
+  solid-widget(name="hubl-admin-project-add-user")
     template
-      sib-form(
+      solid-form(
         data-holder
         fields='user, project'
         range-user=`${endpoints.users || endpoints.get.users}`
         value-project='${src}'
-        widget-project='sib-form-hidden'
+        widget-project='solid-form-hidden'
         naked
       )
 
-  h1.centered Créer un projet
+  h1.centered Créer un nouveau projet
 
-  sib-form.form.button-register(
+  solid-form.form.button-register(
     data-src=`${endpoints.projects || endpoints.post.projects}`
     
-    fields='line-1(customer, name), line-2(project.description), line-3(businessProvider.name, businessProvider.fee), line-4(captain)'
+    fields='status, line-1(customer.name, name), description, line-2(captain), logo'
 
-		label-customer='Nom du client*'
-    class-customer='form-label is-light is-half-width'
-    range-customer=`${endpoints.customers || endpoints.get.customers}`
-    widget-customer='sib-form-auto-completion'
+    label-status='Statut du canal*'
+    widget-status='hubl-status'
+    class-status='form-label is-light is-full-width'
 
-		label-name='Nom du projet*'
-    class-name='form-label is-light is-half-width input-text-like'
-
-		label-project.description='Description du projet'
-    class-project.description='form-label is-light is-full-width input-text-like'
-    widget-project.description='sib-form-textarea'
+    label-description='Description du projet'
+    class-description='form-label is-light is-full-width input-text-like'
+    widget-description='solid-form-textarea'
 
-		label-businessProvider.name='Apporteur d\'affaire*'
-    class-businessProvider.name='form-label is-light is-half-width input-text-like'
+		label-customer.name='Nom du client*'
+    class-customer.name='form-label is-light is-half-width input-text-like'
 
-		label-businessProvider.fee='Contribution'
-    class-businessProvider.fee='form-label is-light is-half-width input-text-like'
+		label-name='Nom du projet*'
+    class-name='form-label is-light is-half-width input-text-like'
 
-    label-captain='Capitaine du projet'
+    label-captain='Capitaine du projet*'
     range-captain=`${endpoints.users || endpoints.get.users}`
     class-captain='form-label is-light is-half-width'
-    widget-captain='sib-form-auto-completion'
+    widget-captain='solid-form-auto-completion'
+
+    class='input-text-like'
+    widget-logo="solid-form-file"
+    label-logo="Télécharger un logo"
+    class-logo='select-add'
+    upload-url-logo=`${endpoints.uploads || endpoints.post.uploads}`
 
     next='admin-project-list'
 
-    submit-button='Enregistrer'
+    submit-button='Enregistrer et ajouter des membres'
   )
diff --git a/src/views/admin/page-admin-projects.pug b/src/views/admin/page-admin-projects.pug
index 3323a09f6ebcdf417a4f5055888230184983ed7f..a5b066dab45294e3234b3386f357ad998049573f 100644
--- a/src/views/admin/page-admin-projects.pug
+++ b/src/views/admin/page-admin-projects.pug
@@ -1,8 +1,8 @@
 .content-box.flex.full-width.with-form
-  sib-router(default-route='admin-project-list', hidden)
-    sib-route(name='admin-project-list')
-    sib-route(name='admin-project-create')
-    sib-route(name='project-left')
+  solid-router(default-route='admin-project-list', hidden)
+    solid-route(name='admin-project-list')
+    solid-route(name='admin-project-create')
+    solid-route(name='project-left')
 
   div.content-box__header.flex.space-between
     h1.without-margin Administration
@@ -17,30 +17,33 @@
     div.content-box__info.flex
       div.admin-header.flex
         h3 Projets
-        sib-link(
+        solid-link(
           class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
           next='admin-project-create'
-        ) Créer un projet
+        ) Créer un nouveau projet
 
       .table-wrapper
         .table
           div.table-header.grey-color
-            div.w262 Nom
-            div.w262 Administrateurs
-            div.w262 Capitaines
-            div.w262 Accès
+            div.w280 Nom
+            div.w280 Administrateurs
+            div.w280 Capitaines
+            div.w230 Rejoindre
 
-          sib-widget(name="hubl-admin-project-leave-button")
+          solid-widget(name="hubl-admin-project-leave-button")
             template
-              sib-delete(
+              solid-delete(
                 class='button text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
                 data-src="${src}"
                 data-label='Quitter'
               )
+              hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}` target-src='${src}')
+              hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}joinable/` target-src='${src}')
+              hubl-reactivity(bind-user nested-field="projects" target-src='${src}')
 
-          sib-widget(name='hubl-project-captain')
+          solid-widget(name='hubl-project-captain')
             template
-              sib-display.user-thumb.is-spaced(
+              solid-display.user-thumb.is-spaced(
                 data-src='${await value}'
                 fields='account.picture, sup(name), sub(username)'
 
@@ -51,48 +54,81 @@
                 widget-account.picture='hubl-user-avatar'
               )
 
-          sib-widget(name='hubl-project-admins')
+          solid-widget(name='hubl-project-admins')
             template
-              sib-display(
+              solid-display(
                 data-src='${value}'
                 fields='user'
                 search-fields='is_admin'
                 search-value-is_admin='true'
-                search-widget-is_admin='sib-form-hidden'
+                search-widget-is_admin='solid-form-hidden'
                 widget-user='hubl-project-captain'
               )
 
-          sib-widget(name="hubl-admin-project-buttons")
+          solid-widget(name='hubl-admin-project-leave-button')
             template
-              sib-display(
+              solid-delete(
+                class='button text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
+                data-src="${src}"
+                data-label='Quitter'
+              )
+
+          solid-display(
+            class='table-body'
+
+            bind-user
+            nested-field="projects"
+            fields='project.name, project.members, project.captain, leaveButton'
+
+            class-project.name='w280 cell border cell-with-name'
+            class-project.members='w280 cell border cell-with-id-card'
+            class-project.captain='w280 cell border cell-with-id-card'
+            class-leaveButton='w230 cell border cell-with-buttons'
+
+            action-leaveButton="joinButton"
+            widget-leaveButton="hubl-admin-project-leave-button"
+
+            widget-project.captain='hubl-project-captain'
+            widget-project.members='hubl-project-admins'
+
+            order-by="project.name"
+          )
+
+          solid-widget(name='hubl-admin-project-join-button')
+            template
+              solid-form.button.text-bold.text-uppercase.reversed.button-primary.bordered.with-icon.icon-arrow-right-circle.flex(
                 data-src='${src}'
-                nested-field='members'
-                fields='relation'
-                action-relation='relation'
-                widget-relation='hubl-admin-project-leave-button'
-                search-fields='user'
-                search-widget-user='sib-form-hidden'
-                search-value-user="-"
-                hubl-inherit-user-id="search-value-user"
+                nested-field="members"
+
+                fields='user.username'
+                value-user.username='hubl-workaround-493'
+                widget-user.username='solid-form-hidden'
+
+                submit-button='Rejoindre'
               )
+              hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}` target-src='${src}')
+              hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}joinable/` target-src='${src}')
+              hubl-reactivity(bind-user nested-field="projects" target-src='${src}')
 
-          sib-display(
+          solid-display(
             class='table-body'
 
-            data-src=`${endpoints.projects || endpoints.get.projects}`
-            fields='name, members, captain, buttons'
+            data-src=`${endpoints.projects || endpoints.get.projects}joinable/`
+            fields='name, members, captain, joinButton'
 
-            class-name='w262 border cell-with-name hashtag'
-            class-members='w262 border'
-            class-captain='w262 border cell-with-id-card'
-            class-buttons='w262 border cell-with-buttons'
+            class-name='w280 cell border cell-with-name'
+            class-members='w280 cell border cell-with-id-card'
+            class-captain='w280 cell border cell-with-id-card'
+            class-joinButton='w230 cell border cell-with-buttons'
 
-            widget-buttons="admin-project-buttons"
-            action-buttons="buttons"
+            action-joinButton="joinButton" # Workaround: I need members two times
+            widget-joinButton="hubl-admin-project-join-button"
 
             widget-captain='hubl-project-captain'
             widget-members='hubl-project-admins'
+
+            order-by="name"
           )
 
-  #admin-project-create.content-box__height(hidden)
+  #admin-project-create(hidden)
     include page-admin-projects-create.pug
\ No newline at end of file
diff --git a/src/views/admin/page-admin-users-create.pug b/src/views/admin/page-admin-users-create.pug
index a90d8c7fbd6a5ff0d137c59dc8f42db73f66a093..f52dc813c2ca679071f670b2e946ca0cd759f201 100644
--- a/src/views/admin/page-admin-users-create.pug
+++ b/src/views/admin/page-admin-users-create.pug
@@ -1,9 +1,9 @@
 div.content-box__info.flex
-  sib-link(class='backlink right', next='admin-users-list') Retour
+  solid-link(class='backlink right', next='admin-users-list') Retour
 
   h1.centered Ajouter un utilisateur à la plateforme
 
-  sib-form.form.button-register(
+  solid-form.form.button-register(
     data-src=`${endpoints.users || endpoints.post.users}`
 
     fields='line-1(first_name, last_name), line-2(username, email), line-3(password)'
@@ -19,7 +19,7 @@ div.content-box__info.flex
     label-email='E-mail *'
 
     value-password=''
-    widget-password='sib-form-hidden'
+    widget-password='solid-form-hidden'
 
     next='admin-users-list'
 
diff --git a/src/views/admin/page-admin-users-edit.pug b/src/views/admin/page-admin-users-edit.pug
index 519874947f25697e5341b588c6b8bb7071f1c632..d372cb35c6cf907ee773e003382d65da19793c45 100644
--- a/src/views/admin/page-admin-users-edit.pug
+++ b/src/views/admin/page-admin-users-edit.pug
@@ -1,14 +1,14 @@
 div.content-box__info.flex
-  sib-link(class='backlink right', next='admin-users-list') Retour
+  solid-link(class='backlink right', next='admin-users-list') Retour
 
   h1.centered 
     span Modifier un utilisateur
-    sib-display(
+    solid-display(
       bind-resources=''
       fields='name'
     )  
 
-  sib-form.form.button-register(
+  solid-form.form.button-register(
     bind-resources=''
 
     fields='line-1(first_name, last_name), line-2(username, email)'
diff --git a/src/views/admin/page-admin-users.pug b/src/views/admin/page-admin-users.pug
index bae8156002b1faf3df10fbd4bee765e0b9b001e6..84cd0e78cbafe99f79fed67a2abf7ff3f552abd8 100644
--- a/src/views/admin/page-admin-users.pug
+++ b/src/views/admin/page-admin-users.pug
@@ -1,17 +1,17 @@
 .content-box.flex.full-width.with-form
-  sib-router(default-route='admin-users-list', hidden)
-    sib-route(name='admin-users-list')
-    sib-route(name='admin-users-create')
-    sib-route(name='admin-users-edit')
+  solid-router(default-route='admin-users-list', hidden)
+    solid-route(name='admin-users-list')
+    solid-route(name='admin-users-create')
+    solid-route(name='admin-users-edit')
 
   div.content-box__header.flex.space-between
     h1.without-margin Administration
     button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle MENU
   
-  sib-widget(name='hubl-sib-action-custom')
+  solid-widget(name='hubl-solid-action-custom')
     template
-      sib-ac-checker(data-src="${src}", permission='acl:Write')
-        sib-link(
+      solid-ac-checker(data-src="${src}", permission='acl:Write')
+        solid-link(
           class='button rounded reversed button-primary bordered icon-pencil'
           data-src="${src}"
           next="${value}"
@@ -22,8 +22,8 @@
     div.content-box__info.flex
       div.admin-header.flex
         h3 Utilisateurs
-        sib-ac-checker(data-src=`${endpoints.users || endpoints.post.users}`, permission='acl:Append')
-          sib-link(
+        solid-ac-checker(data-src=`${endpoints.users || endpoints.post.users}`, permission='acl:Append')
+          solid-link(
             class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
             next='admin-users-create'
           ) Ajouter un utilisateur
@@ -34,7 +34,7 @@
             div.w280 Nom
             div.w70
         
-          sib-display(
+          solid-display(
             class='table-body'
             data-src=`${endpoints.users || endpoints.get.users}`
             fields='cell-1(user-thumb(account.picture, sup(name), sub(username))), actions'
@@ -48,7 +48,7 @@
             label-actions='Edit'
             action-actions='admin-users-edit'
             class-actions='w70 border cell-with-buttons'
-            widget-actions='hubl-sib-action-custom'
+            widget-actions='hubl-solid-action-custom'
 
             order-by='username'
           )
diff --git a/src/views/circle/page-circle-chat.pug b/src/views/circle/page-circle-chat.pug
index 7e522a2a88deded43126362f6ec4a9c5a453b7c2..baee3eb69e6dab88eb51c9e84c1b528faba7b50f 100644
--- a/src/views/circle/page-circle-chat.pug
+++ b/src/views/circle/page-circle-chat.pug
@@ -1,5 +1,5 @@
 .chat-view
-  sib-chat(
+  solid-xmpp-chat(
     data-authentication='login',
     data-auto-login='true',
     data-bosh-service-url=`${xmpp}`,
diff --git a/src/views/circle/page-circle-edit.pug b/src/views/circle/page-circle-edit.pug
index 89e2b8fa00ba311efc912a1399719d156f490e55..979ec1cc044cc37ce39144c29ccb333da09cd0c4 100644
--- a/src/views/circle/page-circle-edit.pug
+++ b/src/views/circle/page-circle-edit.pug
@@ -2,13 +2,13 @@ div.content-box__info
 
   include ../../templates/hubl-user-avatar.pug
 
-  sib-widget(name='hubl-user-groups')
+  solid-widget(name='hubl-user-groups')
     template ${await value.name}
 
-  sib-widget(name='hubl-team-template-edit')
+  solid-widget(name='hubl-team-template-edit')
     template
-      sib-display.user-thumb.is-spaced(
-        class='w355 cell border cell-with-id-card user-thumb'
+      solid-display.user-thumb.is-spaced(
+        class='w280 cell border cell-with-id-card user-thumb'
         data-src='${await value.user}'
         fields='account.picture, sup(name, groups), sub(profile.city)'
 
@@ -23,30 +23,30 @@ div.content-box__info
         widget-groups='hubl-user-groups'
       )
 
-      sib-ac-checker(
-        class='W152 cell border'
+      solid-ac-checker(
+        class='w162 cell border'
         permission="acl:Delete"
         data-src="${value['@id']}"
       )
-        sib-delete(
+        solid-delete(
           class='button text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
           data-src="${value['@id']}"
           data-label='Retirer'
         )
 
       //- Only to show the table grid
-      sib-ac-checker(
-        class='W152 cell border'
+      solid-ac-checker(
+        class='w162 cell border'
         no-permission="acl:Delete"
         data-src="${value['@id']}"
       )
 
-  sib-link(class="backlink right", bind-resources, next='circle-profile') Retour
+  solid-link(class="backlink right", bind-resources, next='circle-profile') Retour
 
-  sib-ac-checker(permission='acl:Write', bind-resources)
+  solid-ac-checker(permission='acl:Write', bind-resources)
     h1 Modifie ton canal
 
-    sib-form.form.button-register(
+    solid-form.form.button-register(
       bind-resources
 
       fields='status, line-1(name, owner), description'
@@ -64,7 +64,7 @@ div.content-box__info
       class-description='form-label is-light is-full-width input-text-like'
       class-status='form-label is-light is-full-width member-select color'
 
-      widget-owner='sib-form-auto-completion'
+      widget-owner='solid-form-auto-completion'
 
       partial=''
 
@@ -72,10 +72,10 @@ div.content-box__info
       next='circle-information'
     )
 
-  h2 Liste des membres:
+  h2 Liste des membres :
 
-  sib-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
-    sib-form.block.select-add(
+  solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
+    solid-form.block.select-add(
       bind-resources 
       nested-field='members'
       fields='user'
@@ -83,7 +83,7 @@ div.content-box__info
 
       class-user='team form-label is-light'
       label-user=''
-      widget-user='sib-form-auto-completion'
+      widget-user='solid-form-auto-completion'
 
       submit-button='Ajouter un membre'
     )
@@ -91,11 +91,11 @@ div.content-box__info
   .table-wrapper
     .table
       div.table-header.grey-color
-        div.w355 Nom
-        div.W152 Accès
+        div.w280 Nom
+        div.w162 Accès
 
       //-class='table-body'
-      sib-display(
+      solid-display(
         class='table-body'
         bind-resources
         fields='members'
diff --git a/src/views/circle/page-circle-left.pug b/src/views/circle/page-circle-left.pug
index 8ad8fe8996cc8bc8fab4f206ced64d18bcb54cc4..0a6b7003694d02d3e1ef520d99414c1e6ebed6f9 100644
--- a/src/views/circle/page-circle-left.pug
+++ b/src/views/circle/page-circle-left.pug
@@ -2,4 +2,4 @@
   div.content-box__info.flex(style="padding: 15px")
 
     p Tu as quitté ce canal.
-    p Pour le rejoindre à nouveau, rends-toi dans le panneau <sib-link next="admin-circle-list">administration</sib-link> ou contacte un administrateur.
+    p Pour le rejoindre à nouveau, rends-toi dans le panneau <solid-link next="admin-circle-list">administration</solid-link> ou contacte un administrateur.
diff --git a/src/views/circle/page-circle-profile.pug b/src/views/circle/page-circle-profile.pug
index 7f9688172a6e90e0a3888c29572f2a41d9f277f0..df4f59e7b2662c12008818ba82bea0b9e09b34b5 100644
--- a/src/views/circle/page-circle-profile.pug
+++ b/src/views/circle/page-circle-profile.pug
@@ -1,13 +1,14 @@
-sib-router(default-route='circle-profile', hidden)
-  sib-route(name='circle-profile')
-  sib-route(name='circle-edit')
+solid-router(default-route='circle-profile', hidden)
+  solid-route(name='circle-profile')
+  solid-route(name='circle-edit')
 
 #circle-profile(hidden)
   include ../../templates/hubl-circle-team.pug
-  .content-box__info
+  
+  .content-box__info.flex
 
     .flex.space-between.with-padding.mobile-vertical-align
-      sib-display.mobile-margin__bottom(
+      solid-display.mobile-margin__bottom(
         bind-resources
         fields='creationDateSet(title, creationDate)'
 
@@ -15,53 +16,53 @@ sib-router(default-route='circle-profile', hidden)
 
         value-title='Date de création : '
 
-        widget-creationDate='sib-display-date'
+        widget-creationDate='solid-display-date'
       )
-      sib-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
-        sib-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='circle-edit' bind-resources) Modifier et ajouter un membre
+      solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
+        solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='circle-edit' bind-resources) Modifier et ajouter un membre
 
 
     div.flex.desktop-button__end
-      sib-ac-checker(permission='acl:Delete', bind-resources)
-        sib-delete(
+      solid-ac-checker(permission='acl:Delete', bind-resources)
+        solid-delete(
           class='button mobile-full-width text-bold text-uppercase button-primary bordered with-icon icon-trash'
           bind-resources
           data-label='Supprimer le canal'
         )
 
-      sib-widget(name='hubl-circle-leave-button')
+      solid-widget(name='hubl-circle-leave-button')
         template
-          sib-delete(
+          solid-delete(
             class='button mobile-full-width desktop-btn-margin__left text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
             data-src="${src}"
             data-label='Quitter le canal'
           )
 
-      sib-widget(name='hubl-circle-join-button')
+      solid-widget(name='hubl-circle-join-button')
         template
           button.button.desktop-btn-margin__left.text-bold.text-uppercase.reversed.button-primary.bordered.with-icon.icon-arrow-right-circle.flex
-            sib-form(
+            solid-form(
               data-src=''
               nested-field='members'
 
               fields='user.@id'
               label-user.@id=''
               value-user.@id=''
-              widget-user.@id='sib-form-hidden'
+              widget-user.@id='solid-form-hidden'
 
               hubl-inherit-bind-user2input="input[name='user.@id']"
 
               submit-button='Rejoindre le canal'
             )
 
-      sib-display(
+      solid-display(
         bind-resources
         nested-field='members'
         fields='relation'
         action-relation='relation'
         widget-relation='hubl-circle-leave-button'
         search-fields='user'
-        search-widget-user='sib-form-hidden'
+        search-widget-user='solid-form-hidden'
         search-value-user=""
         empty-widget='hubl-circle-join-button'
         hubl-inherit-bind-resources='hubl-circle-join-button'
@@ -70,7 +71,7 @@ sib-router(default-route='circle-profile', hidden)
 
     h2 Membres :
 
-    sib-display.block(
+    solid-display.block(
       bind-resources
       fields='members'
 
diff --git a/src/views/job-offer/page-job-offer-create.pug b/src/views/job-offer/page-job-offer-create.pug
index bc9c1d6f1280ae2a63d94407b96f44947a7d09ad..113c06bad7b8a52fcaeab9d5dbd05b9ebe62615f 100644
--- a/src/views/job-offer/page-job-offer-create.pug
+++ b/src/views/job-offer/page-job-offer-create.pug
@@ -1,7 +1,7 @@
 .content-box.with-padding.with-form
   h1 Post a new job offer
   
-  sib-form(
+  solid-form(
     data-src=`${endpoints.joboffers || endpoints.post.joboffers}`
     range-skills=`${endpoints.skills || endpoints.get.skills}`
 
@@ -12,17 +12,16 @@
     
     class-description='field form-label is-light is-expanded'
     label-description='Description*'
-    widget-description='sib-form-textarea'
+    widget-description='solid-form-textarea'
     
     class-skills='form-label is-dark select-skills'
     label-skills='The required skills for this mission:*'
-    multiple-skills='sib-multiple-select'
-    widget-skills='sib-form-auto-completion'
+    multiple-skills='solid-multiple-select'
+    widget-skills='solid-form-auto-completion'
 
     class-closingDate='form-label is-dark'
     label-closingDate='Publication end date:*'
-    widget-closingDate='sib-form-date'
+    widget-closingDate='solid-form-date'
     
     next='job-offers'
   )
-
diff --git a/src/views/job-offer/page-job-offer-edit.pug b/src/views/job-offer/page-job-offer-edit.pug
index 7fde4ffaae003f09e588e1d0abc83689e5741611..5693c91be86d6fe734e8397fc4a87b02066050cb 100644
--- a/src/views/job-offer/page-job-offer-edit.pug
+++ b/src/views/job-offer/page-job-offer-edit.pug
@@ -1,7 +1,7 @@
 .content-box.with-padding.with-form
   h1 Edit your job offer
   
-  sib-form(
+  solid-form(
     bind-resources
     range-skills=`${endpoints.skills || endpoints.get.skills}`
 
@@ -12,17 +12,16 @@
     
     class-description='field form-label is-light is-expanded'
     label-description='Description*'
-    widget-description='sib-form-textarea'
+    widget-description='solid-form-textarea'
 
     class-skills='form-label is-dark select-skills'
     label-skills='The required skills for this mission:*'
-    multiple-skills='sib-multiple-select'
-    widget-skills='sib-form-auto-completion'
+    multiple-skills='solid-multiple-select'
+    widget-skills='solid-form-auto-completion'
     
     class-closingDate='form-label is-dark'
     label-closingDate='Publication end date:*'
-    widget-closingDate='sib-form-date'
+    widget-closingDate='solid-form-date'
 
     next='job-offers'
   )
-
diff --git a/src/views/project/page-project-chat.pug b/src/views/project/page-project-chat.pug
index c7aed59f59195398c5be999e1131d0aa4b440114..add91abb78c02ac43ba4858ff8a9644cee920aa8 100644
--- a/src/views/project/page-project-chat.pug
+++ b/src/views/project/page-project-chat.pug
@@ -1,5 +1,5 @@
 .content-box.flex.full-width.chat-view
-  sib-chat(
+  solid-xmpp-chat(
     data-authentication='login',
     data-auto-login='true',
     data-bosh-service-url=`${xmpp}`,
diff --git a/src/views/project/page-project-edit.pug b/src/views/project/page-project-edit.pug
index a9d0411a6bae5541f51fa64b5c936237846f2a27..cce893a145d36c98e46a44321899cc9304097320 100644
--- a/src/views/project/page-project-edit.pug
+++ b/src/views/project/page-project-edit.pug
@@ -2,36 +2,48 @@ div.content-box__info
 
   include ../../templates/hubl-user-avatar.pug
 			
-  sib-link(class='backlink right', bind-resources, next='project-profile') Retour
+  solid-link(class='backlink right', bind-resources, next='project-profile') Retour
 
   h1 Modifie ton projet
 
-  sib-form.form.button-register(
+  solid-form.form.button-register(
 	  bind-resources
 	
-	  fields='line-1(customer, name), description, line-2(businessProvider, businessProviderFee)'
+	  fields='status, line-1(customer.name, name), description'
+
+    label-status='Statut du canal*'
+    widget-status='hubl-status'
+    class-status='form-label is-light is-full-width member-select color'
 
-    class-customer='form-label is-light is-half-width'
-    widget-customer='sib-form-auto-completion'
-    class-name='form-label is-light is-half-width input-text-like'
-    class-description='form-label is-light is-full-width input-text-like'
-    label-customer='Client*'
-    range-customer=`${endpoints.customers || endpoints.get.customers}`
     label-name='Nom du projet*'
+    class-name='form-label is-light is-half-width input-text-like'
+
+		label-customer.name='Nom du client*'
+    class-customer.name='form-label is-light is-half-width input-text-like'
+
     label-description='Description du projet'
-    widget-description='sib-form-textarea'
+    class-description='form-label is-light is-full-width input-text-like'
+    widget-description='solid-form-textarea'
 
-    class-businessprovider='form-label is-light is-half-width input-text-like'
-    class-businessproviderfee='form-label is-light is-half-width input-text-like'
-    label-businessprovider='Apporteur d\'affaire'
-    label-businessproviderfee='Montant de la contribution'
+    partial=""
 
     submit-button='Enregistrer'
+    next='project-information'
+  )
+
+  h2 Photo du projet
+
+  solid-form.form-picture(
+	  bind-resources
+	  fields='customer.logo'
+    widget-customer.logo="hubl-user-avatar"
+    submit-button='Edit'
+    next='project-picture'
   )
 
   h2 Liste des membres :
 
-  sib-form.block.select-add.button-add(
+  solid-form.block.select-add(
     bind-resources 
     nested-field='members'
     fields='user'
@@ -39,7 +51,7 @@ div.content-box__info
 
     class-user='team form-label is-light'
     label-user=''
-    widget-user='sib-form-auto-completion'
+    widget-user='solid-form-auto-completion'
 
     submit-button='Ajouter un membre'
   )
@@ -47,11 +59,11 @@ div.content-box__info
   .table-wrapper
     .table
       div.table-header.grey-color
-        div.w355 Nom
-        div.W152 Accès
+        div.w280 Nom
+        div.w162 Accès
 
       //-class='table-body'
-      sib-display(
+      solid-display(
         class='table-body'
         bind-resources
         fields='members'
diff --git a/src/views/project/page-project-left.pug b/src/views/project/page-project-left.pug
index 71135fc9d96ca92b95a1931befe65914970a75e5..0283db46c861e16019064dcbbb168cfa1fbdb723 100644
--- a/src/views/project/page-project-left.pug
+++ b/src/views/project/page-project-left.pug
@@ -2,4 +2,4 @@
   div.content-box__info.flex(style="padding: 15px")
 
     p Tu as quitté ce projet.
-    p Ceci est un groupe privé. Pour le rejoindre, rends-toi dans le panneau <sib-link next="admin-project-list">administration</sib-link> et demande une invitation.
+    p Ceci est un groupe privé. Pour le rejoindre, rends-toi dans le panneau <solid-link next="admin-project-list">administration</solid-link> et demande une invitation.
diff --git a/src/views/project/page-project-picture.pug b/src/views/project/page-project-picture.pug
new file mode 100644
index 0000000000000000000000000000000000000000..9257a738b6722db555e93efd46acbf9dc8f20a35
--- /dev/null
+++ b/src/views/project/page-project-picture.pug
@@ -0,0 +1,15 @@
+div.content-box__info
+			
+  solid-link(class='backlink right', bind-resources, next='project-edit') Retour
+
+  h1 Modifier l'image du projet
+  
+  solid-picture(
+    bind-resources
+    upload-src=`${endpoints.uploads || endpoints.post.uploads}`
+    upload-id="solid-project-edit-picture"
+    nested-fields='customer'
+    fields='logo'
+    next='project-edit'
+    additional='name'
+  )
diff --git a/src/views/project/page-project-profile.pug b/src/views/project/page-project-profile.pug
index bb0f97cc6d61b6d9cee35f22a57dc4870bcc41d7..c3167df2d60ff5796aa34851d9738ad12011d63c 100644
--- a/src/views/project/page-project-profile.pug
+++ b/src/views/project/page-project-profile.pug
@@ -1,6 +1,6 @@
-sib-router(default-route='project-profile', hidden)
-  sib-route(name='project-profile')
-  sib-route(name='project-edit')
+solid-router(default-route='project-profile', hidden)
+  solid-route(name='project-profile')
+  solid-route(name='project-edit')
 
 #project-profile(hidden)
   include ../../templates/hubl-captain.pug
@@ -10,7 +10,7 @@ sib-router(default-route='project-profile', hidden)
   .content-box__info.flex
 
     .flex.space-between.with-padding.mobile-vertical-align
-      sib-display.mobile-margin__bottom(
+      solid-display.mobile-margin__bottom(
         bind-resources
         fields='creationDateSet(title, creationDate)'
 
@@ -18,14 +18,29 @@ sib-router(default-route='project-profile', hidden)
 
         value-title='Date de création : '
 
-        widget-creationDate='sib-display-date'
+        widget-creationDate='solid-display-date'
       )
-      sib-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
-        sib-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='project-edit' bind-resources) Modifier et ajouter un membre
+      solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
+        solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='project-edit' bind-resources) Modifier et ajouter un membre
+      
+    solid-display(
+        class='flex desktop-button__end'
+        bind-resources
+        nested-field='members'
+        fields='relation'
+
+        action-relation='relation'
+        widget-relation='hubl-project-leave-button'
+
+        search-fields='user'
+        search-widget-user='solid-form-hidden'
+        search-value-user=""
+
+        hubl-inherit-user-id="search-value-user"
+    )
 
-    
-    .flex.space-between.with-padding
-      sib-display(
+    .flex.space-between
+      solid-display(
         bind-resources
         fields='label-captain, captain'
 
@@ -33,48 +48,32 @@ sib-router(default-route='project-profile', hidden)
         class-label-captain='h2-like'
         widget-captain='hubl-captain'
       )
-      sib-display(
+      solid-display(
         class='customer-logo'
         bind-resources
         fields='customer.logo'
         
-        widget-customer.logo='sib-display-img'
+        widget-customer.logo='solid-display-img'
       )
 
     h2 Equipe :
 
-    sib-display(
+    solid-display.block(
       bind-resources
       fields='members'
 
-      widget-members='hubl-project-team'
       multiple-members
+      widget-members='hubl-project-team'
     )
 
-    sib-widget(name='hubl-project-leave-button')
+
+    solid-widget(name='hubl-project-leave-button')
       template
-        sib-delete(
+        solid-delete(
           class='button desktop-btn-margin__left text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
           data-src="${src}"
           data-label='Quitter le groupe'
         )
 
-    sib-display(
-      class='flex desktop-button__end'
-      bind-resources
-      nested-field='members'
-      fields='relation'
-
-      action-relation='relation'
-      widget-relation='hubl-project-leave-button'
-
-      search-fields='user'
-      search-widget-user='sib-form-hidden'
-      search-value-user=""
-
-      hubl-inherit-user-id="search-value-user"
-    )
-
-
 #project-edit.content-box__height(hidden)
   include page-project-edit.pug