diff --git a/src/models/StartupData.js b/src/models/StartupData.js
new file mode 100644
index 0000000..047c154
--- /dev/null
+++ b/src/models/StartupData.js
@@ -0,0 +1,41 @@
+import UserModel from './User.js';
+
+export default class StartupDataModel {
+  constructor(data) {
+    this.data = data ?? {};
+  }
+
+  static buildFromCCDOM() {
+    const startupData =
+        document.querySelector('html')?.getAttribute?.('data-startup');
+    if (!startupData) {
+      console.warn('Haven\'t found CC startup data.');
+      return null;
+    }
+
+    let startup;
+    try {
+      startup = JSON.parse(startupData);
+    } catch (error) {
+      console.warn('Haven\'t been able to parse CC startup data.');
+    }
+
+    return new StartupDataModel(startup);
+  }
+
+  getRawUser() {
+    return this.data[1]?.[1] ?? null;
+  }
+
+  getAuthUser() {
+    return this.data[2]?.[1] ?? '0';
+  }
+
+  getRawForumsInfo() {
+    return this.data[1]?.[2] ?? null;
+  }
+
+  getCurrentUserModel() {
+    return new UserModel(this.getRawUser(), this);
+  }
+}
