diff --git a/README.md b/README.md
index c710bdc..755b345 100644
--- a/README.md
+++ b/README.md
@@ -85,6 +85,8 @@ The following options are supported:
 - `redirect` (String): alternative to _page_ option - redirects to a specific slug;
 - `widgets` (Array): list of widgets (as View components) to present.
 
+> 📚 [Wiki Root page](https://github.com/blocknotes/tiny_admin/wiki/Root) available
+
 Example:
 
 ```yml
@@ -98,6 +100,8 @@ root:
 
 `helper_class` (String): class or module with helper methods, used for attributes' formatters.
 
+> 📚 [Wiki Helper methods page](https://github.com/blocknotes/tiny_admin/wiki/Helper-methods) available
+
 `page_not_found` (String): a view object to render when a missing page is requested.
 
 `record_not_found` (String): a view object to render when a missing record is requested.
@@ -113,11 +117,15 @@ root:
 
 `extra_styles` (String): inline CSS styles.
 
+> 📚 [Wiki Styles and scripts page](https://github.com/blocknotes/tiny_admin/wiki/Styles-and-scripts) available
+
 `authentication` (Hash): define the authentication method, properties:
 
 - `plugin` (String): a plugin class to use (ex. `TinyAdmin::Plugins::SimpleAuth`);
 - `password` (String): a password hash used by _SimpleAuth_ plugin (generated with `Digest::SHA512.hexdigest("some password")`).
 
+> 📚 [Wiki Authentication page](https://github.com/blocknotes/tiny_admin/wiki/Authentication) available
+
 Example:
 
 ```yml
@@ -134,6 +142,8 @@ authentication:
 - `widgets` (Array): list of widgets (as View components) to present;
 - other properties depends on the section's type.
 
+> 📚 [Wiki Pages page](https://github.com/blocknotes/tiny_admin/wiki/Pages) available
+
 For _content_ sections:
 
 - `content` (String): the HTML content to present.
@@ -186,6 +196,9 @@ For _resource_ sections:
 
 - `model` (String): the class to use to fetch the data on an item of a collection;
 - `repository` (String): the class to get the properties related to the model;
+
+> 📚 [Wiki Repository page](https://github.com/blocknotes/tiny_admin/wiki/Repository) available
+
 - `index` (Hash): collection's action options (see below);
 - `show` (Hash): detail's action options (see below);
 - `collection_actions` (Array of hashes): custom collection's actions;
diff --git a/bin/rails b/bin/rails
index 71b3ad6..067f635 100755
--- a/bin/rails
+++ b/bin/rails
@@ -5,7 +5,7 @@
 ENV['RAILS_ENV'] ||= 'test'
 
 ENGINE_ROOT = File.expand_path('..', __dir__)
-APP_PATH = File.expand_path("../spec/dummy/config/application", __dir__)
+APP_PATH = File.expand_path("../spec/dummy_rails/config/application", __dir__)
 
 # Set up gems listed in the Gemfile.
 ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
diff --git a/extra/hanami_app/Gemfile b/extra/hanami_app/Gemfile
new file mode 100644
index 0000000..005c85e
--- /dev/null
+++ b/extra/hanami_app/Gemfile
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+source 'https://rubygems.org'
+git_source(:github) { |repo| "https://github.com/#{repo}.git" }
+
+gem 'rack'
+gem 'webrick'
+
+gem 'hanami-router'
+
+gem 'tiny_admin', path: '../../'
diff --git a/extra/hanami_app/app.rb b/extra/hanami_app/app.rb
index 61ae7d7..1e10a96 100644
--- a/extra/hanami_app/app.rb
+++ b/extra/hanami_app/app.rb
@@ -1,24 +1,8 @@
 # frozen_string_literal: true
 
-# --- dependencies -------------------------------------------------------------
-begin
-  require 'bundler/inline'
-rescue LoadError => e
-  abort "#{e} - Bundler version 1.10 or later is required. Please update your Bundler"
-end
-
-gemfile(true) do
-  source 'https://rubygems.org'
-
-  gem 'rack'
-  gem 'webrick'
-
-  gem 'hanami-router'
-
-  gem 'tiny_admin', path: '../../'
-end
+require 'bundler'
+Bundler.require
 
-# --- Hanami application -------------------------------------------------------
 require_relative '../tiny_admin_settings'
 
 app = Hanami::Router.new do
@@ -27,4 +11,4 @@
   mount TinyAdmin::Router, at: '/admin'
 end
 
-Rack::Server.new(app: app, Port: 3000).start
+Rack::Server.new(app: app, Port: 3000).start if __FILE__ == $PROGRAM_NAME
diff --git a/extra/rails_app/Gemfile b/extra/rails_app/Gemfile
new file mode 100644
index 0000000..7a455aa
--- /dev/null
+++ b/extra/rails_app/Gemfile
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+source 'https://rubygems.org'
+git_source(:github) { |repo| "https://github.com/#{repo}.git" }
+
+gem 'rails', '~> 7.0'
+gem 'webrick'
+
+gem 'tiny_admin', path: '../../'
diff --git a/extra/rails_app/app.rb b/extra/rails_app/app.rb
index 8ee6d2b..90fdd52 100644
--- a/extra/rails_app/app.rb
+++ b/extra/rails_app/app.rb
@@ -1,26 +1,12 @@
 # frozen_string_literal: true
 
-# --- dependencies -------------------------------------------------------------
-begin
-  require 'bundler/inline'
-rescue LoadError => e
-  abort "#{e} - Bundler version 1.10 or later is required. Please update your Bundler"
-end
-
-gemfile(true) do
-  source 'https://rubygems.org'
-
-  gem 'rails', '~> 7.0'
-  gem 'webrick'
-
-  gem 'tiny_admin', path: '../../'
-end
+require 'bundler'
+Bundler.require
 
-# --- Rails application --------------------------------------------------------
 require 'action_controller/railtie'
 require_relative '../tiny_admin_settings'
 
-class App < Rails::Application
+class RailsApp < Rails::Application
   routes.append do
     root to: proc { [200, {}, ['Root page']] }
 
@@ -30,6 +16,6 @@ class App < Rails::Application
   config.eager_load = false
 end
 
-App.initialize!
+RailsApp.initialize!
 
-Rack::Server.new(app: App, Port: 3000).start
+Rack::Server.new(app: RailsApp, Port: 3000).start if __FILE__ == $PROGRAM_NAME
diff --git a/extra/roda_app/Gemfile b/extra/roda_app/Gemfile
new file mode 100644
index 0000000..651c01b
--- /dev/null
+++ b/extra/roda_app/Gemfile
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+source 'https://rubygems.org'
+git_source(:github) { |repo| "https://github.com/#{repo}.git" }
+
+gem 'rack'
+gem 'rackup'
+gem 'webrick'
+
+gem 'roda'
+
+gem 'tiny_admin', path: '../../'
diff --git a/extra/roda_app/app.rb b/extra/roda_app/app.rb
index 004282f..4fc2a32 100644
--- a/extra/roda_app/app.rb
+++ b/extra/roda_app/app.rb
@@ -1,28 +1,11 @@
 # frozen_string_literal: true
 
-# --- dependencies -------------------------------------------------------------
-begin
-  require 'bundler/inline'
-rescue LoadError => e
-  abort "#{e} - Bundler version 1.10 or later is required. Please update your Bundler"
-end
-
-gemfile(true) do
-  source 'https://rubygems.org'
-
-  gem 'rack'
-  gem 'rackup'
-  gem 'webrick'
-
-  gem 'roda'
-
-  gem 'tiny_admin', path: '../../'
-end
+require 'bundler'
+Bundler.require
 
-# --- Roda application ---------------------------------------------------------
 require_relative '../tiny_admin_settings'
 
-class App < Roda
+class RodaApp < Roda
   route do |r|
     r.root do
       'Root page'
@@ -34,4 +17,4 @@ class App < Roda
   end
 end
 
-Rackup::Server.new(app: App, Port: 3000).start
+Rackup::Server.new(app: RodaApp, Port: 3000).start if __FILE__ == $PROGRAM_NAME
diff --git a/extra/standalone_app/Gemfile b/extra/standalone_app/Gemfile
new file mode 100644
index 0000000..1d49483
--- /dev/null
+++ b/extra/standalone_app/Gemfile
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+source 'https://rubygems.org'
+git_source(:github) { |repo| "https://github.com/#{repo}.git" }
+
+gem 'rack'
+gem 'rackup'
+gem 'webrick'
+
+gem 'tiny_admin', path: '../../'
diff --git a/extra/standalone_app/app.rb b/extra/standalone_app/app.rb
index 1d83ff1..72120ab 100644
--- a/extra/standalone_app/app.rb
+++ b/extra/standalone_app/app.rb
@@ -1,27 +1,12 @@
 # frozen_string_literal: true
 
-# --- dependencies -------------------------------------------------------------
-begin
-  require 'bundler/inline'
-rescue LoadError => e
-  abort "#{e} - Bundler version 1.10 or later is required. Please update your Bundler"
-end
-
-gemfile(true) do
-  source 'https://rubygems.org'
-
-  gem 'rack'
-  gem 'rackup'
-  gem 'webrick'
-
-  gem 'tiny_admin', path: '../../'
-end
+require 'bundler'
+Bundler.require
 
-# --- Standalone application ---------------------------------------------------
 require_relative '../tiny_admin_settings'
 
 TinyAdmin.configure do |settings|
   settings.root_path = '/'
 end
 
-Rackup::Server.new(app: TinyAdmin::Router, Port: 3000).start
+Rackup::Server.new(app: TinyAdmin::Router, Port: 3000).start if __FILE__ == $PROGRAM_NAME
