diff --git a/src/core/js/edit_mode.js b/src/core/js/edit_mode.js
index 85645aabaf7d05cb7abe928b4792b5de6ef9e352..2cab099403fb5f454ed905f1d5527b8b4982e060 100644
--- a/src/core/js/edit_mode.js
+++ b/src/core/js/edit_mode.js
@@ -76,11 +76,54 @@ var edit_mode = new function () {
         }
     }
 
+    this.has_edit_fragment = function () {
+      const fragment = window.location.hash.substr(1);
+      console.log(fragment);
+      return fragment === "edit";
+    }
+
+    this.has_new_record_fragment = function () {
+      const fragment = window.location.hash.substr(1);
+      console.log(fragment);
+      return fragment === "new_record";
+    }
+
     this._init = function () {
         var target = $("#top-navbar").find("ul").first();
         this.add_edit_mode_button(target, edit_mode.toggle_edit_mode);
+
+        var after_setup_callback = () => {} // do nothing
+        if (this.has_edit_fragment()) {
+            // find first entity
+            const first_entity = $(".caosdb-entity-panel")[0];
+            if(first_entity) {
+                window.localStorage["edit_mode"] = true;
+                after_setup_callback = () => {
+                    console.log("start editing this entity", first_entity);
+                    edit_mode.edit(first_entity);
+                }
+            }
+        } else if (this.has_new_record_fragment()) {
+            for (let entity of $(".caosdb-entity-panel")) {
+                // find first record type
+                console.log("is record type?", entity);
+                if(getEntityRole(entity) === "RecordType") {
+                    window.localStorage["edit_mode"] = true;
+                    const new_record = edit_mode.create_new_record(getEntityID(entity));
+                    after_setup_callback = () => {
+                      console.log("start creating a new record for", entity);
+                      new_record.then((new_record) => {
+                          edit_mode.app.newEntity(new_record);
+                      }, edit_mode.handle_error);
+                    }
+                    break;
+                }
+            }
+        }
+
+        // intialize the edit mode panel and add all necessary buttons if the edit mode is 
         if (this.is_edit_mode()) {
-            edit_mode.enter_edit_mode();
+            edit_mode.enter_edit_mode().then(after_setup_callback);
             edit_mode.toggle_edit_panel();
             // This is for the very specific case of reloading the
             // page while the edit mode is active on small screens
@@ -88,6 +131,11 @@ var edit_mode = new function () {
             $(".caosdb-edit-min-width-warning").addClass("d-block");
         }
         $('.caosdb-f-edit').css("transition", "top 1s");
+
+        // start editing or creating an entity
+        //if(after_setup_callback) {
+            //after_setup_callback();
+        //}
     }