diff --git a/app/adapters/user.js b/app/adapters/user.js
index f51c8cc12ca6a466c37be03d6535a2799b60dacf..ee4bca0c2242084f793c661aec963d72b83f475d 100644
--- a/app/adapters/user.js
+++ b/app/adapters/user.js
@@ -38,7 +38,6 @@ export default class UserAdapter extends ApplicationAdapter {
     let record, me_id;
 
     me_id = window.localStorage.getItem('me');
-
     if (me_id) {
       record = this.store.peekRecord('user', me_id);
 
@@ -46,7 +45,6 @@ export default class UserAdapter extends ApplicationAdapter {
         return record;
       }
     }
-
     record = await this.store.queryRecord(
         'user', { me: true }
     );
diff --git a/app/components/nav/sidebar.hbs b/app/components/nav/sidebar.hbs
index ce0abdbca6b8e318601a12c9e0f42a9a2b420d88..1c2e813af4c916955efbeef81a60d7cbb3b45094 100644
--- a/app/components/nav/sidebar.hbs
+++ b/app/components/nav/sidebar.hbs
@@ -2,7 +2,7 @@
   <div class="d-flex flex-column flex-shrink-0 p-3 text-white bg-dark sidebar-open" >
       <LinkTo
           @route="authenticated.nodes"
-          @model="{{@home_folder.id}}"
+          @model="{{@home_folder_id}}"
           class="d-flex brand text-white text-decoration-none">
             <img
               src="/assets/images/logo_bbg.svg"
@@ -15,7 +15,7 @@
         <li>
           <LinkTo
             @route="authenticated.nodes"
-            @model="{{@home_folder.id}}"
+            @model="{{@home_folder_id}}"
             class="nav-link text-white" aria-current="page">
             <i class="fa fa-home me-2"></i>Home
           </LinkTo>
@@ -40,7 +40,7 @@
         <li>
           <LinkTo
             @route="authenticated.nodes"
-            @model="{{@inbox_folder.id}}"
+            @model="{{@inbox_folder_id}}"
             class="nav-link text-white" aria-current="page">
             <i class="bi-inbox me-2"></i>Inbox
           </LinkTo>
@@ -76,7 +76,7 @@
 <div class="d-flex flex-column flex-shrink-1 text-white bg-dark" >
     <LinkTo
         @route="authenticated.nodes"
-        @model="{{@home_folder.id}}"
+        @model="{{@home_folder_id}}"
         class="d-flex brand text-white text-decoration-none px-3 pb-0  pt-2">
           <img
             src="/assets/images/logo_bbg.svg"
@@ -88,7 +88,7 @@
       <li class="nav-item">
         <LinkTo
           @route="authenticated.nodes"
-          @model="{{@home_folder.id}}"
+          @model="{{@home_folder_id}}"
           {{tooltip title="Home"}}
           class="nav-link text-white">
           <i class="fa fa-home me-2"></i>
@@ -97,7 +97,7 @@
       <li>
         <LinkTo
           @route="authenticated.nodes"
-          @model="{{@inbox_folder.id}}"
+          @model="{{@inbox_folder_id}}"
           {{tooltip title="Inbox"}}
           class="nav-link text-white" >
           <i class="bi-inbox me-2"></i>
diff --git a/app/controllers/authenticated/nodes.js b/app/controllers/authenticated/nodes.js
index 811a7f1f4368cafc7a01f06b34886c7dedef3c26..e927302e58bf077cec2f798bb423e9874228ba06 100644
--- a/app/controllers/authenticated/nodes.js
+++ b/app/controllers/authenticated/nodes.js
@@ -34,5 +34,4 @@ export default class NodesController extends DualPanelBaseController {
       this.extra_type = 'folder';
     }
   }
-
 }
diff --git a/app/controllers/login.js b/app/controllers/login.js
index 78f4a219598c2819a77c1457ccf9577f99dfdee1..04a374cfbbb1f76f7415dff5fb65a007a17bfb69 100644
--- a/app/controllers/login.js
+++ b/app/controllers/login.js
@@ -10,6 +10,7 @@ export default class LoginController extends Controller {
   @tracked in_progress = false;
   @service session;
   @service router;
+  @service currentUser;
 
   @action
   async authenticate(username, password) {
@@ -35,7 +36,11 @@ export default class LoginController extends Controller {
 
     if (this.session.isAuthenticated) {
       // What to do with all this success?
-      this.router.transitionTo('authenticated.index');
+      await this.currentUser.loadCurrentUser();
+      this.router.transitionTo(
+        'authenticated.nodes',
+        this.currentUser.user.home_folder.get('id')
+      );
     }
   }
 
diff --git a/app/models/user.js b/app/models/user.js
index 48beb36ce96ebf4b5fea01d45e0d8f9d17311ce4..42a2c37e58e1f7af442cdcd5dc4050ebb56af533 100644
--- a/app/models/user.js
+++ b/app/models/user.js
@@ -23,23 +23,6 @@ class UserModel extends Model {
     return adapter.changePassword(this, new_password);
   }
 
-  async getHomeFolder() {
-    let home_id, adapter;
-
-    adapter = this.store.adapterFor('node');
-    home_id = this.home_folder.get('id');
-
-    return adapter.getFolder(home_id);
-  }
-
-  async getInboxFolder() {
-    let inbox_id, adapter;
-
-    adapter = this.store.adapterFor('node');
-    inbox_id = this.inbox_folder.get('id');
-
-    return adapter.getFolder(inbox_id);
-  }
 }
 
 export default UserModel;
diff --git a/app/routes/authenticated.js b/app/routes/authenticated.js
index 3aeff0acfd68a6e6a9c55fc67b6b14d7faeb8aa3..a1957fa5b850fefbd780b6a2e3ddcbb1bb7cc200 100644
--- a/app/routes/authenticated.js
+++ b/app/routes/authenticated.js
@@ -4,8 +4,19 @@ import BaseRoute from 'papermerge/routes/base';
 export default class AuthenticatedRoute extends BaseRoute {
 
   async model() {
-    return this.store.findAll('tag').then((tags) => {
-      return tags.filter(tag => tag.pinned);
-    });
+    let home_folder_id,
+      inbox_folder_id,
+      pinned_tags,
+      tags;
+
+    tags = await this.store.findAll('tag');
+    pinned_tags = tags.filter(tag => tag.pinned);
+
+    if (this.currentUser.user) {
+      home_folder_id = this.currentUser.user.home_folder.get('id');
+      inbox_folder_id = this.currentUser.user.inbox_folder.get('id');
+    }
+
+    return {pinned_tags, home_folder_id, inbox_folder_id};
   }
 }
diff --git a/app/routes/authenticated/index.js b/app/routes/authenticated/index.js
deleted file mode 100644
index f7931f5fba6e72253534f1b2e5475cc04aaca2b4..0000000000000000000000000000000000000000
--- a/app/routes/authenticated/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import Route from '@ember/routing/route';
-import { service } from '@ember/service';
-
-
-export default class IndexRoute extends Route {
-  @service store;
-  @service session;
-  @service router;
-  @service currentUser;
-
-  async beforeModel(transition) {
-    /* Redirects to user's home folder
-    */
-    let that = this;
-    this.session.requireAuthentication(transition, 'login');
-    await this.currentUser.loadCurrentUser();
-    this.currentUser.user.getHomeFolder().then((home_folder) => {
-      that.router.replaceWith("authenticated.nodes", home_folder.id);
-    });
-  }
-
-}
diff --git a/app/routes/authenticated/nodes.js b/app/routes/authenticated/nodes.js
index a4c022e6768953a93ea9ddbc6c195c6f716be934..b6819507c10dc900563f7bd503e7583a9d3bbf8f 100644
--- a/app/routes/authenticated/nodes.js
+++ b/app/routes/authenticated/nodes.js
@@ -1,10 +1,10 @@
-import Route from '@ember/routing/route';
-import { inject as service } from '@ember/service';
+import BaseRoute from 'papermerge/routes/base';
+import { service } from '@ember/service';
 
 import { getPanelInfo } from './utils';
 
 
-export default class NodesRoute extends Route {
+export default class NodesRoute extends BaseRoute {
   @service store;
   @service currentUser;
 
@@ -52,8 +52,6 @@ export default class NodesRoute extends Route {
         'last_document_version': extra_last_version,
         'pages': extra_pages_with_url,
       }
-      context['home_folder'] = this.currentUser.user.home_folder;
-      context['inbox_folder'] = this.currentUser.user.inbox_folder;
 
       return context;
     }
@@ -67,18 +65,6 @@ export default class NodesRoute extends Route {
       this.dualpanel_mode = true;
     }
 
-    context['home_folder'] = await this.currentUser.user.getHomeFolder();
-    context['inbox_folder'] = await this.currentUser.user.getInboxFolder();
-
     return context;
   }
-
-  setupController(controller, model) {
-
-    let _auth_controller = this.controllerFor('authenticated');
-
-    _auth_controller.set('home_folder', model.home_folder);
-    _auth_controller.set('inbox_folder', model.inbox_folder);
-  }
-
 }
diff --git a/app/routes/base.js b/app/routes/base.js
index 3b68a6b5d06ee9b71193a7f6b15f19f4810a5636..d0874fb7484228e8fbe0a966d0532f8a19ad2e78 100644
--- a/app/routes/base.js
+++ b/app/routes/base.js
@@ -8,25 +8,7 @@ export default class BaseRoute extends Route {
   @service currentUser;
 
   async beforeModel(transition) {
-    this.session.requireAuthentication(transition, 'login');
-
     await this.currentUser.loadCurrentUser();
-
-    if (this.currentUser.user) {
-      return this.currentUser.user.getHomeFolder();
-    }
-  }
-
-  async setupController() {
-    super.setupController(...arguments);
-    let app_controller = this.controllerFor('authenticated'),
-      home_folder,
-      inbox_folder;
-
-    home_folder = await this.currentUser.user.getHomeFolder();
-    inbox_folder = await this.currentUser.user.getInboxFolder();
-
-    app_controller.set('home_folder', home_folder);
-    app_controller.set('inbox_folder', inbox_folder);
+    this.session.requireAuthentication(transition, 'login');
   }
 }
diff --git a/app/services/current-user.js b/app/services/current-user.js
index 809e7f36b2ddad957d0d162678e249e52f5fe0f5..172b3b36e6ee18300eb8f03ccb6bc02d99243ef0 100644
--- a/app/services/current-user.js
+++ b/app/services/current-user.js
@@ -11,11 +11,17 @@ export default class CurrentUserService extends Service {
   async loadCurrentUser() {
     let adapter, user;
 
+    if (this.isAuthenticated && this.user) {
+      return this.user;
+    }
+
     if (this.session.isAuthenticated) {
       adapter = this.store.adapterFor('user');
       user = await adapter.getCurrentUser();
       this.user = user;
     }
+
+    return this.user;
   }
 
   get isAuthenticated() {
diff --git a/app/services/session.js b/app/services/session.js
index dc1ba260e827cb47c31f20e112bbd58102df8c1b..1461efa05e6003df2733726a3680e29a57d49bb0 100644
--- a/app/services/session.js
+++ b/app/services/session.js
@@ -10,7 +10,6 @@ export default class SessionService extends BaseSessionService {
     super.handleAuthentication("authenticated.index");
     try {
       await this.currentUser.loadCurrentUser();
-      await this.preferences.load();
     } catch (err) {
       await this.invalidate();
     }
diff --git a/app/templates/authenticated.hbs b/app/templates/authenticated.hbs
index b65611eb3cefdfc439cff3ed98ddfdcd7b211dbd..8e4d0efb7cec5015df2393df69e6027a5d9894e1 100644
--- a/app/templates/authenticated.hbs
+++ b/app/templates/authenticated.hbs
@@ -1,8 +1,8 @@
 <main>
   <Nav::Sidebar
-    @home_folder={{this.home_folder}}
-    @inbox_folder={{this.inbox_folder}}
-    @pinned_tags={{@model}}
+    @home_folder_id={{@model.home_folder_id}}
+    @inbox_folder_id={{@model.inbox_folder_id}}
+    @pinned_tags={{@model.pinned_tags}}
     @expanded={{this.expanded}} />
   <div class="w-100 central-bar">
     <Nav::Topbar