diff --git a/ivette/Makefile b/ivette/Makefile
index a30dcad4c5f3265efb03fb9bdf283e93d0243a8f..5dd398d62b47d02db335665a89719302a835b3c7 100644
--- a/ivette/Makefile
+++ b/ivette/Makefile
@@ -47,7 +47,7 @@ VERSION=$(shell echo "console.log(require('./package.json').version)" | node -)
 
 DOC_ICONS_CSS= src/dome/doc/gallery.css
 DOC_ICONS_MAKE= src/dome/doc/iconsmd.js
-DOC_ICONS_DATA= src/dome/src/renderer/controls/gallery.json
+DOC_ICONS_DATA= src/dome/renderer/controls/gallery.json
 DOC_GUIDES= src/dome/doc/guides
 
 NODEBIN= ./node_modules/.bin
@@ -81,13 +81,6 @@ $(NODEBIN)/%:
 	@echo "[Node] install package $*"
 	yarn add -D $*
 
-# --------------------------------------------------------------------------
-# --- Ivette Plugins
-# --------------------------------------------------------------------------
-
-DOME_PLUGINS=
-DOME_EXPORTS=
-
 # --------------------------------------------------------------------------
 include $(DOME)/template/makefile
 # --------------------------------------------------------------------------
diff --git a/ivette/src/dome/.gitignore b/ivette/src/dome/.gitignore
index 7cd1e3e820fe332ae0b7c2364e684d9dfebb5d87..6591bed583d6bb9eb4433e9c6255546ce148706c 100644
--- a/ivette/src/dome/.gitignore
+++ b/ivette/src/dome/.gitignore
@@ -7,47 +7,6 @@
 .dome-*.orig
 .dome-*.lock
 
-#########################################
-# Dome Repository
-#########################################
-
-/.gitdome
-
-#########################################
-# JavaScript
-#########################################
-
-node_modules
-yarn.lock
-/package.json
-
-#########################################
-# Example Application
-#########################################
-
-/.babelrc
-/webpack.main.js
-/webpack.renderer.js
-/webpack.plugin.js
-/electron-webpack.json
-/dist
-/bin
-/src/main/index.js
-/src/misc/exports.js
-/src/renderer/index.js
-/src/renderer/Application.js
-/src/renderer/Preferences.js
-/src/renderer/styles.css
-/src/renderer/demo
-/src/plugins
-
-#########################################
-# Documentation
-#########################################
-
-/html
 /doc/template/gallery-icons.html
-/doc/template/gallery-styles.js
-/doc/template/gallery-styles.html
 
 #########################################
diff --git a/ivette/src/dome/CHANGELOG.md b/ivette/src/dome/CHANGELOG.md
deleted file mode 100644
index 4e51470c1da281d1264d99637ca279df412f3ac7..0000000000000000000000000000000000000000
--- a/ivette/src/dome/CHANGELOG.md
+++ /dev/null
@@ -1 +0,0 @@
-# Version 0.0.1
diff --git a/ivette/src/dome/doc/guides/development.md b/ivette/src/dome/doc/guides/development.md
index a1bfa4c54602b2ea514f1be81044601f7196a59b..e2269e794490c6d9ee082bc82968277a340ac4e3 100644
--- a/ivette/src/dome/doc/guides/development.md
+++ b/ivette/src/dome/doc/guides/development.md
@@ -175,18 +175,10 @@ $ make dome-help
   make dome-plugins Package plugins for distribution
 
 [Dome] Development:
-  Dome framework  DOME = '…'
-  Local command   DOME_CLI  = '…'
-  Arguments (dev) DOME_ARGS = '…'
-  Export modules  DOME_EXPORTS = '…'
-  Plugin modules  DOME_PLUGINS = '…'
+  … (environment variables)
 
 [Dome] Documentation:
-  Application     APP          = '…'
-  Copyright       COPYRIGHT    = '…'
-  Dome framework  DOME_DOC     = '…'
-  Output dir      DOME_DOC     = '…'
-  Public API      DOME_API     = '…'
+  … (environment variables)
 
 ```
 
diff --git a/ivette/src/dome/Makefile b/ivette/src/dome/examples/Makefile
similarity index 100%
rename from ivette/src/dome/Makefile
rename to ivette/src/dome/examples/Makefile
diff --git a/ivette/src/dome/examples/README.md b/ivette/src/dome/examples/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..27ced4fd5e9da5fcd000f09eebfce1d09cea679d
--- /dev/null
+++ b/ivette/src/dome/examples/README.md
@@ -0,0 +1,5 @@
+# Dome Examples
+
+The `./Makefile` is from an old demo. It is probably outdated.
+
+**TO BE CONTINUED**
diff --git a/ivette/src/dome/src/main/dome.ts b/ivette/src/dome/main/dome.ts
similarity index 100%
rename from ivette/src/dome/src/main/dome.ts
rename to ivette/src/dome/main/dome.ts
diff --git a/ivette/src/dome/src/main/menubar.ts b/ivette/src/dome/main/menubar.ts
similarity index 100%
rename from ivette/src/dome/src/main/menubar.ts
rename to ivette/src/dome/main/menubar.ts
diff --git a/ivette/src/dome/src/misc/devtools.js b/ivette/src/dome/misc/devtools.js
similarity index 100%
rename from ivette/src/dome/src/misc/devtools.js
rename to ivette/src/dome/misc/devtools.js
diff --git a/ivette/src/dome/src/misc/register.js b/ivette/src/dome/misc/register.js
similarity index 100%
rename from ivette/src/dome/src/misc/register.js
rename to ivette/src/dome/misc/register.js
diff --git a/ivette/src/dome/src/misc/system.ts b/ivette/src/dome/misc/system.ts
similarity index 100%
rename from ivette/src/dome/src/misc/system.ts
rename to ivette/src/dome/misc/system.ts
diff --git a/ivette/src/dome/src/misc/utils.ts b/ivette/src/dome/misc/utils.ts
similarity index 100%
rename from ivette/src/dome/src/misc/utils.ts
rename to ivette/src/dome/misc/utils.ts
diff --git a/ivette/src/dome/src/renderer/controls/buttons.tsx b/ivette/src/dome/renderer/controls/buttons.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/controls/buttons.tsx
rename to ivette/src/dome/renderer/controls/buttons.tsx
diff --git a/ivette/src/dome/src/renderer/controls/gallery.json b/ivette/src/dome/renderer/controls/gallery.json
similarity index 100%
rename from ivette/src/dome/src/renderer/controls/gallery.json
rename to ivette/src/dome/renderer/controls/gallery.json
diff --git a/ivette/src/dome/src/renderer/controls/icons.tsx b/ivette/src/dome/renderer/controls/icons.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/controls/icons.tsx
rename to ivette/src/dome/renderer/controls/icons.tsx
diff --git a/ivette/src/dome/src/renderer/controls/labels.tsx b/ivette/src/dome/renderer/controls/labels.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/controls/labels.tsx
rename to ivette/src/dome/renderer/controls/labels.tsx
diff --git a/ivette/src/dome/src/renderer/controls/style.css b/ivette/src/dome/renderer/controls/style.css
similarity index 100%
rename from ivette/src/dome/src/renderer/controls/style.css
rename to ivette/src/dome/renderer/controls/style.css
diff --git a/ivette/src/dome/src/renderer/data/compare.ts b/ivette/src/dome/renderer/data/compare.ts
similarity index 100%
rename from ivette/src/dome/src/renderer/data/compare.ts
rename to ivette/src/dome/renderer/data/compare.ts
diff --git a/ivette/src/dome/src/renderer/data/json.ts b/ivette/src/dome/renderer/data/json.ts
similarity index 100%
rename from ivette/src/dome/src/renderer/data/json.ts
rename to ivette/src/dome/renderer/data/json.ts
diff --git a/ivette/src/dome/src/renderer/data/library.js b/ivette/src/dome/renderer/data/library.js
similarity index 100%
rename from ivette/src/dome/src/renderer/data/library.js
rename to ivette/src/dome/renderer/data/library.js
diff --git a/ivette/src/dome/src/renderer/data/settings.ts b/ivette/src/dome/renderer/data/settings.ts
similarity index 100%
rename from ivette/src/dome/src/renderer/data/settings.ts
rename to ivette/src/dome/renderer/data/settings.ts
diff --git a/ivette/src/dome/src/renderer/data/states.ts b/ivette/src/dome/renderer/data/states.ts
similarity index 100%
rename from ivette/src/dome/src/renderer/data/states.ts
rename to ivette/src/dome/renderer/data/states.ts
diff --git a/ivette/src/dome/src/renderer/dialogs.tsx b/ivette/src/dome/renderer/dialogs.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/dialogs.tsx
rename to ivette/src/dome/renderer/dialogs.tsx
diff --git a/ivette/src/dome/src/renderer/dnd.js b/ivette/src/dome/renderer/dnd.js
similarity index 100%
rename from ivette/src/dome/src/renderer/dnd.js
rename to ivette/src/dome/renderer/dnd.js
diff --git a/ivette/src/dome/src/renderer/dome.tsx b/ivette/src/dome/renderer/dome.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/dome.tsx
rename to ivette/src/dome/renderer/dome.tsx
diff --git a/ivette/src/dome/src/renderer/errors.tsx b/ivette/src/dome/renderer/errors.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/errors.tsx
rename to ivette/src/dome/renderer/errors.tsx
diff --git a/ivette/src/dome/src/renderer/frame/sidebars.tsx b/ivette/src/dome/renderer/frame/sidebars.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/frame/sidebars.tsx
rename to ivette/src/dome/renderer/frame/sidebars.tsx
diff --git a/ivette/src/dome/src/renderer/frame/style.css b/ivette/src/dome/renderer/frame/style.css
similarity index 100%
rename from ivette/src/dome/src/renderer/frame/style.css
rename to ivette/src/dome/renderer/frame/style.css
diff --git a/ivette/src/dome/src/renderer/frame/tabs.tsx b/ivette/src/dome/renderer/frame/tabs.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/frame/tabs.tsx
rename to ivette/src/dome/renderer/frame/tabs.tsx
diff --git a/ivette/src/dome/src/renderer/frame/toolbars.tsx b/ivette/src/dome/renderer/frame/toolbars.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/frame/toolbars.tsx
rename to ivette/src/dome/renderer/frame/toolbars.tsx
diff --git a/ivette/src/dome/src/renderer/layout/boxes.tsx b/ivette/src/dome/renderer/layout/boxes.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/layout/boxes.tsx
rename to ivette/src/dome/renderer/layout/boxes.tsx
diff --git a/ivette/src/dome/src/renderer/layout/dispatch.tsx b/ivette/src/dome/renderer/layout/dispatch.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/layout/dispatch.tsx
rename to ivette/src/dome/renderer/layout/dispatch.tsx
diff --git a/ivette/src/dome/src/renderer/layout/forms.tsx b/ivette/src/dome/renderer/layout/forms.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/layout/forms.tsx
rename to ivette/src/dome/renderer/layout/forms.tsx
diff --git a/ivette/src/dome/src/renderer/layout/grids.js b/ivette/src/dome/renderer/layout/grids.js
similarity index 100%
rename from ivette/src/dome/src/renderer/layout/grids.js
rename to ivette/src/dome/renderer/layout/grids.js
diff --git a/ivette/src/dome/src/renderer/layout/splitters.tsx b/ivette/src/dome/renderer/layout/splitters.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/layout/splitters.tsx
rename to ivette/src/dome/renderer/layout/splitters.tsx
diff --git a/ivette/src/dome/src/renderer/layout/style.css b/ivette/src/dome/renderer/layout/style.css
similarity index 100%
rename from ivette/src/dome/src/renderer/layout/style.css
rename to ivette/src/dome/renderer/layout/style.css
diff --git a/ivette/src/dome/src/renderer/style.css b/ivette/src/dome/renderer/style.css
similarity index 100%
rename from ivette/src/dome/src/renderer/style.css
rename to ivette/src/dome/renderer/style.css
diff --git a/ivette/src/dome/src/renderer/table/arrays.ts b/ivette/src/dome/renderer/table/arrays.ts
similarity index 100%
rename from ivette/src/dome/src/renderer/table/arrays.ts
rename to ivette/src/dome/renderer/table/arrays.ts
diff --git a/ivette/src/dome/src/renderer/table/models.ts b/ivette/src/dome/renderer/table/models.ts
similarity index 100%
rename from ivette/src/dome/src/renderer/table/models.ts
rename to ivette/src/dome/renderer/table/models.ts
diff --git a/ivette/src/dome/src/renderer/table/style.css b/ivette/src/dome/renderer/table/style.css
similarity index 100%
rename from ivette/src/dome/src/renderer/table/style.css
rename to ivette/src/dome/renderer/table/style.css
diff --git a/ivette/src/dome/src/renderer/table/views.tsx b/ivette/src/dome/renderer/table/views.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/table/views.tsx
rename to ivette/src/dome/renderer/table/views.tsx
diff --git a/ivette/src/dome/src/renderer/text/buffers.ts b/ivette/src/dome/renderer/text/buffers.ts
similarity index 100%
rename from ivette/src/dome/src/renderer/text/buffers.ts
rename to ivette/src/dome/renderer/text/buffers.ts
diff --git a/ivette/src/dome/src/renderer/text/editors.tsx b/ivette/src/dome/renderer/text/editors.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/text/editors.tsx
rename to ivette/src/dome/renderer/text/editors.tsx
diff --git a/ivette/src/dome/src/renderer/text/pages.tsx b/ivette/src/dome/renderer/text/pages.tsx
similarity index 100%
rename from ivette/src/dome/src/renderer/text/pages.tsx
rename to ivette/src/dome/renderer/text/pages.tsx
diff --git a/ivette/src/dome/src/renderer/text/style.css b/ivette/src/dome/renderer/text/style.css
similarity index 100%
rename from ivette/src/dome/src/renderer/text/style.css
rename to ivette/src/dome/renderer/text/style.css
diff --git a/ivette/src/dome/src/misc/plugins.js b/ivette/src/dome/src/misc/plugins.js
deleted file mode 100644
index 87a08c0c836e960d70158825db1a98a685f2282c..0000000000000000000000000000000000000000
--- a/ivette/src/dome/src/misc/plugins.js
+++ /dev/null
@@ -1,97 +0,0 @@
-// --------------------------------------------------------------------------
-// --- Dome Plugins Management
-// --------------------------------------------------------------------------
-
-import fs from 'fs' ;
-import path from 'path' ;
-
-const registry = {} ;
-
-// --------------------------------------------------------------------------
-// --- Installing Bundle
-// --------------------------------------------------------------------------
-
-export function register( id, exports )
-{
-  registry[id] = Object.assign( {} , exports );
-}
-
-const WRAPPER_OPEN = '(function(module,require,__static){\n' ;
-const WRAPPER_CLOSE = '\n})' ;
-const PLUGINS = '@plugins/' ;
-
-export function install( name )
-{
-  // Resolve plugin directory
-  let dir = path.resolve( __static , "plugins" , name );
-  if (!fs.isDirectory())
-    throw `Plugin '${name}' not installed` ;
-
-  // Resolve plugin configuration
-  let pkg = path.resolve( dir , 'package.json' );
-  if (!fs.isFile(pkg))
-    throw `Plugin '${name}' has no 'package.json' file` ;
-  let config ;
-  try { config = JSON.pargse(fs.readFileSync( pkg , 'UTF-8' )); }
-  catch(err) {
-    console.error( `[Dome] Reading '${pkg}':\n`, err );
-    throw `Plugin '${name}' has invalid 'package.json' file` ;
-  }
-
-  // Resolve plugin entry points
-  let bundlejs = path.resolve( dir, config.main || 'bundle.js' );
-  if (!fs.isFile(bundlejs))
-    throw `Plugin '${name}' entry point not found` ;
-  let static_d = path.resolve( dir, 'static' );
-  if (!fs.isDirectory(static_d)) static_d = undefined;
-
-  // Load bundle file
-  let bundle ;
-  try { bundle = fs.readFileSync( bundlejs , 'UTF-8' ); }
-  catch(err) {
-    console.error( `[Dome] Loading '${bundlejs}':\n`, err );
-    throw `Plugin '${name}' can not load its entry point` ;
-  }
-
-  // Install bundle file
-  let id = PLUGINS + name ;
-  let exports = {} ;
-  register( id, exports ); // cut circularities
-  try {
-    let wrapped = WRAPPER_OPEN + bundle + WRAPPER_CLOSE ;
-    let compiled ; eval(wrapped);
-    let module = { id, exports };
-    compiled( module, require, static_d );
-  } catch(err) {
-    console.error( `[Dome] Running '${bundlejs}':\n`, err );
-    throw `Plugin '${name}' can not install bundle` ;
-  }
-  register( id, exports ); // final exports
-
-  // Finally return exports
-  return exports ;
-}
-
-// --------------------------------------------------------------------------
-// --- Resolving Modules
-// --------------------------------------------------------------------------
-
-export function require(id)
-{
-  let exports = registry[id];
-  if (exports) return Object.assign( {} , exports );
-
-  // Resolving plugin
-
-  if (id.startsWith(PLUGINS))
-  {
-    let exports = install( id.substring(PLUGINS.length) );
-    return Object.assign( {} , exports );
-  }
-
-  // Trap
-
-  throw `Module '${id}' not found` ;
-}
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/template/Application.js b/ivette/src/dome/template/Application.js
index c98deea8572112ba3444adeba90303d3e5d365dc..539097f43bea2e3b23af9a82fcf4e6c0601d51cb 100644
--- a/ivette/src/dome/template/Application.js
+++ b/ivette/src/dome/template/Application.js
@@ -13,7 +13,6 @@
 
 import React from 'react' ;
 import * as Dome from 'dome' ;
-import 'dome/misc/exports' ;
 
 export default (() => (
   <h1 className='dome-text-title' style={{margin: 24}}>
diff --git a/ivette/src/dome/template/makefile b/ivette/src/dome/template/makefile
index 8abb88101324bc5b41a363d3d6ef56fa0e6cf5d3..376d32c4fadf74c1c5bd08d3f8761a1821cb570d 100644
--- a/ivette/src/dome/template/makefile
+++ b/ivette/src/dome/template/makefile
@@ -13,8 +13,6 @@ DOME?=dome
 DOME_ARGS?=
 DOME_DEV_ARGS?=
 DOME_APP_ARGS?=
-DOME_EXPORTS?=
-DOME_PLUGINS?=
 DOME_CLI?=./bin/$(DOME_MK_NAME)
 DOME_DOC?=./doc/html
 DOME_API?=
@@ -38,15 +36,12 @@ dome-help:
 	@echo "  make dome-templ   Update templates"
 	@echo "  make dome-reboot  Rebuild templates from scratch"
 	@echo "  make dome-clean   Remove dome temporary files"
-	@echo "  make dome-plugins Package plugins for distribution"
 	@echo
 	@echo "[Dome] Development:"
 	@echo "  Dome framework  DOME         = '$(DOME)'"
 	@echo "  Local command   DOME_CLI     = '$(DOME_CLI)'"
 	@echo "  Local arguments DOME_ARGS    = '$(DOME_ARGS)'"
 	@echo "  Extra arg.(dev) DOME_DEV     = '$(DOME_DEV)'"
-	@echo "  Export modules  DOME_EXPORTS = '$(DOME_EXPORTS)'"
-	@echo "  Plugin modules  DOME_PLUGINS = '$(DOME_PLUGINS)'"
 	@echo
 	@echo "[Dome] Documentation:"
 	@echo "  Application     APP          = '$(APP)'"
@@ -134,7 +129,6 @@ DOME_MK_TEMPLATES= \
 	.gitignore \
 	.babelrc \
 	webpack.main.js \
-	webpack.plugin.js \
 	webpack.renderer.js \
 	electron-webpack.json \
 	src/main/index.js \
@@ -169,9 +163,6 @@ webpack.main.js: $(DOME)/template/update.sh $(DOME)/template/webpack.main.js
 webpack.renderer.js: $(DOME)/template/update.sh $(DOME)/template/webpack.renderer.js
 	@$^ $@
 
-webpack.plugin.js: $(DOME)/template/update.sh $(DOME)/template/webpack.plugin.js
-	@$^ $@
-
 electron-webpack.json: $(DOME)/template/update.sh $(DOME)/template/electron-webpack.json
 	@$^ $@
 
@@ -205,82 +196,6 @@ src/renderer/Preferences.js:
 
 endif
 
-# --------------------------------------------------------------------------
-# ---  Exported API for Plugins
-# --------------------------------------------------------------------------
-
-.PHONY: dome-export-dev dome-export-app
-
-DOME_MK_EXPORTS_JS=$(DOME)/src/misc/exports.js
-
-# --------------------------------------------------------------------------
-
-dome-export-dev:
-	@rm -f $(DOME_MK_EXPORTS_JS)
-	@echo "// Static Plugins Loader" > $(DOME_MK_EXPORTS_JS)
-	@for m in $(DOME_EXPORTS) ;\
-	 do \
-		echo "[Dome] installing '$$m'" ;\
-		echo "import '$$m';" \
-		>> $(DOME_MK_EXPORTS_JS) ;\
-	 done
-	@for m in $(DOME_PLUGINS) ;\
-	 do \
-		echo "[Dome] loading plugin $$m" ;\
-		echo "import '@plugins/$$m';" >> $(DOME_MK_EXPORTS_JS) ;\
-	 done
-	@chmod a-w $(DOME_MK_EXPORTS_JS)
-
-# --------------------------------------------------------------------------
-
-dome-export-app:
-	@rm -f $(DOME_MK_EXPORTS_JS)
-	@echo "// Static Loader (Generated by Dome)" > $(DOME_MK_EXPORTS_JS)
-	@echo "import { register } from 'dome/misc/plugins' ;" >> $(DOME_MK_EXPORTS_JS) ;
-	@echo "[Dome] export 'dome'" ;
-	@$(DOME)/template/export.sh $(DOME) >> $(DOME_MK_EXPORTS_JS)
-	@for m in $(DOME_EXPORTS) ;\
-	 do \
-		echo "[Dome] export '$$m'" ;\
-		echo "{ let m = require('$$m'); register('$$m',m); }" \
-		>> $(DOME_MK_EXPORTS_JS) ;\
-	 done
-	@for m in $(DOME_PLUGINS) ;\
-	 do \
-		echo "[Dome] install '@plugins/$$m'" ;\
-		echo "{ let m = require('@plugins/$$m'); register('@plugins/$$m',m); }" \
-		>> $(DOME_MK_EXPORTS_JS) ;\
-	 done
-	@chmod a-w $(DOME_MK_EXPORTS_JS)
-
-# --------------------------------------------------------------------------
-# ---  Packaging Plugins
-# --------------------------------------------------------------------------
-
-.PHONY: dome-plugins dome-plugin-%
-
-DOME_MK_PLUGINS_TARGET=$(addprefix dome-plugin-, $(DOME_PLUGINS))
-DOME_MK_PLUGINS_SOURCE=$(addprefix src/plugins/, $(DOME_PLUGINS))
-DOME_MK_PLUGINS_CONFIG=$(addsuffix /package.json, $(DOME_MK_PLUGINS_SOURCE))
-
-dome-plugins: $(DOME_MK_PLUGINS_CONFIG) $(DOME_MK_PLUGINS_TARGET)
-
-dome-plugin-%: src/plugins/%/package.json webpack.plugin.js
-	@echo "[Dome] building plugin '$*'"
-	@rm -fr dist/plugins/$*
-	@mkdir -p dist/plugins/$*
-	@node $(DOME)/template/packplugin.js '$*'
-	DOME=$(DOME) DOME_PLUGIN='$*' yarn run webpack -p --config webpack.plugin.js
-	@echo "[Dome] plugin packaged in ./dist/plugins/$*"
-
-src/plugins/%/package.json:
-	@echo "[Dome] creating package.json for plugin '$*'"
-	@echo '{' > $@
-	@echo '  "name": "$*",' >> $@
-	@echo '  "version": "0.1",' >> $@
-	@echo '  "license": "UNLICENSED"' >> $@
-	@echo '}' >> $@
-
 # --------------------------------------------------------------------------
 # ---  Application Development
 # --------------------------------------------------------------------------
@@ -289,7 +204,7 @@ DOME_MK_CLIDIR=$(dir $(DOME_CLI))
 
 .PHONY: dome-dev
 
-dome-dev: dome-pkg dome-templ dome-export-dev
+dome-dev: dome-pkg dome-templ
 	@echo "[Dome] linking $(DOME_CLI)"
 	@mkdir -p $(DOME_MK_CLIDIR)
 	@rm -f $(DOME_CLI)
@@ -307,7 +222,7 @@ dome-dev: dome-pkg dome-templ dome-export-dev
 
 .PHONY: dome-app
 
-dome-app: dome-pkg dome-templ dome-export-app
+dome-app: dome-pkg dome-templ
 	@echo "[Dome] compiling application (production)"
 	DOME=$(DOME) DOME_ENV='app' yarn run electron-webpack app
 	@echo "[Dome] linking $(DOME_CLI)"
@@ -334,7 +249,7 @@ dome-dist: dome-app
 # --------------------------------------------------------------------------
 
 DOME_MK_ICON_MAKE=$(DOME)/doc/icons.js
-DOME_MK_ICON_DATA=$(DOME)/src/renderer/controls/icons.json
+DOME_MK_ICON_DATA=$(DOME)/renderer/controls/icons.json
 DOME_MK_ICON_HTML=$(DOME)/doc/template/gallery-icons.html
 
 $(DOME_MK_ICON_HTML): $(DOME_MK_ICON_MAKE) $(DOME_MK_ICON_DATA)
@@ -345,8 +260,7 @@ $(DOME_MK_ICON_HTML): $(DOME_MK_ICON_MAKE) $(DOME_MK_ICON_DATA)
 # ---  Dome Documentation
 # --------------------------------------------------------------------------
 
-DOME_MK_DOC_SRC=$(DOME_API) $(addprefix src/plugins/, $(DOME_PLUGINS))
-DOME_MK_DOC_API=$(addprefix $(CURDIR)/, $(DOME_MK_DOC_SRC))
+DOME_MK_DOC_API=$(addprefix $(CURDIR)/, $(DOME_API))
 DOME_MK_DOC_OUT=$(addprefix $(CURDIR)/, $(DOME_DOC))
 
 dome-doc: $(DOME_MK_BIN)/jsdoc $(DOME_MK_ICON_HTML)
diff --git a/ivette/src/dome/template/packplugin.js b/ivette/src/dome/template/packplugin.js
deleted file mode 100644
index d0a9f265c2826d99fc11b7fed2a32ba4a574fb00..0000000000000000000000000000000000000000
--- a/ivette/src/dome/template/packplugin.js
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/node
-
-const fs = require('fs');
-const name = process.argv[2];
-const INFOS = [
-  'name',
-  'version',
-  'description',
-  'homepage',
-  'bugs',
-  'keywords',
-  'author',
-  'contributors',
-  'repository',
-  'license'
-];
-
-const dst = {
-  name,
-  version: '0.1',
-  license: 'UNLICENSED',
-  main: 'bundle.js'
-};
-
-let src = './src/plugins/' + name + '/package.json' ;
-let tgt = './dist/plugins/' + name + '/package.json' ;
-let pkg = JSON.parse( fs.readFileSync( src , 'UTF-8' ) );
-INFOS.forEach((fd) => { let d = pkg[fd] ; if (!d) dst[fd] = d });
-fs.writeFileSync( tgt , JSON.stringify(dst) , 'UTF-8' );
-
-// End.
diff --git a/ivette/share/typescript-config.el b/ivette/src/dome/template/typescript.el
similarity index 100%
rename from ivette/share/typescript-config.el
rename to ivette/src/dome/template/typescript.el
diff --git a/ivette/src/dome/template/webpack.main.js b/ivette/src/dome/template/webpack.main.js
index c95133c8fdb4e5eb79f7db0e43ed3a5ce038649d..3d91c95097c725faad8398566de393881c2a3b02 100644
--- a/ivette/src/dome/template/webpack.main.js
+++ b/ivette/src/dome/template/webpack.main.js
@@ -21,7 +21,7 @@ function domeDevtools() {
   case 'dev':
     return 'electron-devtools-installer';
   default:
-    return path.resolve( DOME , 'src/misc/devtools.js' );
+    return path.resolve( DOME , 'misc/devtools.js' );
   }
 }
 
@@ -37,8 +37,8 @@ module.exports = {
   resolve: {
     extensions: ['.ts', '.tsx', '.js', 'jsx', '.json'],
     alias: {
-      'dome$':         path.resolve( DOME , 'src/main/dome.ts' ),
-      'dome/system$':  path.resolve( DOME , 'src/misc/system.ts' ),
+      'dome$':         path.resolve( DOME , 'main/dome.ts' ),
+      'dome/system$':  path.resolve( DOME , 'misc/system.ts' ),
       'dome/devtools': domeDevtools()
     }
   }
diff --git a/ivette/src/dome/template/webpack.plugin.js b/ivette/src/dome/template/webpack.plugin.js
deleted file mode 100644
index f60bdbf7ab8cda15ad9dcba2c747a5a3d82e57ed..0000000000000000000000000000000000000000
--- a/ivette/src/dome/template/webpack.plugin.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// --------------------------------------------------------------------------
-// --- Webpack configuration for packing plugins
-// --------------------------------------------------------------------------
-
-/*
-   Template of ./webpack.plugin.js from $(DOME)/template/webpack.plugin.js
-
-   This webpack definitions will be used to make plugin bundles.
-
-   You may extend it with your own additions.
-*/
-
-const path = require('path');
-const DOME = process.env.DOME || path.resolve( __dirname , 'dome' );
-const PLUGIN = process.env.DOME_PLUGIN ;
-const ENTRY = path.resolve( __dirname , 'src/plugins' , PLUGIN );
-const DIST = path.resolve( __dirname , 'dist/plugins' , PLUGIN );
-
-module.exports = {
-  entry: ENTRY,
-  output: {
-    path: DIST,
-    filename: 'bundle.js',
-    libraryTarget: 'commonjs2'
-  },
-  module: {
-    rules: [
-      { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] },
-      { test: /\.js$/, use: [ 'babel-loader' ], exclude: /(node_modules)/ }
-    ]
-  },
-  externals: [
-    'lodash',
-    'react',
-    /^dome\/.+$/,
-    /^@plugins\/.+$/,
-    /^@\/.+$/
-  ]
-};
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/template/webpack.renderer.js b/ivette/src/dome/template/webpack.renderer.js
index 8c79890dffa9b4d26c1a635a43c04cf99e9c51d0..f0b03d02cbe34d8c1399c36dbfa899cac95a368e 100644
--- a/ivette/src/dome/template/webpack.renderer.js
+++ b/ivette/src/dome/template/webpack.renderer.js
@@ -27,11 +27,10 @@ module.exports = {
   resolve: {
     extensions: ['.ts', '.tsx', '.js', 'jsx', '.json'],
     alias: {
-      '@plugins':     path.resolve( __dirname , 'src/plugins' ),
-      'dome/misc':    path.resolve( DOME , 'src/misc' ),
-      'dome/system':  path.resolve( DOME , 'src/misc/system.ts' ),
-      'dome$':        path.resolve( DOME , 'src/renderer/dome.tsx' ),
-      'dome':         path.resolve( DOME , 'src/renderer' ),
+      'dome/misc':    path.resolve( DOME , 'misc' ),
+      'dome/system':  path.resolve( DOME , 'misc/system.ts' ),
+      'dome$':        path.resolve( DOME , 'renderer/dome.tsx' ),
+      'dome':         path.resolve( DOME , 'renderer' ),
       'react-dom':    '@hot-loader/react-dom'
     }
   }
diff --git a/ivette/tsconfig.json b/ivette/tsconfig.json
index e929dbfa220830cf6f51d162318b913b2c90242d..1292c840771384a411a81a932177c88805047f1c 100644
--- a/ivette/tsconfig.json
+++ b/ivette/tsconfig.json
@@ -45,11 +45,11 @@
     "paths": {                                /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
       "frama-c/api/*": [ "api/generated/*" ],
       "frama-c/*": [ "src/frama-c/*" ],
-      "dome": [ "src/dome/src/renderer/dome.tsx" ],
-      "dome/system": [ "src/dome/src/misc/system.js" ],
-      "dome/devtools": [ "src/dome/src/misc/devtools.js" ],
-      "dome/misc/*": [ "src/dome/src/misc/*"],
-      "dome/*": [ "src/dome/src/renderer/*" ],
+      "dome": [ "src/dome/renderer/dome.tsx" ],
+      "dome/system": [ "src/dome/misc/system.js" ],
+      "dome/devtools": [ "src/dome/misc/devtools.js" ],
+      "dome/misc/*": [ "src/dome/misc/*"],
+      "dome/*": [ "src/dome/renderer/*" ],
       "codemirror/lib/codemirror": ["node_modules/@types/codemirror/index.d.ts"],
     },
     // "rootDirs": [],                        /* List of root folders whose combined content represents the structure of the project at runtime. */
@@ -104,9 +104,9 @@
       "src/frama-c/states.ts",
       "src/frama-c/utils.ts",
       "api/generated",
-      "src/dome/src/renderer",
-      "src/dome/src/misc/utils.ts",
-      "src/dome/src/misc/system.ts",
+      "src/dome/renderer",
+      "src/dome/misc/utils.ts",
+      "src/dome/misc/system.ts",
     ]
   }
 }
diff --git a/ivette/webpack.main.js b/ivette/webpack.main.js
index c95133c8fdb4e5eb79f7db0e43ed3a5ce038649d..3d91c95097c725faad8398566de393881c2a3b02 100644
--- a/ivette/webpack.main.js
+++ b/ivette/webpack.main.js
@@ -21,7 +21,7 @@ function domeDevtools() {
   case 'dev':
     return 'electron-devtools-installer';
   default:
-    return path.resolve( DOME , 'src/misc/devtools.js' );
+    return path.resolve( DOME , 'misc/devtools.js' );
   }
 }
 
@@ -37,8 +37,8 @@ module.exports = {
   resolve: {
     extensions: ['.ts', '.tsx', '.js', 'jsx', '.json'],
     alias: {
-      'dome$':         path.resolve( DOME , 'src/main/dome.ts' ),
-      'dome/system$':  path.resolve( DOME , 'src/misc/system.ts' ),
+      'dome$':         path.resolve( DOME , 'main/dome.ts' ),
+      'dome/system$':  path.resolve( DOME , 'misc/system.ts' ),
       'dome/devtools': domeDevtools()
     }
   }
diff --git a/ivette/webpack.plugin.js b/ivette/webpack.plugin.js
deleted file mode 100644
index f60bdbf7ab8cda15ad9dcba2c747a5a3d82e57ed..0000000000000000000000000000000000000000
--- a/ivette/webpack.plugin.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// --------------------------------------------------------------------------
-// --- Webpack configuration for packing plugins
-// --------------------------------------------------------------------------
-
-/*
-   Template of ./webpack.plugin.js from $(DOME)/template/webpack.plugin.js
-
-   This webpack definitions will be used to make plugin bundles.
-
-   You may extend it with your own additions.
-*/
-
-const path = require('path');
-const DOME = process.env.DOME || path.resolve( __dirname , 'dome' );
-const PLUGIN = process.env.DOME_PLUGIN ;
-const ENTRY = path.resolve( __dirname , 'src/plugins' , PLUGIN );
-const DIST = path.resolve( __dirname , 'dist/plugins' , PLUGIN );
-
-module.exports = {
-  entry: ENTRY,
-  output: {
-    path: DIST,
-    filename: 'bundle.js',
-    libraryTarget: 'commonjs2'
-  },
-  module: {
-    rules: [
-      { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] },
-      { test: /\.js$/, use: [ 'babel-loader' ], exclude: /(node_modules)/ }
-    ]
-  },
-  externals: [
-    'lodash',
-    'react',
-    /^dome\/.+$/,
-    /^@plugins\/.+$/,
-    /^@\/.+$/
-  ]
-};
-
-// --------------------------------------------------------------------------
diff --git a/ivette/webpack.renderer.js b/ivette/webpack.renderer.js
index e84c7293cb846ed8f5f4cdeeb40460f5350b808f..3a087a4b936b409aa9f22b85124205bd4dd3edfe 100644
--- a/ivette/webpack.renderer.js
+++ b/ivette/webpack.renderer.js
@@ -29,11 +29,10 @@ module.exports = {
     alias: {
       'frama-c/api':  path.resolve( __dirname , 'api/generated' ),
       'frama-c':      path.resolve( __dirname , 'src/frama-c' ),
-      '@plugins':     path.resolve( __dirname , 'src/plugins' ),
-      'dome/misc':    path.resolve( DOME , 'src/misc' ),
-      'dome/system':  path.resolve( DOME , 'src/misc/system.ts' ),
-      'dome$':        path.resolve( DOME , 'src/renderer/dome.tsx' ),
-      'dome':         path.resolve( DOME , 'src/renderer' ),
+      'dome/misc':    path.resolve( DOME , 'misc' ),
+      'dome/system':  path.resolve( DOME , 'misc/system.ts' ),
+      'dome$':        path.resolve( DOME , 'renderer/dome.tsx' ),
+      'dome':         path.resolve( DOME , 'renderer' ),
       'react-dom':    '@hot-loader/react-dom'
     }
   }