diff --git a/release/arch/arm/build-arm.sh b/release/arch/arm/build-arm.sh
index 3b58e5aceb914266aa95b61896fd457280fdbce3..deeea0b9257c222222623f19fa4c0e25a3d0a0c8 100755
--- a/release/arch/arm/build-arm.sh
+++ b/release/arch/arm/build-arm.sh
@@ -10,7 +10,6 @@ NODE_VERSION=10.20.1
 ARCH="`uname -m | sed -e \"s/86_//\"`"
 NVER="v$NODE_VERSION"
 DUNITER_TAG=$1
-DUNITER_UI_VER="1.7.x"
 
 # Folders
 INITIAL_DIRECTORY=`pwd`
@@ -63,54 +62,28 @@ fi
 rm -rf "$RELEASES"
 mkdir -p "$RELEASES"
 
-cp -r "$DOWNLOADS/duniter" "$RELEASES/duniter"
+cd "$DOWNLOADS/duniter"
+echo "Build Duniter server with GUI..."
+make -C release server-gui clean
+mv "$DOWNLOADS/duniter/work" "$RELEASES/duniter"
 cd ${RELEASES}/duniter
-
 echo "Copying Nodejs"
 cp -R "$DOWNLOADS/node-${NVER}-linux-${ARCH}" node
-
-# Build Duniter with GUI
-echo "Build Duniter with GUI..."
-export NEON_BUILD_RELEASE="true"
-npm add "duniter-ui@${DUNITER_UI_VER}" || exit 1
-npm i || exit 1
-npm prune --production || exit 1
-
-SRC=`pwd`
-echo $SRC
-
-# Clean unused UI modules
-rm -Rf node_modules/duniter-ui/node_modules
-
-# Remove non production folders
-rm -rf coverage test
-
-# Remove unused rust intermediate binaries
-rm -rf target
-rm -rf neon/native/target
-
-# Remove typescript files
-find ./ \( -name "*.js.map" -o -name "*.d.ts" -o -name "*.ts" \) -delete
-
 cd ..
-mkdir -p duniter_release
-cp -R ${SRC}/* duniter_release/
 
 # Creating DEB packaging
-mv duniter_release/release/extra/debian/package duniter-${ARCH}
+cp -r "$DOWNLOADS"/duniter/release/extra/debian/package duniter-${ARCH}
 mkdir -p duniter-${ARCH}/opt/duniter/
 mkdir -p duniter-${ARCH}/etc/bash_completion.d/
 chmod 755 duniter-${ARCH}/DEBIAN/post*
 chmod 755 duniter-${ARCH}/DEBIAN/pre*
 sed -i "s/Version:.*/Version:$DUNITER_DEB_VER/g" duniter-${ARCH}/DEBIAN/control
 echo "Extra..."
-mv duniter_release/release/extra/completion/duniter_completion.bash duniter-${ARCH}/etc/bash_completion.d/duniter_completion.bash
+cp "$DOWNLOADS"/duniter/release/extra/completion/duniter_completion.bash duniter-${ARCH}/etc/bash_completion.d/duniter_completion.bash
 echo "Zipping..."
-cd duniter_release
-pwd
-rm -Rf .git
+cd duniter
 zip -qr ../duniter.zip *
-cd ../
+cd ..
 mv duniter.zip duniter-${ARCH}/opt/duniter/
 echo "Making package package"
 fakeroot dpkg-deb --build duniter-${ARCH}
diff --git a/release/arch/linux/build-lin.sh b/release/arch/linux/build-lin.sh
old mode 100644
new mode 100755
index 90fd6759f8593d83f2da5670de87503d045b450a..10e886975c9295493bcf2b9d40c5d78cf9530357
--- a/release/arch/linux/build-lin.sh
+++ b/release/arch/linux/build-lin.sh
@@ -11,52 +11,6 @@ else
 	exit 1
 fi
 
-# ---------
-# Functions
-# ---------
-
-# Copy nw.js compiled module released library to node libraries.
-# -
-# Parameters:
-# 1. Module name.
-nw_copy() {
-	[[ -z ${1} ]] && exit 1
-	from_folder=lib/binding/Release/node-webkit-v${NW_VERSION}-linux-x64
-	if [[ ! -z ${2} ]]; then
-	  from_folder=${2}
-	fi
-	local dest=lib/binding/Release/node-v${ADDON_VERSION}-linux-x64
-	mkdir -p ${dest}
-	cp ${from_folder}/${1}.node \
-		${dest}/${1}.node || exit 1
-}
-
-# Copy nw.js compiled module library to node libraries, prefixing with node_.
-# -
-# Parameters:
-# 1. Module name.
-nw_copy_node() {
-	[[ -z ${1} ]] && exit 1
-	local dest=lib/binding/node-v${ADDON_VERSION}-linux-x64/
-	mkdir -p ${dest}
-	cp lib/binding/node-webkit-v${NW_VERSION}-linux-x64/node_${1}.node \
-		${dest}/node_${1}.node || exit 1
-}
-
-# Compile the module with nw.js.
-# -
-# Parameters:
-# 1. Module name.
-# 2. Action to be done to module after compilation, if needed.
-nw_compile() {
-	[[ -z ${1} ]] && exit 1
-	cd ${1} || exit 1
-	node-pre-gyp --runtime=node-webkit --target=${NW_VERSION} configure || exit 1
-	node-pre-gyp --runtime=node-webkit --target=${NW_VERSION} build || exit 1
-	[[ -z ${2} ]] || ${2} ${1} ${3}
-	cd ..
-}
-
 # Create description.
 # -
 # Parameters:
@@ -110,7 +64,7 @@ build_deb_pack() {
 	sed -i "s/Version:.*/Version:${DUNITER_DEB_VER}/g" "${RELEASES}/duniter-x64/DEBIAN/control" || exit 1
 
 	cd "${RELEASES}/${1}_/"
-	zip -qr "${RELEASES}/duniter-x64/opt/duniter/duniter.zip" * || exit 1
+	zip -yqr "${RELEASES}/duniter-x64/opt/duniter/duniter.zip" * || exit 1
 
 	sed -i "s/Package: .*/Package: ${2}/g" "${RELEASES}/duniter-x64/DEBIAN/control" || exit 1
 
@@ -128,17 +82,9 @@ NODE_VERSION=10.20.1
 NVER="v${NODE_VERSION}"
 DUNITER_TAG="v${1}"
 DUNITER_DEB_VER=" ${1}"
-ADDON_VERSION=64
-NW_VERSION=0.33.1
-NW_RELEASE="v${NW_VERSION}"
-NW="nwjs-${NW_RELEASE}-linux-x64"
-NW_GZ="${NW}.tar.gz"
-DUNITER_UI_VER="1.7.x"
 
 nvm install ${NVER} || exit 1
 nvm use ${NVER} || exit 1
-npm install -g node-pre-gyp || exit 1
-npm install -g nw-gyp || exit 1
 curl https://sh.rustup.rs -sSf | sh -s -- -y
 export PATH="$HOME/.cargo/bin:$PATH"
 
@@ -150,7 +96,8 @@ ROOT="${PWD}"
 WORK_NAME=work
 WORK="${ROOT}/${WORK_NAME}"
 DOWNLOADS="${WORK}/downloads"
-RELEASES="${WORK}/releases"
+RELEASES_SUBDIR="releases"
+RELEASES="${WORK}/${RELEASES_SUBDIR}"
 BIN="${WORK}/bin"
 
 mkdir -p "${DOWNLOADS}" "${RELEASES}" "${BIN}" || exit 1
@@ -161,9 +108,6 @@ rm -rf "${BIN}/"*.{deb,tar.gz}{,.desc} # Clean up
 # -----------
 
 cd "${DOWNLOADS}"
-curl -O https://dl.nwjs.io/${NW_RELEASE}/${NW_GZ} || exit 1
-tar xzf ${NW_GZ} || exit 1
-rm ${NW_GZ}
 curl -O http://nodejs.org/dist/${NVER}/node-${NVER}-linux-x64.tar.gz || exit 1
 tar xzf node-${NVER}-linux-x64.tar.gz || exit 1
 rm node-${NVER}-linux-x64.tar.gz
@@ -172,73 +116,31 @@ rm node-${NVER}-linux-x64.tar.gz
 # Releases
 # -----------
 
-# Prepare sources
-mkdir -p "${RELEASES}/duniter" || exit 1
-cp -r $(find "${ROOT}" -mindepth 1 -maxdepth 1 ! -name "${WORK_NAME}") "${RELEASES}/duniter" || exit 1
-cd "${RELEASES}/duniter"
-rm -Rf .gitignore .git || exit 1 # Remove git files
-
-# Build Duniter with GUI
-echo ">> VM: building modules..."
-export NEON_BUILD_RELEASE="true"
-npm add "duniter-ui@${DUNITER_UI_VER}" || exit 1
-npm i || exit 1
-npm prune --production || exit 1
-
-# Patch leveldown
-cp "${ROOT}/release/resources/leveldown-fix.json" "${RELEASES}/duniter/node_modules/leveldown/package.json" || exit 1
-
-# Remove non production folders
-rm -rf coverage release test
-
-# Remove unused rust intermediate binaries
-rm -rf target
-rm -rf neon/native/target
-
-# Remove typescript files
-find ./ \( -name "*.js.map" -o -name "*.d.ts" -o -name "*.ts" \) -delete
-
-cp -r "${RELEASES}/duniter" "${RELEASES}/desktop_" || exit 1
-cp -r "${RELEASES}/duniter" "${RELEASES}/server_" || exit 1
-
-# -------------------------------------
-# Build Desktop version against nw.js
-# -------------------------------------
-
-echo "${NW_RELEASE}"
-
-cd "${RELEASES}/desktop_/node_modules/"
-nw_compile leveldown nw_copy "build/Release/"
-nw_compile sqlite3 nw_copy_node
-
-# Unused binaries
-cd "${RELEASES}/desktop_/"
-rm -rf node_modules/sqlite3/build
+pushd "${ROOT}"
+make -C release DEST="${RELEASES_SUBDIR}/duniter" base-gui || exit 1
+cp -pr "${RELEASES}/duniter" "${RELEASES}/desktop_" || exit 1
+make -C release DEST="${RELEASES_SUBDIR}/desktop_" desktop clean || exit 1
+cp -pr "${RELEASES}/duniter" "${RELEASES}/server_" || exit 1
+make -C release DEST="${RELEASES_SUBDIR}/server_" server-gui clean || exit 1
+popd
 
 # --------------------------------
 # Embed nw.js in desktop version
 # --------------------------------
 
-# Install Nw.js
+# Embed Node.js to make Duniter modules installable
 mkdir -p "${RELEASES}/desktop_release" || exit 1
-cp -r "${DOWNLOADS}/${NW}/"* "${RELEASES}/desktop_release/" || exit 1
-# Embed Node.js with Nw.js to make Duniter modules installable
 cp -r "${DOWNLOADS}/node-${NVER}-linux-x64/lib" "${RELEASES}/desktop_release/" || exit 1
 cp -r "${DOWNLOADS}/node-${NVER}-linux-x64/include" "${RELEASES}/desktop_release/" || exit 1
 cp -r "${DOWNLOADS}/node-${NVER}-linux-x64/bin" "${RELEASES}/desktop_release/" || exit 1
-# Add some specific files for GUI
-cp "${RELEASES}/desktop_/gui/"* "${RELEASES}/desktop_release/" || exit 1
 # Add Duniter sources
 cp -R "${RELEASES}/desktop_/"* "${RELEASES}/desktop_release/" || exit 1
-# Insert Nw specific fields while they do not exist (1.3.3)
-sed -i "s/\"main\": \"index.js\",/\"main\": \"index.html\",/" "${RELEASES}/desktop_release/package.json" || exit 1
 # Add links for Node.js + NPM
 cd "${RELEASES}/desktop_release/bin"
 ln -s "../lib/node_modules/npm/bin/npm-cli.js" "./npm" -f || exit 1
 cd ..
 ln -s "./bin/node" "node" -f || exit 1
 ln -s "./bin/npm" "npm" -f || exit 1
-#sed -i "s/\"node-main\": \"\.\.\/sources\/bin\/duniter\",/\"node-main\": \".\/bin\/duniter\",/" "$RELEASES/desktop_release/package.json"
 rm -rf "${RELEASES}/desktop_"
 mv "${RELEASES}/desktop_release" "${RELEASES}/desktop_"
 
diff --git a/release/extra/debian/package/DEBIAN/postinst b/release/extra/debian/package/DEBIAN/postinst
index ae7ac47e952891759c83eb36105980acc5e22589..0880595b79963dc979553d50bd814080dcf49240 100755
--- a/release/extra/debian/package/DEBIAN/postinst
+++ b/release/extra/debian/package/DEBIAN/postinst
@@ -11,10 +11,8 @@ if [[ -f $DUN_ROOT/duniter.zip ]]; then
 fi
 
 # Duniter-Desktop
-if [[ -f $DUN_SOURCES/nw ]]; then
-  chmod +x $DUN_SOURCES/nw $DUN_SOURCES/lib $DUN_SOURCES/locales
-  chmod +rw $DUN_SOURCES/nw $DUN_SOURCES/lib $DUN_SOURCES/locales
-  ln -s $DUN_SOURCES/nw /usr/bin/duniter-desktop
+if [[ -f $DUN_SOURCES/duniter-desktop ]]; then
+  ln -s $DUN_SOURCES/duniter-desktop /usr/bin/duniter-desktop
   sed -i "s/DEB_PACKAGING=.*/DEB_PACKAGING=true/g" $DUN_SOURCES/duniter.sh
   # Links for Node + NPM
   cd $DUN_SOURCES