diff --git a/ng-app/dist-web.tar.gz b/ng-app/dist-web.tar.gz
new file mode 100644
index 00000000..b857dfd8
Binary files /dev/null and b/ng-app/dist-web.tar.gz differ
diff --git a/ng-app/package.json b/ng-app/package.json
index ed4b9dbd..fbbbec63 100644
--- a/ng-app/package.json
+++ b/ng-app/package.json
@@ -6,7 +6,7 @@
   "scripts": {
     "dev": "vite",
     "webdev": "cross-env NG_APP_WEB=1 TAURI_DEBUG=1 vite",
-    "webbuild": "cross-env NG_APP_WEB=1 vite build && rm -f ./dist-web/assets/*.svg",
+    "webbuild": "cross-env NG_APP_WEB=1 vite build && rm -f ./dist-web/assets/*.svg && tar --exclude .DS_Store -zcvf dist-web.tar.gz dist-web",
     "webfilebuild": "cross-env NG_APP_WEB=1 NG_APP_FILE=1 vite build && node prepare-app-file.cjs && rm -rf ./dist-file/assets && tar --exclude .DS_Store -zcvf dist-file.tar.gz dist-file",
     "webfilebuilddebug": "cross-env NG_APP_WEB=1 NG_APP_FILE=1 TAURI_DEBUG=1 vite build -m debug",
     "build": "vite build && rm -f ./dist/assets/*.svg",
diff --git a/ng-app/src/App.svelte b/ng-app/src/App.svelte
index c8ecaa62..06095f12 100644
--- a/ng-app/src/App.svelte
+++ b/ng-app/src/App.svelte
@@ -11,7 +11,7 @@
 
 <script lang="ts">
   // this line is needed to have the SDK working when compiling for a single file bundle (pnpm webfilebuild)
-  import * as api from "ng-sdk-js";
+  //import * as api from "ng-sdk-js";
   import { push, default as Router } from "svelte-spa-router";
   import { onMount, tick, onDestroy } from "svelte";
   import {
diff --git a/ngaccount/web/src/routes/Create.svelte b/ngaccount/web/src/routes/Create.svelte
index 3ee936e7..53fabf4c 100644
--- a/ngaccount/web/src/routes/Create.svelte
+++ b/ngaccount/web/src/routes/Create.svelte
@@ -16,7 +16,6 @@
   // @ts-ignore
   import Logo from "../assets/nextgraph.svg?component";
   import { link, querystring } from "svelte-spa-router";
-  import { tauri, event } from "@tauri-apps/api";
 
   import { onMount } from "svelte";
   let domain = import.meta.env.NG_ACCOUNT_DOMAIN;
diff --git a/p2p-net/src/utils.rs b/p2p-net/src/utils.rs
index 8f10278c..34361ecd 100644
--- a/p2p-net/src/utils.rs
+++ b/p2p-net/src/utils.rs
@@ -115,17 +115,32 @@ pub fn check_is_local_url(bootstrap: &BrokerServerV0, location: &String) -> Opti
 }
 
 #[cfg(target_arch = "wasm32")]
-pub async fn retrieve_local_url(location: String) -> Option<String> {
-    let bootstraps: BootstrapContent = {
-        let resp = reqwest::get(format!("{}{}", APP_PREFIX, NG_BOOTSTRAP_LOCAL_PATH)).await;
-        if resp.is_ok() {
-            let resp = resp.unwrap().json::<BootstrapContent>().await;
-            resp.unwrap()
-        } else {
-            return None;
-        }
+async fn retrieve_ng_bootstrap(location: &String) -> Option<BootstrapContent> {
+    let prefix = if (APP_PREFIX == "") {
+        let url = Url::parse(location).unwrap();
+        url.origin().unicode_serialization()
+    } else {
+        APP_PREFIX.to_string()
     };
-    for bootstrap in bootstraps.servers() {
+    let url = format!("{}{}", prefix, NG_BOOTSTRAP_LOCAL_PATH);
+    //log_info!("url {}", url);
+    let resp = reqwest::get(url).await;
+    if resp.is_ok() {
+        let resp = resp.unwrap().json::<BootstrapContent>().await;
+        return Some(resp.unwrap());
+    } else {
+        //log_info!("err {}", resp.unwrap_err());
+        return None;
+    }
+}
+
+#[cfg(target_arch = "wasm32")]
+pub async fn retrieve_local_url(location: String) -> Option<String> {
+    let bootstraps = retrieve_ng_bootstrap(&location).await;
+    if bootstraps.is_none() {
+        return None;
+    }
+    for bootstrap in bootstraps.unwrap().servers() {
         let res = check_is_local_url(bootstrap, &location);
         if res.is_some() {
             return res;
@@ -134,6 +149,7 @@ pub async fn retrieve_local_url(location: String) -> Option<String> {
     None
 }
 
+#[cfg(target_arch = "wasm32")]
 pub async fn retrieve_local_bootstrap(
     location_string: String,
     invite_string: Option<String>,
@@ -149,19 +165,14 @@ pub async fn retrieve_local_bootstrap(
     log_debug!("invite_String {:?} invite1{:?}", invite_string, invite1);
 
     let invite2: Option<Invitation> = {
-        // let resp = reqwest::get(format!("{}{}", APP_PREFIX, NG_BOOTSTRAP_LOCAL_PATH)).await;
-        // if resp.is_ok() {
-        //     let resp = resp.unwrap().json::<BootstrapContent>().await;
-        //     if resp.is_ok() {
-        //         let mut inv: Invitation = resp.unwrap().into();
-        //         inv.set_url(BROKER.read().await.get_registration_url());
-        //         Some(inv)
-        //     } else {
-        //         None
-        //     }
-        // } else {
-        None
-        //}
+        let bootstraps = retrieve_ng_bootstrap(&location_string).await;
+        if bootstraps.is_none() {
+            None
+        } else {
+            let mut inv: Invitation = bootstraps.unwrap().into();
+            inv.set_url(BROKER.read().await.get_registration_url());
+            Some(inv)
+        }
     };
 
     let res = if invite1.is_none() {