diff --git a/config/install/block.block.seven_breadcrumbs.yml b/config/install/block.block.seven_breadcrumbs.yml
new file mode 100644
index 0000000000000000000000000000000000000000..edbdfbd125df92d8bdea36236fdcd23206c8a18d
--- /dev/null
+++ b/config/install/block.block.seven_breadcrumbs.yml
@@ -0,0 +1,19 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - system
+  theme:
+    - seven
+id: seven_breadcrumbs
+theme: seven
+region: breadcrumb
+weight: 0
+provider: null
+plugin: system_breadcrumb_block
+settings:
+  id: system_breadcrumb_block
+  label: Breadcrumbs
+  provider: system
+  label_display: '0'
+visibility: {  }
diff --git a/config/install/block.block.seven_content.yml b/config/install/block.block.seven_content.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d92214c67df9e74c158edbae63e67015e10ff3c2
--- /dev/null
+++ b/config/install/block.block.seven_content.yml
@@ -0,0 +1,19 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - system
+  theme:
+    - seven
+id: seven_content
+theme: seven
+region: content
+weight: 0
+provider: null
+plugin: system_main_block
+settings:
+  id: system_main_block
+  label: 'Main page content'
+  provider: system
+  label_display: '0'
+visibility: {  }
diff --git a/config/install/block.block.seven_help.yml b/config/install/block.block.seven_help.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9a4e2180f3b22a6effe4c5d9c5f452cb730e54ce
--- /dev/null
+++ b/config/install/block.block.seven_help.yml
@@ -0,0 +1,19 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - help
+  theme:
+    - seven
+id: seven_help
+theme: seven
+region: help
+weight: 0
+provider: null
+plugin: help_block
+settings:
+  id: help_block
+  label: Help
+  provider: help
+  label_display: '0'
+visibility: {  }
diff --git a/config/install/block.block.seven_local_actions.yml b/config/install/block.block.seven_local_actions.yml
new file mode 100644
index 0000000000000000000000000000000000000000..61cdb177c832e4b00a0000a64fb5c27eea2154cf
--- /dev/null
+++ b/config/install/block.block.seven_local_actions.yml
@@ -0,0 +1,17 @@
+langcode: en
+status: true
+dependencies:
+  theme:
+    - seven
+id: seven_local_actions
+theme: seven
+region: content
+weight: -10
+provider: null
+plugin: local_actions_block
+settings:
+  id: local_actions_block
+  label: 'Primary admin actions'
+  provider: core
+  label_display: '0'
+visibility: {  }
diff --git a/config/install/block.block.seven_login.yml b/config/install/block.block.seven_login.yml
new file mode 100644
index 0000000000000000000000000000000000000000..110e8fd80087553118f5fdd67ac0d29e3748cea2
--- /dev/null
+++ b/config/install/block.block.seven_login.yml
@@ -0,0 +1,19 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - user
+  theme:
+    - seven
+id: seven_login
+theme: seven
+region: content
+weight: 10
+provider: null
+plugin: user_login_block
+settings:
+  id: user_login_block
+  label: 'User login'
+  provider: user
+  label_display: visible
+visibility: {  }
diff --git a/config/install/block.block.seven_messages.yml b/config/install/block.block.seven_messages.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f7b6038b230e617f5d7a4fbfcd4ac785b3b710ec
--- /dev/null
+++ b/config/install/block.block.seven_messages.yml
@@ -0,0 +1,19 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - system
+  theme:
+    - seven
+id: seven_messages
+theme: seven
+region: highlighted
+weight: 0
+provider: null
+plugin: system_messages_block
+settings:
+  id: system_messages_block
+  label: 'Status messages'
+  provider: system
+  label_display: '0'
+visibility: {  }
diff --git a/config/install/block.block.seven_page_title.yml b/config/install/block.block.seven_page_title.yml
new file mode 100644
index 0000000000000000000000000000000000000000..56df293f3bb330d9f17f42ce5fa8466375929c4e
--- /dev/null
+++ b/config/install/block.block.seven_page_title.yml
@@ -0,0 +1,17 @@
+langcode: en
+status: true
+dependencies:
+  theme:
+    - seven
+id: seven_page_title
+theme: seven
+region: header
+weight: -30
+provider: null
+plugin: page_title_block
+settings:
+  id: page_title_block
+  label: 'Page title'
+  provider: core
+  label_display: '0'
+visibility: {  }
diff --git a/config/install/block.block.seven_primary_local_tasks.yml b/config/install/block.block.seven_primary_local_tasks.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d0017c2c8fe14999de054809ca70106546b18391
--- /dev/null
+++ b/config/install/block.block.seven_primary_local_tasks.yml
@@ -0,0 +1,19 @@
+langcode: en
+status: true
+dependencies:
+  theme:
+    - seven
+id: seven_primary_local_tasks
+theme: seven
+region: header
+weight: 0
+provider: null
+plugin: local_tasks_block
+settings:
+  id: local_tasks_block
+  label: 'Primary tabs'
+  provider: core
+  label_display: '0'
+  primary: true
+  secondary: false
+visibility: {  }
diff --git a/config/install/block.block.seven_secondary_local_tasks.yml b/config/install/block.block.seven_secondary_local_tasks.yml
new file mode 100644
index 0000000000000000000000000000000000000000..33391991c7dbcdf2bf9d24003fc4108f251ea557
--- /dev/null
+++ b/config/install/block.block.seven_secondary_local_tasks.yml
@@ -0,0 +1,19 @@
+langcode: en
+status: true
+dependencies:
+  theme:
+    - seven
+id: seven_secondary_local_tasks
+theme: seven
+region: pre_content
+weight: 0
+provider: null
+plugin: local_tasks_block
+settings:
+  id: local_tasks_block
+  label: 'Secondary tabs'
+  provider: core
+  label_display: '0'
+  primary: false
+  secondary: true
+visibility: {  }
diff --git a/config/install/system.cron.yml b/config/install/system.cron.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e6f30d3d2d8e3a8b8012df9b053938ce86928974
--- /dev/null
+++ b/config/install/system.cron.yml
@@ -0,0 +1,3 @@
+threshold:
+  requirements_warning: 172800
+  requirements_error: 1209600
diff --git a/config/install/system.theme.yml b/config/install/system.theme.yml
new file mode 100644
index 0000000000000000000000000000000000000000..57dadd47b64187d5b58050af8ff67960253a81aa
--- /dev/null
+++ b/config/install/system.theme.yml
@@ -0,0 +1,2 @@
+admin: seven
+default: bartik
diff --git a/config/install/user.role.administrator.yml b/config/install/user.role.administrator.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e5453b725d30b8b2a2e2165abd7bc4625a1041c2
--- /dev/null
+++ b/config/install/user.role.administrator.yml
@@ -0,0 +1,8 @@
+langcode: en
+status: true
+dependencies: {  }
+id: administrator
+label: Administrator
+weight: 2
+is_admin: true
+permissions: {  }
diff --git a/varbase.info.yml b/varbase.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3af83c98e7c909666f752584cda972da1c3e9a7d
--- /dev/null
+++ b/varbase.info.yml
@@ -0,0 +1,36 @@
+name: Varbase
+type: profile
+description: 'Varbase is an enhanced Drupal distribution with a lot of necessities.'
+version: 8.x-4.x
+core: 8.x
+dependencies:
+  - node
+  - block
+  - breakpoint
+  - ckeditor
+  - config
+  - contextual
+  - menu_link_content
+  - datetime
+  - block_content
+  - quickedit
+  - editor
+  - help
+  - image
+  - menu_ui
+  - options
+  - path
+  - page_cache
+  - dynamic_page_cache
+  - taxonomy
+  - dblog
+  - shortcut
+  - toolbar
+  - field_ui
+  - file
+  - rdf
+  - views
+  - views_ui
+themes:
+  - bartik
+  - seven
diff --git a/varbase.install b/varbase.install
new file mode 100644
index 0000000000000000000000000000000000000000..17c4202f8ae2481aa2bd72c71e983934d699889d
--- /dev/null
+++ b/varbase.install
@@ -0,0 +1,28 @@
+<?php
+/**
+ * @file
+ * Install, update and uninstall functions for the Varbase installation profile.
+ */
+
+use Drupal\user\Entity\User;
+use Drupal\user\RoleInterface;
+
+/**
+ * Implements hook_install().
+ *
+ * Perform actions to set up the site for this profile.
+ *
+ * @see system_install()
+ */
+function varbase_install() {
+  // Set front page to "node".
+  \Drupal::configFactory()->getEditable('system.site')->set('page.front', '/node')->save(TRUE);
+
+  // Assign user 1 the "administrator" role.
+  $user = User::load(1);
+  $user->roles[] = 'administrator';
+  $user->save();
+
+  // Enable the admin theme.
+  \Drupal::configFactory()->getEditable('node.settings')->set('use_admin_theme', TRUE)->save(TRUE);
+}
diff --git a/varbase.links.menu.yml b/varbase.links.menu.yml
new file mode 100644
index 0000000000000000000000000000000000000000..67412d1fda78333b0c41899eb87c83bf9f070f88
--- /dev/null
+++ b/varbase.links.menu.yml
@@ -0,0 +1,4 @@
+varbase.front_page:
+  title: 'Home'
+  route_name: '<front>'
+  menu_name: main
diff --git a/varbase.profile b/varbase.profile
new file mode 100644
index 0000000000000000000000000000000000000000..a1dcd8e2d84b6cf595df6af60667d7fa51dd03ab
--- /dev/null
+++ b/varbase.profile
@@ -0,0 +1,25 @@
+<?php
+/**
+ * @file
+ * Enables modules and site configuration for a Varbase site installation.
+ */
+
+use Drupal\contact\Entity\ContactForm;
+use Drupal\Core\Form\FormStateInterface;
+
+/**
+ * Implements hook_form_FORM_ID_alter() for install_configure_form().
+ *
+ * Allows the profile to alter the site configuration form.
+ */
+function varbase_form_install_configure_form_alter(&$form, FormStateInterface $form_state) {
+  // Add a placeholder as example that one can choose an arbitrary site name.
+  $form['site_information']['site_name']['#attributes']['placeholder'] = t('My site');
+
+  // Default email to start with noreply@ (the site can not send emails back).
+  $form['site_information']['site_mail']['#default_value'] = 'noreply@' . $_SERVER['SERVER_NAME'];
+
+  // Default user 1 username should be 'webmaster'.
+  $form['admin_account']['account']['name']['#default_value'] = 'webmaster';
+  $form['admin_account']['account']['mail']['#default_value'] = 'webmaster@' . $_SERVER['SERVER_NAME'];
+}