diff --git a/.travis.yml b/.travis.yml
index e270a2b6dcdef0e55b0144be05d3fdeee1ade66f..7e134231f4653911edfafb558d5fb2c01ce62447 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -115,7 +115,7 @@ install:
 
   ## Install with drush.
   - cd docroot
-  - drush site-install varbase --yes --site-name='Test Varbase4c' --account-name=webmaster --account-pass=dD.123123ddd --account-mail=webmaster@vardot.com --db-url="mysql://root:@localhost/test_varbase4c" varbase_multilingual_configuration.enable_multilingual=true varbase_extra_components.vmi=true varbase_extra_components.varbase_heroslider_media=true varbase_extra_components.varbase_carousels=true varbase_extra_components.varbase_search=true varbase_development_tools.varbase_development=true
+  - drush site-install varbase --yes --site-name='Test Varbase4c' --account-name=webmaster --account-pass=dD.123123ddd --account-mail=webmaster@vardot.com --db-url="mysql://root:@localhost/test_varbase4c" varbase_multilingual_configuration.enable_multilingual=true varbase_extra_components.vmi=true varbase_extra_components.varbase_heroslider_media=true varbase_extra_components.varbase_carousels=true varbase_extra_components.varbase_search=true varbase_extra_components.varbase_blog=true varbase_development_tools.varbase_development=true
   - drush pm-enable vbp_text_and_image --yes
   - drush config-set system.performance css.preprocess 0 --yes
   - drush config-set system.performance js.preprocess 0 --yes
diff --git a/composer.json b/composer.json
index dc7dc273f087a024c3299121b69db8ac10731282..4c28fe3dfd7b6288fca56e9135681f15cc92038e 100644
--- a/composer.json
+++ b/composer.json
@@ -202,153 +202,139 @@
     "branch-alias": {
       "dev-8.x-4.x": "8.4.x-dev"
     },
-    "installer-paths": {
-      "docroot/core": ["drupal/core"],
-      "docroot/profiles/{$name}": ["type:drupal-profile"],
-      "docroot/modules/contrib/{$name}": ["type:drupal-module"],
-      "docroot/themes/contrib/{$name}": ["type:drupal-theme"],
-      "docroot/libraries/{$name}": ["type:drupal-library"],
-      "drush/contrib/{$name}": ["type:drupal-drush"]
+    "autoload": {
+        "psr-4": {
+            "Varbase\\composer\\": "src/composer"
+        }
     },
-    "drupal-libraries": {
-      "library-directory": "docroot/libraries",
-      "libraries": [
-          {"name": "dropzone","package": "vardot/dropzone"},
-          {"name": "blazy", "package": "vardot/blazy"},
-          {"name": "slick", "package": "vardot/slick"},
-          {"name": "ace", "package": "vardot/ace"}
-      ]
+    "scripts": {
+        "drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold",
+        "pre-install-cmd": ["Varbase\\composer\\ScriptHandler::checkComposerVersion"],
+        "pre-update-cmd": ["Varbase\\composer\\ScriptHandler::checkComposerVersion"],
+        "post-install-cmd": [
+            "Varbase\\composer\\ScriptHandler::createRequiredFiles",
+            "Varbase\\composer\\ScriptHandler::removeGitDirectories",
+            "@composer drupal-scaffold",
+            "./bin/phing push"
+        ],
+        "post-update-cmd": [
+            "Varbase\\composer\\ScriptHandler::createRequiredFiles",
+            "Varbase\\composer\\ScriptHandler::removeGitDirectories",
+            "./bin/phing push"
+        ],
+        "post-drupal-scaffold-cmd": ["Varbase\\composer\\ScriptHandler::postDrupalScaffoldProcedure"],
+        "create-new-vartheme": "scripts/create-new-vartheme.sh"
     },
-    "enable-patching": true,
-    "patches": {
-      "drupal/core": {
-        "Issue #1356276: Allow profiles to provide a base_parent profile and load them in the correct order":
-        "https://www.drupal.org/files/issues/1356276-408--8.4.4.patch",
-        "Issue #2720101 Label (Title) not set for Views block (exposed filters in Block)":
-        "https://www.drupal.org/files/issues/2720101-43.patch",
-        "Issue #2599228: Programmatically created translatable content type returns SQL error on content creation":
-        "https://www.drupal.org/files/issues/2599228-31.patch",
-        "Issue #2893892: Fixed Warning Invalid argument supplied for foreach() in Drupal":
-        "https://www.drupal.org/files/issues/patch_empty_fix.patch"
-      },
-      "drupal/page_manager": {
-        "Issue #2624972: No configuration possible in UI for 301, 303, etc. HTTP responses":
-        "https://www.drupal.org/files/issues/page_manager-redirect_location-2624972-30.patch"
-      },
-      "drupal/coffee": {
-        "Issue #2815381: Coffee breaks whole page when using right to left (rtl) languages in drupal 8":
-        "https://www.drupal.org/files/issues/coffee-coffee_breaks_page_with_rtl-2815381-6.patch",
-        "Issue #2872093: Coffee css fixes in RTL":
-        "https://www.drupal.org/files/issues/2872093-10.patch"
-      },
-      "drupal/entityqueue": {
-        "Issue #2145441: Option to create Entityqueue tab on Entity pages.":
-        "https://www.drupal.org/files/issues/2145441-32.patch",
-        "Issue #2825773: Make Contextual links work for views using Entityqueue":
-        "https://www.drupal.org/files/issues/2825773-23-outside_in_to_settings_tray.patch",
-        "Issue #2916026: Only users with [Administer entityqueue] should be able to delete entityqueues":
-        "https://www.drupal.org/files/issues/only-users-with-administer-entityqueue-should-be-able-to-delete-entityqueues-2916026-3.patch",
-        "Issue #2917308: Only users with [Administer entityqueue] should be able to edit (configure) entityqueues":
-        "https://www.drupal.org/files/issues/only-users-with-administer-entityqueue-should-be-able-edit-configure-entityqueues-2917308-2.patch"
-      },
-      "drupal/l10n_client": {
-        "Issue #2867460: Incompatible with this version of Drupal core 8.3.0":
-        "https://www.drupal.org/files/issues/2867460-2.patch",
-        "Issue #2872668: User error: 0 is an invalid render array key":
-        "https://www.drupal.org/files/issues/l10n_client-hook_toolbar-fix-2872668-3.patch"
-      },
-      "drupal/yoast_seo": {
-        "Issue #2877613: Add [ Text (plain, long) ] filed type [string_log] for yoast seo to use.":
-        "https://www.drupal.org/files/issues/2877613-2_0.patch"
-      },
-      "drupal/paragraphs": {
-        "Issue #2461695: Support translatable paragraph entity reference revision field":
-        "https://www.drupal.org/files/issues/meta_support-2461695-222.patch",
-        "Issue #2868155: Add new hooks to allow easier editing of paragraph forms":
-        "https://www.drupal.org/files/issues/2868155-16.patch",
-        "Issue #2877927: Show add widget between paragraphs on hover":
-        "https://www.drupal.org/files/issues/2877927_29.patch",
-        "Issue #2909416: Hide duplicate action while translating.":
-        "https://www.drupal.org/files/issues/2909416-2.patch",
-        "Issue #2924774: Let Editors add/delete/clone paragraphs When [Editing a translation]":
-        "https://www.drupal.org/files/issues/2924774-4.patch"
-      },
-      "drupal/adminimal_theme": {
-        "Issue #2696393: Checkboxes with .error class are not usable":
-        "https://www.drupal.org/files/issues/adminimal-checkboxes_with_error-2696393-3.patch"
-      },
-      "drupal/google_analytics_reports": {
-        "Issue #2850463: Error when saving either google_analytics_reports view":
-        "https://www.drupal.org/files/issues/error_when_saving-2850463-2.patch",
-        "Issue #2860399: Warning: htmlspecialchars() expects parameter 1 to be string":
-        "https://www.drupal.org/files/issues/Fix_message-2860399-5.patch",
-        "Issue #2932010: Fixed an issue to Not to check Updates or import Fields while the Drupal site MAINTENANCE_MODE is in Install or Update.":
-        "https://www.drupal.org/files/issues/2932010-4.patch"
-      },
-      "drupal/ckeditor_media_embed": {
-        "Issue #2900313: Add ability to embed tweets and other rich content in WYSIWYG":
-        "https://www.drupal.org/files/issues/embed_rich_content_in_WYSIWYG-2900313-2.patch"
-      },
-      "drupal/config_perms": {
-        "Issue #2877329: When [content_translation, config_translate] module is enabled, And enabled [Custom Permissions], Then we will get  Route custom_perms_select_list_form does not exist":
-        "https://www.drupal.org/files/issues/2877329-16.patch"
-      },
-      "drupal/username_enumeration_prevention": {
-        "Issue #2871931: hook_requirements error on install phase":
-        "https://www.drupal.org/files/issues/username_enumeration_prevention-check_phase_runtime-2871931-5.patch"
-      },
-      "drupal/paragraphs_previewer": {
-        "Issue #2904917: Make paragraph previewer work with new UI/UX improvement patch":
-        "https://www.drupal.org/files/issues/2904917-2.patch"
-      },
-      "drupal/entity_clone": {
-        "Issue #2770687: Wrong redirection of page for entity clone module":
-        "https://www.drupal.org/files/issues/2770687_wrong_redirection_for_entity_9.patch",
-        "Issue #2800203: Event dispatcher for clone events":
-        "https://www.drupal.org/files/issues/entity_clone-event_dispatcher-2800203-5.patch",
-        "Issue #2706639: Support for cloning nodes that have another entities attached":
-        "https://www.drupal.org/files/issues/entity_clone-attached_entities-2706639-25.patch",
-        "Issue #2769823: Getting error after clicking on abort clone button":
-        "https://www.drupal.org/files/issues/entity_clone-abort_clone_causes_fatal_error-2769823-4.patch"
-      },
-      "drupal/default_content": {
-        "Issue #2900089: Invalid translation language error when selected installation language does not match demo content language":
-        "https://www.drupal.org/files/issues/2900089-14.patch"
-      },
-      "drupal/content_lock": {
-        "Issue #2907026: Fixed Warning: When we do not have content types yet in the system.":
-        "https://www.drupal.org/files/issues/2907026-7_0.patch"
-      },
-      "drupal/persistent_login": {
-        "Issue #2899530: Hide user^s local task":
-        "https://www.drupal.org/files/issues/persistent_login-user_task_permission-2899530-6.patch"
-      },
-      "drupal/ace_editor": {
-        "Issue #2916832: Add support for calling libraries from the current active profile":
-        "https://www.drupal.org/files/issues/2916832-4.patch"
-      },
-      "drupal/focal_point": {
-        "Issue #2915497: Missing schema for focal_point_scale_and_crop effect":
-        "https://www.drupal.org/files/issues/2915497_3.patch",
-        "Issue #2916562: Broken image preview":
-        "https://www.drupal.org/files/issues/2916562-16.patch"
-      },
-      "drupal/ctools": {
-        "Issue #2820783: Fix Block.php notices and warnings.":
-        "https://www.drupal.org/files/issues/fixblockpager-2820783-27.patch"
-      },
-      "drupal/search_api": {
-        "Issue #2931562: Fixed the Notice: Undefined index: total When we enable the module in the installation step.":
-        "https://www.drupal.org/files/issues/2931562-11--undefined_total_in_task_manager_batch_finish.patch"
-      },
-      "drupal/total_control": {
-        "Issue #2935351: Fixed the issue when Enabled with multilingual of Translatable Markup for Invalid Argument Exception: $string (Array) must be a string.":
-        "https://www.drupal.org/files/issues/2935351-2.patch"
-      },
-      "drupal/pathologic": {
-        "Issue #2927759: Remove the Update hooks for D7 present in D8 version of module.":
-        "https://www.drupal.org/files/issues/2927759-8.patch"
-      }
+    "extra": {
+        "branch-alias": {
+            "dev-8.x-4.x": "8.4.x-dev"
+        },
+        "installer-paths": {
+            "docroot/core": ["drupal/core"],
+            "docroot/profiles/{$name}": ["type:drupal-profile"],
+            "docroot/modules/contrib/{$name}": ["type:drupal-module"],
+            "docroot/themes/contrib/{$name}": ["type:drupal-theme"],
+            "docroot/libraries/{$name}": ["type:drupal-library"],
+            "drush/contrib/{$name}": ["type:drupal-drush"]
+        },
+        "drupal-libraries": {
+            "library-directory": "docroot/libraries",
+            "libraries": [
+                { "name": "dropzone", "package": "vardot/dropzone" },
+                { "name": "blazy", "package": "vardot/blazy" },
+                { "name": "slick", "package": "vardot/slick" },
+                { "name": "ace", "package": "vardot/ace" }
+            ]
+        },
+        "enable-patching": true,
+        "patches": {
+            "drupal/core": {
+                "Issue #1356276: Allow profiles to provide a base_parent profile and load them in the correct order": "https://www.drupal.org/files/issues/1356276-408--8.4.4.patch",
+                "Issue #2720101 Label (Title) not set for Views block (exposed filters in Block)": "https://www.drupal.org/files/issues/2720101-43.patch",
+                "Issue #2599228: Programmatically created translatable content type returns SQL error on content creation": "https://www.drupal.org/files/issues/2599228-31.patch",
+                "Issue #2893892: Fixed Warning Invalid argument supplied for foreach() in Drupal": "https://www.drupal.org/files/issues/patch_empty_fix.patch"
+            },
+            "drupal/page_manager": {
+                "Issue #2624972: No configuration possible in UI for 301, 303, etc. HTTP responses": "https://www.drupal.org/files/issues/page_manager-redirect_location-2624972-30.patch"
+            },
+            "drupal/coffee": {
+                "Issue #2815381: Coffee breaks whole page when using right to left (rtl) languages in drupal 8": "https://www.drupal.org/files/issues/coffee-coffee_breaks_page_with_rtl-2815381-6.patch",
+                "Issue #2872093: Coffee css fixes in RTL": "https://www.drupal.org/files/issues/2872093-10.patch"
+            },
+            "drupal/entityqueue": {
+                "Issue #2145441: Option to create Entityqueue tab on Entity pages.": "https://www.drupal.org/files/issues/2145441-32.patch",
+                "Issue #2825773: Make Contextual links work for views using Entityqueue": "https://www.drupal.org/files/issues/2825773-23-outside_in_to_settings_tray.patch",
+                "Issue #2916026: Only users with [Administer entityqueue] should be able to delete entityqueues": "https://www.drupal.org/files/issues/only-users-with-administer-entityqueue-should-be-able-to-delete-entityqueues-2916026-3.patch",
+                "Issue #2917308: Only users with [Administer entityqueue] should be able to edit (configure) entityqueues": "https://www.drupal.org/files/issues/only-users-with-administer-entityqueue-should-be-able-edit-configure-entityqueues-2917308-2.patch"
+            },
+            "drupal/l10n_client": {
+                "Issue #2867460: Incompatible with this version of Drupal core 8.3.0": "https://www.drupal.org/files/issues/2867460-2.patch",
+                "Issue #2872668: User error: 0 is an invalid render array key": "https://www.drupal.org/files/issues/l10n_client-hook_toolbar-fix-2872668-3.patch"
+            },
+            "drupal/yoast_seo": {
+                "Issue #2877613: Add [ Text (plain, long) ] filed type [string_log] for yoast seo to use.": "https://www.drupal.org/files/issues/2877613-2_0.patch"
+            },
+            "drupal/paragraphs": {
+                "Issue #2461695: Support translatable paragraph entity reference revision field": "https://www.drupal.org/files/issues/meta_support-2461695-222.patch",
+                "Issue #2868155: Add new hooks to allow easier editing of paragraph forms": "https://www.drupal.org/files/issues/2868155-16.patch",
+                "Issue #2877927: Show add widget between paragraphs on hover": "https://www.drupal.org/files/issues/2877927_29.patch",
+                "Issue #2909416: Hide duplicate action while translating.": "https://www.drupal.org/files/issues/2909416-2.patch",
+                "Issue #2924774: Let Editors add/delete/clone paragraphs When [Editing a translation]": "https://www.drupal.org/files/issues/2924774-4.patch"
+            },
+            "drupal/adminimal_theme": {
+                "Issue #2696393: Checkboxes with .error class are not usable": "https://www.drupal.org/files/issues/adminimal-checkboxes_with_error-2696393-3.patch"
+            },
+            "drupal/google_analytics_reports": {
+                "Issue #2850463: Error when saving either google_analytics_reports view": "https://www.drupal.org/files/issues/error_when_saving-2850463-2.patch",
+                "Issue #2860399: Warning: htmlspecialchars() expects parameter 1 to be string": "https://www.drupal.org/files/issues/Fix_message-2860399-5.patch",
+                "Issue #2932010: Fixed an issue to Not to check Updates or import Fields while the Drupal site MAINTENANCE_MODE is in Install or Update.": "https://www.drupal.org/files/issues/2932010-4.patch"
+            },
+            "drupal/ckeditor_media_embed": {
+                "Issue #2900313: Add ability to embed tweets and other rich content in WYSIWYG": "https://www.drupal.org/files/issues/embed_rich_content_in_WYSIWYG-2900313-2.patch"
+            },
+            "drupal/config_perms": {
+                "Issue #2877329: When [content_translation, config_translate] module is enabled, And enabled [Custom Permissions], Then we will get  Route custom_perms_select_list_form does not exist": "https://www.drupal.org/files/issues/2877329-16.patch"
+            },
+            "drupal/username_enumeration_prevention": {
+                "Issue #2871931: hook_requirements error on install phase": "https://www.drupal.org/files/issues/username_enumeration_prevention-check_phase_runtime-2871931-5.patch"
+            },
+            "drupal/paragraphs_previewer": {
+                "Issue #2904917: Make paragraph previewer work with new UI/UX improvement patch": "https://www.drupal.org/files/issues/2904917-2.patch"
+            },
+            "drupal/entity_clone": {
+                "Issue #2770687: Wrong redirection of page for entity clone module": "https://www.drupal.org/files/issues/2770687_wrong_redirection_for_entity_9.patch",
+                "Issue #2800203: Event dispatcher for clone events": "https://www.drupal.org/files/issues/entity_clone-event_dispatcher-2800203-5.patch",
+                "Issue #2706639: Support for cloning nodes that have another entities attached": "https://www.drupal.org/files/issues/entity_clone-attached_entities-2706639-25.patch",
+                "Issue #2769823: Getting error after clicking on abort clone button": "https://www.drupal.org/files/issues/entity_clone-abort_clone_causes_fatal_error-2769823-4.patch"
+            },
+            "drupal/default_content": {
+                "Issue #2900089: Invalid translation language error when selected installation language does not match demo content language": "https://www.drupal.org/files/issues/2900089-14.patch"
+            },
+            "drupal/content_lock": {
+                "Issue #2907026: Fixed Warning: When we do not have content types yet in the system.": "https://www.drupal.org/files/issues/2907026-7_0.patch"
+            },
+            "drupal/persistent_login": {
+                "Issue #2899530: Hide user^s local task": "https://www.drupal.org/files/issues/persistent_login-user_task_permission-2899530-6.patch"
+            },
+            "drupal/ace_editor": {
+                "Issue #2916832: Add support for calling libraries from the current active profile": "https://www.drupal.org/files/issues/2916832-4.patch"
+            },
+            "drupal/focal_point": {
+                "Issue #2915497: Missing schema for focal_point_scale_and_crop effect": "https://www.drupal.org/files/issues/2915497_3.patch",
+                "Issue #2916562: Broken image preview": "https://www.drupal.org/files/issues/2916562-16.patch"
+            },
+            "drupal/ctools": {
+                "Issue #2820783: Fix Block.php notices and warnings.": "https://www.drupal.org/files/issues/fixblockpager-2820783-27.patch"
+            },
+            "drupal/search_api": {
+                "Issue #2931562: Fixed the Notice: Undefined index: total When we enable the module in the installation step.": "https://www.drupal.org/files/issues/2931562-11--undefined_total_in_task_manager_batch_finish.patch"
+            },
+            "drupal/total_control": {
+                "Issue #2935351: Fixed the issue when Enabled with multilingual of Translatable Markup for Invalid Argument Exception: $string (Array) must be a string.": "https://www.drupal.org/files/issues/2935351-2.patch"
+            },
+            "drupal/pathologic": {
+                "Issue #2927759: Remove the Update hooks for D7 present in D8 version of module.": "https://www.drupal.org/files/issues/2927759-8.patch"
+            }
+        }
     }
-  }
-}
+}
\ No newline at end of file
diff --git a/config/install/user.role.content_admin.yml b/config/install/user.role.content_admin.yml
index 6289ba74e7e0d422bef7fbd44478cdde0d386921..6f22b62b2d1d4efc143b593b3ee6b3fe1454feee 100644
--- a/config/install/user.role.content_admin.yml
+++ b/config/install/user.role.content_admin.yml
@@ -23,6 +23,8 @@ permissions:
   - 'access toolbar'
   - 'access tour'
   - 'access user profiles'
+  - 'add terms in categories'
+  - 'add terms in tags'
   - 'administer footer menu items'
   - 'administer main menu items'
   - 'administer menu'
@@ -44,27 +46,40 @@ permissions:
   - 'create media'
   - 'create page content'
   - 'create url aliases'
+  - 'create varbase_blog content'
   - 'customize shortcut links'
   - 'delete any landing_page content'
   - 'delete any page content'
+  - 'delete any varbase_blog content'
   - 'delete content translations'
   - 'delete landing_page revisions'
   - 'delete media'
   - 'delete own landing_page content'
   - 'delete own page content'
+  - 'delete own varbase_blog content'
   - 'delete page revisions'
+  - 'delete terms in categories'
+  - 'delete terms in tags'
+  - 'delete varbase_blog revisions'
   - 'dropzone upload files'
   - 'ds switch view mode'
   - 'edit any landing_page content'
   - 'edit any page content'
+  - 'edit any varbase_blog content'
   - 'edit own landing_page content'
   - 'edit own page content'
+  - 'edit own varbase_blog content'
+  - 'edit terms in categories'
+  - 'edit terms in tags'
   - 'have total control'
   - 'rabbit hole bypass node'
   - 'rabbit hole bypass taxonomy_term'
+  - 'reorder terms in categories'
+  - 'reorder terms in tags'
   - 'revert all revisions'
   - 'revert landing_page revisions'
   - 'revert page revisions'
+  - 'revert varbase_blog revisions'
   - 'translate any entity'
   - 'translate landing_page node'
   - 'translate page node'
@@ -84,3 +99,4 @@ permissions:
   - 'view own unpublished content'
   - 'view page revisions'
   - 'view the administration theme'
+  - 'view varbase_blog revisions'
diff --git a/config/install/user.role.editor.yml b/config/install/user.role.editor.yml
index 295cd5d95bc965df80701b2aef30aa7929c6f0df..f310e4d9ad0cf296d953b036338178cd0bb3224c 100644
--- a/config/install/user.role.editor.yml
+++ b/config/install/user.role.editor.yml
@@ -28,15 +28,22 @@ permissions:
   - 'create media'
   - 'create page content'
   - 'create url aliases'
+  - 'create varbase_blog content'
   - 'customize shortcut links'
+  - 'delete any varbase_blog content'
   - 'delete media'
   - 'delete own landing_page content'
   - 'delete own page content'
+  - 'delete own varbase_blog content'
+  - 'delete varbase_blog revisions'
   - 'dropzone upload files'
   - 'ds switch view mode'
+  - 'edit any varbase_blog content'
   - 'edit own landing_page content'
   - 'edit own page content'
+  - 'edit own varbase_blog content'
   - 'have total control'
+  - 'revert varbase_blog revisions'
   - 'translate page node'
   - 'update any media'
   - 'update media'
@@ -50,3 +57,4 @@ permissions:
   - 'view own unpublished content'
   - 'view page revisions'
   - 'view the administration theme'
+  - 'view varbase_blog revisions'
diff --git a/config/install/user.role.site_admin.yml b/config/install/user.role.site_admin.yml
index 37e89f6b4c4b9ae770adcfee4f71d4a152916801..77d7575ee8dcdb4da8876a3156402bbb3309de16 100644
--- a/config/install/user.role.site_admin.yml
+++ b/config/install/user.role.site_admin.yml
@@ -27,6 +27,8 @@ permissions:
   - 'access tour'
   - 'access user profiles'
   - 'access varbase settings'
+  - 'add terms in categories'
+  - 'add terms in tags'
   - 'administer account menu items'
   - 'administer account settings'
   - 'administer admin menu items'
@@ -64,27 +66,40 @@ permissions:
   - 'create media'
   - 'create page content'
   - 'create url aliases'
+  - 'create varbase_blog content'
   - 'customize shortcut links'
   - 'delete any landing_page content'
   - 'delete any page content'
+  - 'delete any varbase_blog content'
   - 'delete content translations'
   - 'delete landing_page revisions'
   - 'delete media'
   - 'delete own landing_page content'
   - 'delete own page content'
+  - 'delete own varbase_blog content'
   - 'delete page revisions'
+  - 'delete terms in categories'
+  - 'delete terms in tags'
+  - 'delete varbase_blog revisions'
   - 'dropzone upload files'
   - 'ds switch view mode'
   - 'edit any landing_page content'
   - 'edit any page content'
+  - 'edit any varbase_blog content'
   - 'edit own landing_page content'
   - 'edit own page content'
+  - 'edit own varbase_blog content'
+  - 'edit terms in categories'
+  - 'edit terms in tags'
   - 'have total control'
   - 'rabbit hole bypass node'
   - 'rabbit hole bypass taxonomy_term'
+  - 'reorder terms in categories'
+  - 'reorder terms in tags'
   - 'revert all revisions'
   - 'revert landing_page revisions'
   - 'revert page revisions'
+  - 'revert varbase_blog revisions'
   - 'switch shortcut sets'
   - 'translate any entity'
   - 'translate landing_page node'
@@ -109,3 +124,4 @@ permissions:
   - 'view own unpublished content'
   - 'view page revisions'
   - 'view the administration theme'
+  - 'view varbase_blog revisions'
diff --git a/configbit/extra.components.varbase.bit.yml b/configbit/extra.components.varbase.bit.yml
index 23f3a0d418aba92f99634576f2d637ec1229eff8..5624996f39228160752e4c1172c1e87787ddf38a 100644
--- a/configbit/extra.components.varbase.bit.yml
+++ b/configbit/extra.components.varbase.bit.yml
@@ -29,3 +29,8 @@ config_bit:
           description: "A suite of site search engine tools to help you build better search performance, customization, and search experience. Built using <a href=\"https://www.drupal.org/project/search_api\" target=\"_blank\">Search API</a>."
           selected: false
           config_form: false
+        varbase_blog:
+          title: "Varbase Blog"
+          description: "Provides the necessary tools to build blogs in your website."
+          selected: false
+          config_form: false
diff --git a/modules/varbase_features/varbase_blog/config/install/block.block.views_block__blog_entry_most_popular.yml b/modules/varbase_features/varbase_blog/config/install/block.block.views_block__blog_entry_most_popular.yml
new file mode 100755
index 0000000000000000000000000000000000000000..59f9e74015a1bfb1ce14db56a5f771268e4cc690
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/block.block.views_block__blog_entry_most_popular.yml
@@ -0,0 +1,35 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - views.view.blog_entry
+  module:
+    - block_class
+    - ctools
+    - views
+  theme:
+    - vartheme
+third_party_settings:
+  block_class:
+    classes: ''
+id: views_block__blog_entry_most_popular
+theme: vartheme
+region: sidebar_second
+weight: -7
+provider: null
+plugin: 'views_block:blog_entry-most_popular'
+settings:
+  id: 'views_block:blog_entry-most_popular'
+  label: ''
+  provider: views
+  label_display: visible
+  views_label: ''
+  items_per_page: none
+visibility:
+  'entity_bundle:node':
+    id: 'entity_bundle:node'
+    bundles:
+      varbase_blog: varbase_blog
+    negate: false
+    context_mapping:
+      node: '@node.node_route_context:node'
diff --git a/modules/varbase_features/varbase_blog/config/install/block.block.views_block__blog_entry_most_recent_blog.yml b/modules/varbase_features/varbase_blog/config/install/block.block.views_block__blog_entry_most_recent_blog.yml
new file mode 100755
index 0000000000000000000000000000000000000000..02aed16ccf66b1d8ba7f05b4143c4123d16362ea
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/block.block.views_block__blog_entry_most_recent_blog.yml
@@ -0,0 +1,35 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - views.view.blog_entry
+  module:
+    - block_class
+    - ctools
+    - views
+  theme:
+    - vartheme
+third_party_settings:
+  block_class:
+    classes: ''
+id: views_block__blog_entry_most_recent_blog
+theme: vartheme
+region: sidebar_second
+weight: -6
+provider: null
+plugin: 'views_block:blog_entry-most_recent_blog'
+settings:
+  id: 'views_block:blog_entry-most_recent_blog'
+  label: ''
+  provider: views
+  label_display: visible
+  views_label: ''
+  items_per_page: none
+visibility:
+  'entity_bundle:node':
+    id: 'entity_bundle:node'
+    bundles:
+      varbase_blog: varbase_blog
+    negate: false
+    context_mapping:
+      node: '@node.node_route_context:node'
diff --git a/modules/varbase_features/varbase_blog/config/install/block.block.views_block__blog_entry_related_blogs.yml b/modules/varbase_features/varbase_blog/config/install/block.block.views_block__blog_entry_related_blogs.yml
new file mode 100755
index 0000000000000000000000000000000000000000..c2684e2d319cc2a2f290af4325c49976d7875b29
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/block.block.views_block__blog_entry_related_blogs.yml
@@ -0,0 +1,36 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - views.view.blog_entry
+  module:
+    - block_class
+    - ctools
+    - views
+  theme:
+    - vartheme
+third_party_settings:
+  block_class:
+    classes: ''
+id: views_block__blog_entry_related_blogs
+theme: vartheme
+region: content
+weight: 0
+provider: null
+plugin: 'views_block:blog_entry-related_blogs'
+settings:
+  id: 'views_block:blog_entry-related_blogs'
+  label: ''
+  provider: views
+  label_display: visible
+  views_label: ''
+  items_per_page: none
+  context_mapping: {  }
+visibility:
+  'entity_bundle:node':
+    id: 'entity_bundle:node'
+    bundles:
+      varbase_blog: varbase_blog
+    negate: false
+    context_mapping:
+      node: '@node.node_route_context:node'
diff --git a/modules/varbase_features/varbase_blog/config/install/core.entity_form_display.node.varbase_blog.default.yml b/modules/varbase_features/varbase_blog/config/install/core.entity_form_display.node.varbase_blog.default.yml
new file mode 100755
index 0000000000000000000000000000000000000000..e17b2e8ebe7536fc968d92298aabcb5cdbe40459
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/core.entity_form_display.node.varbase_blog.default.yml
@@ -0,0 +1,175 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - entity_browser.browser.image_browser
+    - field.field.node.varbase_blog.body
+    - field.field.node.varbase_blog.field_categories
+    - field.field.node.varbase_blog.field_image
+    - field.field.node.varbase_blog.field_meta_tags
+    - field.field.node.varbase_blog.field_tags
+    - field.field.node.varbase_blog.field_yoast_seo
+    - node.type.varbase_blog
+  module:
+    - autocomplete_deluxe
+    - entity_browser
+    - field_group
+    - metatag
+    - path
+    - text
+    - yoast_seo
+third_party_settings:
+  field_group:
+    group_tabs:
+      children:
+        - group_basic_information
+        - group_categories
+      parent_name: ''
+      weight: 1
+      format_type: tabs
+      format_settings:
+        id: ''
+        classes: ''
+        direction: horizontal
+      label: Tabs
+      region: content
+    group_basic_information:
+      children:
+        - body
+        - field_image
+      parent_name: group_tabs
+      weight: 15
+      format_type: tab
+      format_settings:
+        id: ''
+        classes: ''
+        formatter: open
+        description: ''
+        required_fields: true
+      label: 'Basic information'
+      region: content
+    group_categories:
+      children:
+        - field_categories
+        - field_tags
+      parent_name: group_tabs
+      weight: 16
+      format_type: tab
+      format_settings:
+        id: ''
+        classes: ''
+        formatter: open
+        description: ''
+        required_fields: true
+      label: Categories
+      region: content
+id: node.varbase_blog.default
+targetEntityType: node
+bundle: varbase_blog
+mode: default
+content:
+  body:
+    type: text_textarea_with_summary
+    weight: 9
+    settings:
+      rows: 9
+      summary_rows: 3
+      placeholder: ''
+    third_party_settings: {  }
+    region: content
+  created:
+    type: datetime_timestamp
+    weight: 6
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  field_categories:
+    weight: 26
+    settings: {  }
+    third_party_settings: {  }
+    type: options_select
+    region: content
+  field_image:
+    weight: 10
+    settings:
+      entity_browser: image_browser
+      field_widget_display: label
+      field_widget_edit: true
+      field_widget_remove: true
+      open: true
+      selection_mode: selection_append
+      field_widget_display_settings: {  }
+    third_party_settings: {  }
+    type: entity_browser_entity_reference
+    region: content
+  field_meta_tags:
+    weight: 3
+    settings: {  }
+    third_party_settings: {  }
+    type: metatag_firehose
+    region: content
+  field_tags:
+    weight: 27
+    settings:
+      limit: '10'
+      min_length: '0'
+      delimiter: ''
+      not_found_message_allow: '1'
+      not_found_message: 'The term ''@term'' will be added'
+      new_terms: '1'
+      match_operator: CONTAINS
+      autocomplete_route_name: autocomplete_deluxe.autocomplete
+      target_type: taxonomy_term
+      size: 60
+      selection_handler: default
+    third_party_settings: {  }
+    type: autocomplete_deluxe
+    region: content
+  field_yoast_seo:
+    weight: 2
+    settings:
+      body: body
+    third_party_settings: {  }
+    type: yoast_seo_widget
+    region: content
+  langcode:
+    type: language_select
+    weight: 2
+    region: content
+    settings:
+      include_locked: true
+    third_party_settings: {  }
+  path:
+    type: path
+    weight: 4
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  status:
+    type: boolean_checkbox
+    settings:
+      display_label: true
+    weight: 7
+    region: content
+    third_party_settings: {  }
+  title:
+    type: string_textfield
+    weight: 0
+    region: content
+    settings:
+      size: 60
+      placeholder: ''
+    third_party_settings: {  }
+  uid:
+    type: entity_reference_autocomplete_tags
+    weight: 5
+    settings:
+      match_operator: CONTAINS
+      size: 60
+      placeholder: ''
+    region: content
+    third_party_settings: {  }
+hidden:
+  promote: true
+  sticky: true
+  url_redirects: true
diff --git a/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.default.yml b/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.default.yml
new file mode 100755
index 0000000000000000000000000000000000000000..1874b506d524242e3beec05538f67d7d2c970fe3
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.default.yml
@@ -0,0 +1,86 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.node.varbase_blog.body
+    - field.field.node.varbase_blog.field_categories
+    - field.field.node.varbase_blog.field_image
+    - field.field.node.varbase_blog.field_meta_tags
+    - field.field.node.varbase_blog.field_tags
+    - field.field.node.varbase_blog.field_yoast_seo
+    - node.type.varbase_blog
+  module:
+    - ds
+    - panelizer
+    - user
+third_party_settings:
+  ds:
+    layout:
+      id: ds_1col
+      library: null
+      disable_css: false
+      entity_classes: all_classes
+      settings:
+        wrappers:
+          ds_content: div
+        outer_wrapper: div
+        attributes: ''
+        link_attribute: ''
+        link_custom: ''
+        classes:
+          layout_class: {  }
+          ds_content: {  }
+    regions:
+      ds_content:
+        - field_image
+        - node_title
+        - user
+        - node_post_date
+        - node_links
+    fields:
+      user:
+        plugin_id: user
+        weight: 2
+        label: hidden
+        formatter: default
+      node_links:
+        plugin_id: node_links
+        weight: 7
+        label: hidden
+        formatter: default
+      node_title:
+        plugin_id: node_title
+        weight: 1
+        label: hidden
+        formatter: default
+      node_post_date:
+        plugin_id: node_post_date
+        weight: 3
+        label: hidden
+        formatter: ds_post_date_long
+  panelizer:
+    enable: false
+    custom: false
+    allow: false
+    default: default
+id: node.varbase_blog.default
+targetEntityType: node
+bundle: varbase_blog
+mode: default
+content:
+  field_image:
+    weight: 0
+    label: above
+    settings:
+      link: true
+    third_party_settings: {  }
+    type: entity_reference_label
+    region: ds_content
+hidden:
+  body: true
+  field_categories: true
+  field_meta_tags: true
+  field_tags: true
+  field_yoast_seo: true
+  langcode: true
+  links: true
diff --git a/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.full.yml b/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.full.yml
new file mode 100755
index 0000000000000000000000000000000000000000..382ae0f659d7876dabe47b4dc531365766324ef3
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.full.yml
@@ -0,0 +1,134 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - core.entity_view_mode.node.full
+    - field.field.node.varbase_blog.body
+    - field.field.node.varbase_blog.field_categories
+    - field.field.node.varbase_blog.field_image
+    - field.field.node.varbase_blog.field_meta_tags
+    - field.field.node.varbase_blog.field_tags
+    - field.field.node.varbase_blog.field_yoast_seo
+    - node.type.varbase_blog
+  module:
+    - ds
+    - field_group
+    - panelizer
+    - text
+    - user
+third_party_settings:
+  ds:
+    layout:
+      id: ds_1col
+      library: null
+      disable_css: false
+      entity_classes: all_classes
+      settings:
+        wrappers:
+          ds_content: div
+        outer_wrapper: div
+        attributes: ''
+        link_attribute: ''
+        link_custom: ''
+        classes:
+          layout_class: {  }
+          ds_content: {  }
+    regions:
+      ds_content:
+        - group_author_information
+        - node_author
+        - field_image
+        - links
+        - node_post_date
+        - body
+        - field_tags
+    fields:
+      node_post_date:
+        plugin_id: node_post_date
+        weight: 2
+        label: hidden
+        formatter: ds_post_date_medium
+      node_author:
+        plugin_id: node_author
+        weight: 0
+        label: hidden
+        formatter: author
+  panelizer:
+    enable: false
+    custom: false
+    allow: false
+    default: default
+  field_group:
+    group_author_information:
+      children:
+        - node_author
+        - node_post_date
+      parent_name: ''
+      weight: 0
+      format_type: html_element
+      format_settings:
+        label: 'Author information'
+        element: div
+        show_label: false
+        label_element: h3
+        attributes: ''
+        effect: none
+        speed: fast
+        id: ''
+        classes: author-info
+      label: 'Author information'
+      region: hidden
+id: node.varbase_blog.full
+targetEntityType: node
+bundle: varbase_blog
+mode: full
+content:
+  body:
+    label: hidden
+    type: text_default
+    weight: 3
+    settings: {  }
+    third_party_settings: {  }
+    region: ds_content
+  field_image:
+    weight: 1
+    label: hidden
+    settings:
+      view_mode: default
+      link: false
+    third_party_settings:
+      ds:
+        ft:
+          id: default
+          settings:
+            lb: ''
+            lb-col: false
+            classes: {  }
+    type: entity_reference_entity_view
+    region: ds_content
+  field_tags:
+    weight: 5
+    label: above
+    settings:
+      link: true
+    third_party_settings:
+      ds:
+        ds_limit: ''
+        ft:
+          id: default
+          settings:
+            lb: ''
+            lb-col: true
+            classes: {  }
+    type: entity_reference_label
+    region: ds_content
+  links:
+    weight: 2
+    region: ds_content
+    settings: {  }
+    third_party_settings: {  }
+hidden:
+  field_categories: true
+  field_meta_tags: true
+  field_yoast_seo: true
+  langcode: true
diff --git a/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.horizontal_media_teaser_small.yml b/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.horizontal_media_teaser_small.yml
new file mode 100755
index 0000000000000000000000000000000000000000..db05decab12ae30529565b44d5d3d4d067294e15
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.horizontal_media_teaser_small.yml
@@ -0,0 +1,83 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - core.entity_view_mode.node.horizontal_media_teaser_small
+    - field.field.node.varbase_blog.body
+    - field.field.node.varbase_blog.field_categories
+    - field.field.node.varbase_blog.field_image
+    - field.field.node.varbase_blog.field_meta_tags
+    - field.field.node.varbase_blog.field_tags
+    - field.field.node.varbase_blog.field_yoast_seo
+    - node.type.varbase_blog
+  module:
+    - ds
+    - panelizer
+    - user
+third_party_settings:
+  ds:
+    layout:
+      id: horizontal_media_teaser_small
+      library: vmi/horizontal_media_teaser_small
+      disable_css: false
+      entity_classes: all_classes
+      settings:
+        wrappers:
+          left: div
+          right: div
+        outer_wrapper: article
+        attributes: ''
+        link_attribute: ''
+        link_custom: ''
+        classes:
+          layout_class: {  }
+          left: {  }
+          right: {  }
+    regions:
+      left:
+        - field_image
+      right:
+        - node_title
+        - node_post_date
+    fields:
+      node_title:
+        plugin_id: node_title
+        weight: 1
+        label: hidden
+        formatter: default
+        settings:
+          link: true
+          wrapper: h3
+          class: ''
+      node_post_date:
+        plugin_id: node_post_date
+        weight: 2
+        label: hidden
+        formatter: ds_post_date_short
+  panelizer:
+    enable: false
+    custom: false
+    allow: false
+    default: default
+id: node.varbase_blog.horizontal_media_teaser_small
+targetEntityType: node
+bundle: varbase_blog
+mode: horizontal_media_teaser_small
+content:
+  field_image:
+    type: entity_reference_entity_view
+    weight: 0
+    label: hidden
+    settings:
+      view_mode: s3_standard
+      link: false
+    third_party_settings: {  }
+    region: left
+hidden:
+  body: true
+  field_categories: true
+  field_meta_tags: true
+  field_tags: true
+  field_yoast_seo: true
+  langcode: true
+  links: true
diff --git a/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.teaser.yml b/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.teaser.yml
new file mode 100755
index 0000000000000000000000000000000000000000..ed4b57e2d37664069f5c9b54a5135b6f1eb23839
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.teaser.yml
@@ -0,0 +1,109 @@
+langcode: en
+status: false
+dependencies:
+  config:
+    - core.entity_view_mode.node.teaser
+    - field.field.node.varbase_blog.body
+    - field.field.node.varbase_blog.field_categories
+    - field.field.node.varbase_blog.field_image
+    - field.field.node.varbase_blog.field_meta_tags
+    - field.field.node.varbase_blog.field_tags
+    - field.field.node.varbase_blog.field_yoast_seo
+    - node.type.varbase_blog
+  module:
+    - ds
+    - metatag
+    - panelizer
+    - text
+    - user
+    - yoast_seo
+third_party_settings:
+  ds:
+    layout:
+      id: text_teaser_small
+      library: vmi/text_teaser_small
+      disable_css: false
+      entity_classes: all_classes
+      settings:
+        classes: {  }
+        wrappers:
+          ds_content: div
+        outer_wrapper: div
+        attributes: ''
+        link_attribute: ''
+        link_custom: ''
+    regions:
+      ds_content:
+        - body
+        - field_tags
+        - field_yoast_seo
+        - field_meta_tags
+        - field_image
+        - field_categories
+        - langcode
+  panelizer:
+    enable: false
+    custom: false
+    allow: false
+    default: default
+id: node.varbase_blog.teaser
+targetEntityType: node
+bundle: varbase_blog
+mode: teaser
+content:
+  body:
+    type: text_default
+    weight: 0
+    region: ds_content
+    label: above
+    settings: {  }
+    third_party_settings: {  }
+  field_categories:
+    type: entity_reference_label
+    weight: 0
+    region: ds_content
+    label: above
+    settings:
+      link: true
+    third_party_settings: {  }
+  field_image:
+    type: entity_reference_label
+    weight: 0
+    region: ds_content
+    label: above
+    settings:
+      link: true
+    third_party_settings: {  }
+  field_meta_tags:
+    type: metatag_empty_formatter
+    weight: 0
+    region: ds_content
+    label: above
+    settings: {  }
+    third_party_settings: {  }
+  field_tags:
+    type: entity_reference_label
+    weight: 0
+    region: ds_content
+    label: above
+    settings:
+      link: true
+    third_party_settings: {  }
+  field_yoast_seo:
+    type: yoastseo_formatter
+    weight: 0
+    region: ds_content
+    label: above
+    settings: {  }
+    third_party_settings: {  }
+  langcode:
+    type: language
+    weight: 0
+    region: ds_content
+    label: above
+    settings:
+      link_to_entity: false
+      native_language: false
+    third_party_settings: {  }
+hidden:
+  links: true
diff --git a/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.text_teaser_small.yml b/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.text_teaser_small.yml
new file mode 100755
index 0000000000000000000000000000000000000000..b8fbb42f94bbd9f7911ade4c38c167d2a052ab7d
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.text_teaser_small.yml
@@ -0,0 +1,71 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - core.entity_view_mode.node.text_teaser_small
+    - field.field.node.varbase_blog.body
+    - field.field.node.varbase_blog.field_categories
+    - field.field.node.varbase_blog.field_image
+    - field.field.node.varbase_blog.field_meta_tags
+    - field.field.node.varbase_blog.field_tags
+    - field.field.node.varbase_blog.field_yoast_seo
+    - node.type.varbase_blog
+  module:
+    - ds
+    - panelizer
+    - user
+third_party_settings:
+  ds:
+    layout:
+      id: text_teaser_small
+      library: vmi/text_teaser_small
+      disable_css: false
+      entity_classes: all_classes
+      settings:
+        wrappers:
+          main: div
+        outer_wrapper: article
+        attributes: ''
+        link_attribute: ''
+        link_custom: ''
+        classes:
+          layout_class: {  }
+          main: {  }
+    regions:
+      main:
+        - node_title
+        - node_post_date
+    fields:
+      node_title:
+        plugin_id: node_title
+        weight: 0
+        label: hidden
+        formatter: default
+        settings:
+          link: true
+          wrapper: h3
+          class: ''
+      node_post_date:
+        plugin_id: node_post_date
+        weight: 1
+        label: hidden
+        formatter: ds_post_date_short
+  panelizer:
+    enable: false
+    custom: false
+    allow: false
+    default: default
+id: node.varbase_blog.text_teaser_small
+targetEntityType: node
+bundle: varbase_blog
+mode: text_teaser_small
+content: {  }
+hidden:
+  body: true
+  field_categories: true
+  field_image: true
+  field_meta_tags: true
+  field_tags: true
+  field_yoast_seo: true
+  langcode: true
+  links: true
diff --git a/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.vertical_media_teaser_medium.yml b/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.vertical_media_teaser_medium.yml
new file mode 100755
index 0000000000000000000000000000000000000000..b932bf23c85eee0d4c6399fb3986731b9c8699a6
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/core.entity_view_display.node.varbase_blog.vertical_media_teaser_medium.yml
@@ -0,0 +1,158 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - core.entity_view_mode.node.vertical_media_teaser_medium
+    - field.field.node.varbase_blog.body
+    - field.field.node.varbase_blog.field_categories
+    - field.field.node.varbase_blog.field_image
+    - field.field.node.varbase_blog.field_meta_tags
+    - field.field.node.varbase_blog.field_tags
+    - field.field.node.varbase_blog.field_yoast_seo
+    - node.type.varbase_blog
+  module:
+    - ds
+    - field_group
+    - panelizer
+    - smart_trim
+    - user
+third_party_settings:
+  ds:
+    layout:
+      id: vertical_media_teaser_medium
+      library: vmi/vertical_media_teaser_medium
+      disable_css: false
+      entity_classes: all_classes
+      settings:
+        wrappers:
+          main: div
+        outer_wrapper: article
+        attributes: ''
+        link_attribute: ''
+        link_custom: ''
+        classes:
+          layout_class: {  }
+    regions:
+      main:
+        - field_image
+        - group_description
+        - group_author_info
+        - node_title
+        - body
+        - node_author
+        - node_link
+        - node_post_date
+    fields:
+      node_post_date:
+        plugin_id: node_post_date
+        weight: 11
+        label: hidden
+        formatter: ds_post_date_short
+      node_title:
+        plugin_id: node_title
+        weight: 9
+        label: hidden
+        formatter: default
+        settings:
+          link: true
+          wrapper: h3
+          class: ''
+      node_author:
+        plugin_id: node_author
+        weight: 10
+        label: hidden
+        formatter: author
+      node_link:
+        plugin_id: node_link
+        weight: 11
+        label: hidden
+        formatter: default
+  panelizer:
+    enable: false
+    custom: false
+    allow: false
+    default: default
+  field_group:
+    group_description:
+      children:
+        - group_author_info
+        - node_title
+        - body
+        - node_link
+      parent_name: ''
+      weight: 1
+      format_type: html_element
+      format_settings:
+        id: ''
+        classes: description
+        element: div
+        show_label: false
+        label_element: h3
+        attributes: ''
+        effect: none
+        speed: fast
+      label: Description
+      region: hidden
+    group_author_info:
+      children:
+        - node_author
+        - node_post_date
+      parent_name: group_description
+      weight: 8
+      format_type: html_element
+      format_settings:
+        label: 'Author info'
+        element: div
+        show_label: false
+        label_element: h3
+        attributes: ''
+        effect: none
+        speed: fast
+        id: ''
+        classes: author-info
+      label: 'Author info'
+      region: hidden
+id: node.varbase_blog.vertical_media_teaser_medium
+targetEntityType: node
+bundle: varbase_blog
+mode: vertical_media_teaser_medium
+content:
+  body:
+    label: hidden
+    type: smart_trim
+    weight: 10
+    settings:
+      trim_length: '30'
+      trim_type: words
+      trim_suffix: ' ...'
+      more_link: '0'
+      more_text: More
+      summary_handler: ignore
+      trim_options:
+        text: text
+      more_class: more-link
+    third_party_settings:
+      ds:
+        ft:
+          id: default
+          settings:
+            lb: ''
+            lb-col: false
+            classes: {  }
+    region: main
+  field_image:
+    weight: 0
+    label: hidden
+    settings:
+      view_mode: s4_standard
+      link: false
+    third_party_settings: {  }
+    type: entity_reference_entity_view
+    region: main
+hidden:
+  field_categories: true
+  field_meta_tags: true
+  field_tags: true
+  field_yoast_seo: true
+  langcode: true
+  links: true
diff --git a/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.body.yml b/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.body.yml
new file mode 100755
index 0000000000000000000000000000000000000000..e63ce3f5173d69ba643619eb2e010412ff16dae6
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.body.yml
@@ -0,0 +1,21 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.node.body
+    - node.type.varbase_blog
+  module:
+    - text
+id: node.varbase_blog.body
+field_name: body
+entity_type: node
+bundle: varbase_blog
+label: Body
+description: ''
+required: true
+translatable: true
+default_value: {  }
+default_value_callback: ''
+settings:
+  display_summary: true
+field_type: text_with_summary
diff --git a/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.field_categories.yml b/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.field_categories.yml
new file mode 100755
index 0000000000000000000000000000000000000000..6ffea137205aae5fe539a4e10cd0c2771267878a
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.field_categories.yml
@@ -0,0 +1,28 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.node.field_categories
+    - node.type.varbase_blog
+    - taxonomy.vocabulary.categories
+id: node.varbase_blog.field_categories
+field_name: field_categories
+entity_type: node
+bundle: varbase_blog
+label: Categories
+description: ''
+required: true
+translatable: false
+default_value: {  }
+default_value_callback: ''
+settings:
+  handler: 'default:taxonomy_term'
+  handler_settings:
+    target_bundles:
+      categories: categories
+    sort:
+      field: name
+      direction: asc
+    auto_create: false
+    auto_create_bundle: ''
+field_type: entity_reference
diff --git a/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.field_image.yml b/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.field_image.yml
new file mode 100755
index 0000000000000000000000000000000000000000..5afb53f9d14a38e55a15b7c775a639d389cf6896
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.field_image.yml
@@ -0,0 +1,27 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.node.field_image
+    - media_entity.bundle.image
+    - node.type.varbase_blog
+id: node.varbase_blog.field_image
+field_name: field_image
+entity_type: node
+bundle: varbase_blog
+label: 'Main image'
+description: ''
+required: false
+translatable: true
+default_value: {  }
+default_value_callback: ''
+settings:
+  handler: 'default:media'
+  handler_settings:
+    target_bundles:
+      image: image
+    sort:
+      field: _none
+    auto_create: false
+    auto_create_bundle: ''
+field_type: entity_reference
diff --git a/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.field_meta_tags.yml b/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.field_meta_tags.yml
new file mode 100755
index 0000000000000000000000000000000000000000..77d8b8691d49ef3a07974942a25474370eefbc49
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.field_meta_tags.yml
@@ -0,0 +1,22 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.node.field_meta_tags
+    - node.type.varbase_blog
+  module:
+    - metatag
+id: node.varbase_blog.field_meta_tags
+field_name: field_meta_tags
+entity_type: node
+bundle: varbase_blog
+label: 'Meta tags'
+description: ''
+required: false
+translatable: true
+default_value:
+  -
+    value: 'a:1:{s:25:"schema_web_site_publisher";s:257:"a:7:{s:5:"@type";s:12:"Organization";s:3:"@id";s:0:"";s:4:"name";s:11:"[site:name]";s:3:"url";s:10:"[site:url]";s:6:"sameAs";s:0:"";s:4:"logo";a:2:{s:5:"@type";s:11:"ImageObject";s:3:"url";s:39:"[site:url][current-theme:path]/logo.png";}s:5:"pivot";s:0:"";}";}'
+default_value_callback: ''
+settings: {  }
+field_type: metatag
diff --git a/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.field_tags.yml b/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.field_tags.yml
new file mode 100755
index 0000000000000000000000000000000000000000..4180661b64d5bae86f85a236076858d7f42fcce3
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.field_tags.yml
@@ -0,0 +1,28 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.node.field_tags
+    - node.type.varbase_blog
+    - taxonomy.vocabulary.tags
+id: node.varbase_blog.field_tags
+field_name: field_tags
+entity_type: node
+bundle: varbase_blog
+label: Tags
+description: ''
+required: false
+translatable: false
+default_value: {  }
+default_value_callback: ''
+settings:
+  handler: 'default:taxonomy_term'
+  handler_settings:
+    target_bundles:
+      tags: tags
+    sort:
+      field: name
+      direction: asc
+    auto_create: true
+    auto_create_bundle: ''
+field_type: entity_reference
diff --git a/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.field_yoast_seo.yml b/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.field_yoast_seo.yml
new file mode 100755
index 0000000000000000000000000000000000000000..cb4d86af52fb9dfb7c1bd17e0e71f89226815c5f
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/field.field.node.varbase_blog.field_yoast_seo.yml
@@ -0,0 +1,26 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.node.field_yoast_seo
+    - node.type.varbase_blog
+  module:
+    - yoast_seo
+id: node.varbase_blog.field_yoast_seo
+field_name: field_yoast_seo
+entity_type: node
+bundle: varbase_blog
+label: 'Real-time SEO'
+description: ''
+required: false
+translatable: true
+default_value:
+  -
+    yoast_seo:
+      focus_keyword: ''
+      status: ''
+    status: ''
+    focus_keyword: ''
+default_value_callback: ''
+settings: {  }
+field_type: yoast_seo
diff --git a/modules/varbase_features/varbase_blog/config/install/field.storage.node.field_categories.yml b/modules/varbase_features/varbase_blog/config/install/field.storage.node.field_categories.yml
new file mode 100755
index 0000000000000000000000000000000000000000..27d295c141094c9bf53cc5c251308461cefb7bca
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/field.storage.node.field_categories.yml
@@ -0,0 +1,19 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - node
+    - taxonomy
+id: node.field_categories
+field_name: field_categories
+entity_type: node
+type: entity_reference
+settings:
+  target_type: taxonomy_term
+module: core
+locked: false
+cardinality: -1
+translatable: true
+indexes: {  }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/modules/varbase_features/varbase_blog/config/install/field.storage.node.field_tags.yml b/modules/varbase_features/varbase_blog/config/install/field.storage.node.field_tags.yml
new file mode 100755
index 0000000000000000000000000000000000000000..73f821f2c0dea6f2e8cfbd7ddc14795dcda91acd
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/field.storage.node.field_tags.yml
@@ -0,0 +1,19 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - node
+    - taxonomy
+id: node.field_tags
+field_name: field_tags
+entity_type: node
+type: entity_reference
+settings:
+  target_type: taxonomy_term
+module: core
+locked: false
+cardinality: -1
+translatable: true
+indexes: {  }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/modules/varbase_features/varbase_blog/config/install/metatag.metatag_defaults.node__varbase_blog.yml b/modules/varbase_features/varbase_blog/config/install/metatag.metatag_defaults.node__varbase_blog.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8b51e284b9dffeca8df5d2732174109cbf588453
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/metatag.metatag_defaults.node__varbase_blog.yml
@@ -0,0 +1,8 @@
+langcode: en
+status: true
+dependencies: {  }
+id: node__varbase_blog
+label: 'Content: Blog'
+tags:
+  description: '[node:summary]'
+  title: '[node:title] | [site:name]'
diff --git a/modules/varbase_features/varbase_blog/config/install/node.type.varbase_blog.yml b/modules/varbase_features/varbase_blog/config/install/node.type.varbase_blog.yml
new file mode 100755
index 0000000000000000000000000000000000000000..a260b74c962c8879ef56a2ded705947fc544bee8
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/node.type.varbase_blog.yml
@@ -0,0 +1,16 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - menu_ui
+third_party_settings:
+  menu_ui:
+    available_menus: {  }
+    parent: ''
+name: Blog
+type: varbase_blog
+description: 'Use <em>Blog</em> to publish blog post by different authors in the Blog section of the site.'
+help: ''
+new_revision: true
+preview_mode: 1
+display_submitted: false
diff --git a/modules/varbase_features/varbase_blog/config/install/page_manager.page.blog.yml b/modules/varbase_features/varbase_blog/config/install/page_manager.page.blog.yml
new file mode 100755
index 0000000000000000000000000000000000000000..a60dd1414fd77a01e4026757f66cc35d5cf28c0c
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/page_manager.page.blog.yml
@@ -0,0 +1,11 @@
+langcode: en
+status: true
+dependencies: {  }
+id: blog
+label: Blog
+description: ''
+use_admin_theme: false
+path: /blog
+access_logic: and
+access_conditions: {  }
+parameters: {  }
diff --git a/modules/varbase_features/varbase_blog/config/install/page_manager.page.term_view.yml b/modules/varbase_features/varbase_blog/config/install/page_manager.page.term_view.yml
new file mode 100755
index 0000000000000000000000000000000000000000..02f1a240270596f555a108613c063df4159e2774
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/page_manager.page.term_view.yml
@@ -0,0 +1,15 @@
+langcode: en
+status: true
+dependencies: {  }
+id: term_view
+label: 'Term View'
+description: ''
+use_admin_theme: false
+path: '/taxonomy/term/{taxonomy_term}'
+access_logic: and
+access_conditions: {  }
+parameters:
+  taxonomy_term:
+    machine_name: taxonomy_term
+    type: 'entity:taxonomy_term'
+    label: Taxonomy_term
diff --git a/modules/varbase_features/varbase_blog/config/install/page_manager.page_variant.blog-panels_variant-0.yml b/modules/varbase_features/varbase_blog/config/install/page_manager.page_variant.blog-panels_variant-0.yml
new file mode 100755
index 0000000000000000000000000000000000000000..296a96891bee0047365007a4cca314db3bb0a7a6
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/page_manager.page_variant.blog-panels_variant-0.yml
@@ -0,0 +1,112 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - page_manager.page.blog
+    - system.menu.blog-menu
+    - views.view.blog_entry
+  module:
+    - menu_block
+    - panels
+    - views
+id: blog-panels_variant-0
+label: Panels
+variant: panels_variant
+variant_settings:
+  blocks:
+    873b549c-160c-402a-9c0c-2ad55bc2fcad:
+      id: 'views_block:blog_entry-blog_listing'
+      label: ''
+      provider: views
+      label_display: '0'
+      views_label: ''
+      items_per_page: none
+      region: left
+      weight: 0
+      uuid: 873b549c-160c-402a-9c0c-2ad55bc2fcad
+      context_mapping: {  }
+    20d97dad-31df-4687-9f6e-10fa8886135b:
+      id: 'views_block:blog_entry-most_popular'
+      label: ''
+      provider: views
+      label_display: visible
+      views_label: ''
+      items_per_page: none
+      region: right
+      weight: -1
+      uuid: 20d97dad-31df-4687-9f6e-10fa8886135b
+      context_mapping: {  }
+    b7044fa9-b541-46fa-be4f-b973e32afcb8:
+      id: 'views_block:blog_entry-most_recent_blog'
+      label: ''
+      provider: views
+      label_display: visible
+      views_label: ''
+      items_per_page: none
+      region: right
+      weight: 0
+      uuid: b7044fa9-b541-46fa-be4f-b973e32afcb8
+      context_mapping: {  }
+    5c3a518c-3c89-4349-8527-d6b8efcd38e8:
+      id: 'menu_block:blog-menu'
+      label: 'Blog menu'
+      provider: menu_block
+      label_display: '0'
+      level: 1
+      depth: 0
+      expand: 0
+      parent: 'blog-menu:'
+      suggestion: blog_menu
+      region: top
+      weight: 0
+      uuid: 5c3a518c-3c89-4349-8527-d6b8efcd38e8
+      context_mapping: {  }
+  id: panels_variant
+  uuid: 7c767761-a0e2-4046-9613-578466538075
+  label: null
+  weight: 0
+  layout: bs_2col_stacked
+  layout_settings:
+    layout:
+      wrapper: div
+      classes:
+        row: row
+      add_layout_class: 1
+      attributes: ''
+    regions:
+      top:
+        wrapper: div
+        classes:
+          col-sm-12: col-sm-12
+          col-md-9: col-md-9
+        add_region_classes: 1
+        attributes: ''
+      left:
+        wrapper: div
+        classes:
+          col-sm-12: col-sm-12
+          col-md-9: col-md-9
+        add_region_classes: 1
+        attributes: ''
+      right:
+        wrapper: div
+        classes:
+          col-sm-12: col-sm-12
+          col-md-3: col-md-3
+        add_region_classes: 1
+        attributes: ''
+      bottom:
+        wrapper: div
+        classes:
+          col-sm-12: col-sm-12
+        add_region_classes: 1
+        attributes: ''
+  page_title: ''
+  storage_type: page_manager
+  storage_id: blog-panels_variant-0
+  builder: standard
+page: blog
+weight: 0
+selection_criteria: {  }
+selection_logic: and
+static_context: {  }
diff --git a/modules/varbase_features/varbase_blog/config/install/page_manager.page_variant.term_view-panels_variant-0.yml b/modules/varbase_features/varbase_blog/config/install/page_manager.page_variant.term_view-panels_variant-0.yml
new file mode 100755
index 0000000000000000000000000000000000000000..7603a2be936004b5be0bcf7ae42d0cc1cc22969c
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/page_manager.page_variant.term_view-panels_variant-0.yml
@@ -0,0 +1,112 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - page_manager.page.term_view
+    - system.menu.blog-menu
+    - views.view.blog_entry
+  module:
+    - menu_block
+    - panels
+    - views
+id: term_view-panels_variant-0
+label: 'Blog terms'
+variant: panels_variant
+variant_settings:
+  blocks:
+    27499fc7-af2a-4e39-8532-3ab9df76e2c8:
+      id: 'views_block:blog_entry-blog_listing_by_term'
+      label: ''
+      provider: views
+      label_display: '0'
+      views_label: ''
+      items_per_page: none
+      region: left
+      weight: 0
+      uuid: 27499fc7-af2a-4e39-8532-3ab9df76e2c8
+      context_mapping: {  }
+    7c8cc70f-f819-44ed-bbb8-666cb2cf2dca:
+      id: 'views_block:blog_entry-most_popular'
+      label: ''
+      provider: views
+      label_display: visible
+      views_label: ''
+      items_per_page: none
+      region: right
+      weight: -1
+      uuid: 7c8cc70f-f819-44ed-bbb8-666cb2cf2dca
+      context_mapping: {  }
+    628b1275-8998-4a3f-9c9a-c4ad0dcb8ade:
+      id: 'views_block:blog_entry-most_recent_blog'
+      label: ''
+      provider: views
+      label_display: visible
+      views_label: ''
+      items_per_page: none
+      region: right
+      weight: 0
+      uuid: 628b1275-8998-4a3f-9c9a-c4ad0dcb8ade
+      context_mapping: {  }
+    30550b6f-3c0a-442f-a4f2-328386a287a7:
+      id: 'menu_block:blog-menu'
+      label: 'Blog menu'
+      provider: menu_block
+      label_display: '0'
+      level: 1
+      depth: 0
+      expand: 0
+      parent: 'blog-menu:'
+      suggestion: blog_menu
+      region: top
+      weight: 0
+      uuid: 30550b6f-3c0a-442f-a4f2-328386a287a7
+      context_mapping: {  }
+  id: panels_variant
+  uuid: 1b7acb0d-3c4d-4314-82f5-931eed2b0ecc
+  label: null
+  weight: 0
+  layout: bs_2col_stacked
+  layout_settings:
+    layout:
+      wrapper: div
+      classes:
+        row: row
+      add_layout_class: 1
+      attributes: ''
+    regions:
+      top:
+        wrapper: div
+        classes:
+          col-sm-12: col-sm-12
+          col-md-9: col-md-9
+        add_region_classes: 1
+        attributes: ''
+      left:
+        wrapper: div
+        classes:
+          col-sm-12: col-sm-12
+          col-md-9: col-md-9
+        add_region_classes: 1
+        attributes: ''
+      right:
+        wrapper: div
+        classes:
+          col-sm-12: col-sm-12
+          col-md-3: col-md-3
+        add_region_classes: 1
+        attributes: ''
+      bottom:
+        wrapper: div
+        classes:
+          col-sm-12: col-sm-12
+        add_region_classes: 1
+        attributes: ''
+  page_title: '[term:name]'
+  storage_type: page_manager
+  storage_id: term_view-panels_variant-0
+  builder: standard
+page: term_view
+weight: 0
+selection_criteria: {  }
+selection_logic: and
+static_context: {  }
diff --git a/modules/varbase_features/varbase_blog/config/install/pathauto.pattern.blog_aliases.yml b/modules/varbase_features/varbase_blog/config/install/pathauto.pattern.blog_aliases.yml
new file mode 100755
index 0000000000000000000000000000000000000000..73f1d363489fb9c8a214722f947acbe30aad3097
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/pathauto.pattern.blog_aliases.yml
@@ -0,0 +1,21 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - node
+id: blog_aliases
+label: 'Blog aliases'
+type: 'canonical_entities:node'
+pattern: '/blog/[node:title]'
+selection_criteria:
+  c1d1dee9-9dc0-4a10-89ee-94ee968678b2:
+    id: node_type
+    bundles:
+      varbase_blog: varbase_blog
+    negate: false
+    context_mapping:
+      node: node
+    uuid: c1d1dee9-9dc0-4a10-89ee-94ee968678b2
+selection_logic: and
+weight: -5
+relationships: {  }
diff --git a/modules/varbase_features/varbase_blog/config/install/pathauto.pattern.blog_categories.yml b/modules/varbase_features/varbase_blog/config/install/pathauto.pattern.blog_categories.yml
new file mode 100755
index 0000000000000000000000000000000000000000..c524a23ef17bd541f9a21e59f7d1e1d940017c6e
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/pathauto.pattern.blog_categories.yml
@@ -0,0 +1,22 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - ctools
+    - taxonomy
+id: blog_categories
+label: 'Blog categories'
+type: 'canonical_entities:taxonomy_term'
+pattern: 'blog/categories/[term:name]'
+selection_criteria:
+  ef5cf146-5a71-4f4e-96b7-9506ed0f0524:
+    id: 'entity_bundle:taxonomy_term'
+    bundles:
+      categories: categories
+    negate: false
+    context_mapping:
+      taxonomy_term: taxonomy_term
+    uuid: ef5cf146-5a71-4f4e-96b7-9506ed0f0524
+selection_logic: and
+weight: -5
+relationships: {  }
diff --git a/modules/varbase_features/varbase_blog/config/install/pathauto.pattern.blog_tags.yml b/modules/varbase_features/varbase_blog/config/install/pathauto.pattern.blog_tags.yml
new file mode 100755
index 0000000000000000000000000000000000000000..6373d084c768a4f2e2313c18d166e63d71a714d0
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/pathauto.pattern.blog_tags.yml
@@ -0,0 +1,22 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - ctools
+    - taxonomy
+id: blog_tags
+label: 'Blog tags'
+type: 'canonical_entities:taxonomy_term'
+pattern: 'blog/tags/[term:name]'
+selection_criteria:
+  67880970-a48e-46f6-b026-9017543029a5:
+    id: 'entity_bundle:taxonomy_term'
+    bundles:
+      tags: tags
+    negate: false
+    context_mapping:
+      taxonomy_term: taxonomy_term
+    uuid: 67880970-a48e-46f6-b026-9017543029a5
+selection_logic: and
+weight: -5
+relationships: {  }
diff --git a/modules/varbase_features/varbase_blog/config/install/system.menu.blog-menu.yml b/modules/varbase_features/varbase_blog/config/install/system.menu.blog-menu.yml
new file mode 100755
index 0000000000000000000000000000000000000000..7f39096f8052d771f74247ef0cc8c9cb9122cc1f
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/system.menu.blog-menu.yml
@@ -0,0 +1,7 @@
+langcode: en
+status: true
+dependencies: {  }
+id: blog-menu
+label: 'Blog menu'
+description: ''
+locked: false
diff --git a/modules/varbase_features/varbase_blog/config/install/taxonomy.vocabulary.categories.yml b/modules/varbase_features/varbase_blog/config/install/taxonomy.vocabulary.categories.yml
new file mode 100755
index 0000000000000000000000000000000000000000..ade1b31ecc632c4d10c854df7a117596d3a87e8e
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/taxonomy.vocabulary.categories.yml
@@ -0,0 +1,8 @@
+langcode: en
+status: true
+dependencies: {  }
+name: 'Blog Categories'
+vid: categories
+description: ''
+hierarchy: 0
+weight: 0
diff --git a/modules/varbase_features/varbase_blog/config/install/taxonomy.vocabulary.tags.yml b/modules/varbase_features/varbase_blog/config/install/taxonomy.vocabulary.tags.yml
new file mode 100755
index 0000000000000000000000000000000000000000..a72f4e142eb86f4524537dbd1cf4563e3ec07f13
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/taxonomy.vocabulary.tags.yml
@@ -0,0 +1,8 @@
+langcode: en
+status: true
+dependencies: {  }
+name: Tags
+vid: tags
+description: ''
+hierarchy: 0
+weight: 0
diff --git a/modules/varbase_features/varbase_blog/config/install/taxonomy_menu.taxonomy_menu.blog_categories_menu.yml b/modules/varbase_features/varbase_blog/config/install/taxonomy_menu.taxonomy_menu.blog_categories_menu.yml
new file mode 100755
index 0000000000000000000000000000000000000000..d7ec24a98d7c0121b18f8b96c811a44814881443
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/taxonomy_menu.taxonomy_menu.blog_categories_menu.yml
@@ -0,0 +1,13 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - system.menu.blog-menu
+    - taxonomy.vocabulary.categories
+id: blog_categories_menu
+label: 'Blog categories Menu'
+vocabulary: categories
+menu: blog-menu
+expanded: false
+depth: 0
+menu_parent: 'admin:node.add.varbase_blog'
diff --git a/modules/varbase_features/varbase_blog/config/install/views.view.blog_entry.yml b/modules/varbase_features/varbase_blog/config/install/views.view.blog_entry.yml
new file mode 100755
index 0000000000000000000000000000000000000000..a12764a0bc4fdf0e41547fd0a4be7fca5df9be2d
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/views.view.blog_entry.yml
@@ -0,0 +1,1032 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - core.entity_view_mode.node.horizontal_media_teaser_small
+    - core.entity_view_mode.node.text_teaser_small
+    - core.entity_view_mode.node.vertical_media_teaser_medium
+    - node.type.varbase_blog
+    - taxonomy.vocabulary.categories
+    - taxonomy.vocabulary.tags
+  module:
+    - ds
+    - node
+    - statistics
+    - taxonomy
+    - user
+    - views_bootstrap
+id: blog_entry
+label: 'Blog entry'
+module: views
+description: ''
+tag: ''
+base_table: node_field_data
+base_field: nid
+core: 8.x
+display:
+  default:
+    display_plugin: default
+    id: default
+    display_title: Master
+    position: 0
+    display_options:
+      access:
+        type: perm
+        options:
+          perm: 'access content'
+      cache:
+        type: tag
+        options: {  }
+      query:
+        type: views_query
+        options:
+          disable_sql_rewrite: false
+          distinct: false
+          replica: false
+          query_comment: ''
+          query_tags: {  }
+      exposed_form:
+        type: basic
+        options:
+          submit_button: Apply
+          reset_button: false
+          reset_button_label: Reset
+          exposed_sorts_label: 'Sort by'
+          expose_sort_order: true
+          sort_asc_label: Asc
+          sort_desc_label: Desc
+      pager:
+        type: full
+        options:
+          items_per_page: 12
+          offset: 0
+          id: 0
+          total_pages: null
+          tags:
+            previous: '‹ Previous'
+            next: 'Next ›'
+            first: '« First'
+            last: 'Last »'
+          expose:
+            items_per_page: false
+            items_per_page_label: 'Items per page'
+            items_per_page_options: '5, 10, 25, 50'
+            items_per_page_options_all: false
+            items_per_page_options_all_label: '- All -'
+            offset: false
+            offset_label: Offset
+          quantity: 9
+      style:
+        type: views_bootstrap_grid
+        options:
+          row_class: blog-item
+          default_row_class: true
+          uses_fields: false
+          alignment: horizontal
+          columns: '3'
+          col_xs: col-xs-12
+          col_sm: col-sm-12
+          col_md: col-md-4
+          col_lg: col-lg-4
+      row:
+        type: 'ds_entity:node'
+        options:
+          relationship: none
+          view_mode: vertical_media_teaser_medium
+          alternating_fieldset:
+            alternating: false
+            allpages: false
+            item_0: teaser
+            item_1: teaser
+            item_2: teaser
+          grouping_fieldset:
+            group: false
+            group_field: node_field_data|created
+            group_field_function: ''
+          advanced_fieldset:
+            advanced: false
+      fields:
+        title:
+          id: title
+          table: node_field_data
+          field: title
+          settings:
+            link_to_entity: true
+          plugin_id: field
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: string
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+      filters:
+        status:
+          value: '1'
+          table: node_field_data
+          field: status
+          plugin_id: boolean
+          entity_type: node
+          entity_field: status
+          id: status
+          expose:
+            operator: ''
+          group: 1
+        type:
+          id: type
+          table: node_field_data
+          field: type
+          value:
+            varbase_blog: varbase_blog
+          entity_type: node
+          entity_field: type
+          plugin_id: bundle
+      sorts:
+        created:
+          id: created
+          table: node_field_data
+          field: created
+          order: DESC
+          entity_type: node
+          entity_field: created
+          plugin_id: date
+          relationship: none
+          group_type: group
+          admin_label: ''
+          exposed: false
+          expose:
+            label: ''
+          granularity: second
+      title: Listing
+      header: {  }
+      footer: {  }
+      empty: {  }
+      relationships: {  }
+      arguments: {  }
+      display_extenders: {  }
+      css_class: 'blog-listing homepage-blog '
+    cache_metadata:
+      max-age: -1
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url.query_args
+        - 'user.node_grants:view'
+        - user.permissions
+      tags: {  }
+  blog_listing:
+    display_plugin: block
+    id: blog_listing
+    display_title: Listing
+    position: 1
+    display_options:
+      display_extenders:
+        metatag_display_extender: {  }
+      block_description: 'Blog Listing'
+      block_hide_empty: true
+      display_description: ''
+      style:
+        type: views_bootstrap_grid
+        options:
+          row_class: blog-item
+          default_row_class: true
+          uses_fields: false
+          alignment: horizontal
+          columns: '2'
+          col_xs: col-xs-12
+          col_sm: col-sm-12
+          col_md: col-md-6
+          col_lg: col-lg-6
+      defaults:
+        style: false
+        row: false
+        arguments: false
+        filters: false
+        filter_groups: false
+      row:
+        type: 'ds_entity:node'
+        options:
+          relationship: none
+          view_mode: vertical_media_teaser_medium
+          alternating_fieldset:
+            alternating: false
+            allpages: false
+            item_0: teaser
+            item_1: teaser
+            item_2: teaser
+            item_3: teaser
+            item_4: teaser
+            item_5: teaser
+            item_6: teaser
+            item_7: teaser
+            item_8: teaser
+            item_9: teaser
+            item_10: teaser
+            item_11: teaser
+          grouping_fieldset:
+            group: false
+            group_field: node_field_data|created
+            group_field_function: ''
+          advanced_fieldset:
+            advanced: false
+      arguments: {  }
+      filters:
+        status:
+          value: '1'
+          table: node_field_data
+          field: status
+          plugin_id: boolean
+          entity_type: node
+          entity_field: status
+          id: status
+          expose:
+            operator: ''
+          group: 1
+        type:
+          id: type
+          table: node_field_data
+          field: type
+          value:
+            varbase_blog: varbase_blog
+          entity_type: node
+          entity_field: type
+          plugin_id: bundle
+      filter_groups:
+        operator: AND
+        groups:
+          1: AND
+    cache_metadata:
+      max-age: -1
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url.query_args
+        - 'user.node_grants:view'
+        - user.permissions
+      tags: {  }
+  blog_listing_by_term:
+    display_plugin: block
+    id: blog_listing_by_term
+    display_title: 'Listing blog by term'
+    position: 7
+    display_options:
+      display_extenders:
+        metatag_display_extender: {  }
+      display_description: ''
+      title: 'Listing blog by term'
+      defaults:
+        title: false
+        arguments: false
+        style: false
+        row: false
+        link_display: false
+        link_url: false
+        use_ajax: false
+      block_description: 'Listing blog by term'
+      arguments:
+        tid:
+          id: tid
+          table: taxonomy_index
+          field: tid
+          relationship: none
+          group_type: group
+          admin_label: ''
+          default_action: default
+          exception:
+            value: all
+            title_enable: false
+            title: All
+          title_enable: false
+          title: ''
+          default_argument_type: taxonomy_tid
+          default_argument_options:
+            term_page: '1'
+            node: true
+            limit: true
+            vids:
+              categories: categories
+              tags: tags
+            anyall: ','
+          default_argument_skip_url: false
+          summary_options:
+            base_path: ''
+            count: true
+            items_per_page: 25
+            override: false
+          summary:
+            sort_order: asc
+            number_of_records: 0
+            format: default_summary
+          specify_validation: false
+          validate:
+            type: none
+            fail: 'not found'
+          validate_options: {  }
+          break_phrase: false
+          add_table: false
+          require_value: false
+          reduce_duplicates: false
+          plugin_id: taxonomy_index_tid
+      style:
+        type: views_bootstrap_grid
+        options:
+          row_class: blog-item
+          default_row_class: true
+          uses_fields: false
+          alignment: horizontal
+          columns: '2'
+          col_xs: col-xs-12
+          col_sm: col-sm-12
+          col_md: col-md-6
+          col_lg: col-lg-6
+      row:
+        type: 'ds_entity:node'
+        options:
+          relationship: none
+          view_mode: vertical_media_teaser_medium
+          alternating_fieldset:
+            alternating: false
+            allpages: false
+            item_0: teaser
+            item_1: teaser
+            item_2: teaser
+            item_3: teaser
+            item_4: teaser
+            item_5: teaser
+            item_6: teaser
+            item_7: teaser
+            item_8: teaser
+            item_9: teaser
+            item_10: teaser
+            item_11: teaser
+          grouping_fieldset:
+            group: false
+            group_field: node_field_data|created
+            group_field_function: ''
+          advanced_fieldset:
+            advanced: false
+      link_display: custom_url
+      link_url: blog
+      use_ajax: true
+      block_hide_empty: true
+    cache_metadata:
+      max-age: -1
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url
+        - url.query_args
+        - 'user.node_grants:view'
+        - user.permissions
+      tags: {  }
+  feed_1:
+    display_plugin: feed
+    id: feed_1
+    display_title: Feed
+    position: 7
+    display_options:
+      display_extenders:
+        metatag_display_extender: {  }
+      row:
+        type: node_rss
+        options: {  }
+      title: 'Blog Feed'
+      defaults:
+        title: false
+        sitename_title: false
+        css_class: false
+      sitename_title: false
+      path: blog/feed
+      css_class: ''
+    cache_metadata:
+      max-age: -1
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - 'user.node_grants:view'
+        - user.permissions
+      tags: {  }
+  homepage_blog:
+    display_plugin: block
+    id: homepage_blog
+    display_title: 'Homepage blog'
+    position: 2
+    display_options:
+      display_extenders:
+        metatag_display_extender: {  }
+      display_description: ''
+      title: Blog
+      defaults:
+        title: false
+        style: false
+        row: false
+        pager: false
+        use_more: false
+        use_more_always: false
+        use_more_text: false
+        link_display: false
+        link_url: false
+        css_class: false
+      style:
+        type: default
+        options:
+          row_class: 'col-sm-12 col-md-4'
+          default_row_class: true
+          uses_fields: false
+      row:
+        type: 'ds_entity:node'
+        options:
+          relationship: none
+          view_mode: vertical_media_teaser_medium
+          alternating_fieldset:
+            alternating: false
+            allpages: false
+            item_0: teaser
+            item_1: teaser
+            item_2: teaser
+            item_3: teaser
+            item_4: teaser
+          grouping_fieldset:
+            group: false
+            group_field: node_field_data|created
+            group_field_function: ''
+          advanced_fieldset:
+            advanced: false
+      block_description: 'Homepage blog'
+      pager:
+        type: some
+        options:
+          items_per_page: 3
+          offset: 0
+      use_more: true
+      use_more_always: true
+      use_more_text: 'View all blogs'
+      link_display: custom_url
+      link_url: blog
+      css_class: 'blog-listing homepage-blog '
+      block_hide_empty: true
+    cache_metadata:
+      max-age: -1
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - 'user.node_grants:view'
+        - user.permissions
+      tags: {  }
+  most_popular:
+    display_plugin: block
+    id: most_popular
+    display_title: 'Most popular'
+    position: 3
+    display_options:
+      display_extenders:
+        metatag_display_extender: {  }
+      display_description: ''
+      title: 'Most popular'
+      defaults:
+        title: false
+        pager: false
+        link_display: false
+        link_url: false
+        css_class: false
+        filters: false
+        filter_groups: false
+        sorts: false
+        arguments: false
+        style: false
+        row: false
+        fields: false
+      block_description: 'Most popular blog'
+      pager:
+        type: some
+        options:
+          items_per_page: 3
+          offset: 0
+      link_display: custom_url
+      link_url: /blog
+      css_class: sidebar-blog-block
+      block_hide_empty: true
+      filters:
+        status:
+          value: '1'
+          table: node_field_data
+          field: status
+          plugin_id: boolean
+          entity_type: node
+          entity_field: status
+          id: status
+          expose:
+            operator: ''
+          group: 1
+        type:
+          id: type
+          table: node_field_data
+          field: type
+          value:
+            varbase_blog: varbase_blog
+          entity_type: node
+          entity_field: type
+          plugin_id: bundle
+      filter_groups:
+        operator: AND
+        groups:
+          1: AND
+      sorts:
+        totalcount:
+          id: totalcount
+          table: node_counter
+          field: totalcount
+          relationship: none
+          group_type: group
+          admin_label: ''
+          order: DESC
+          exposed: false
+          expose:
+            label: ''
+          plugin_id: standard
+      arguments:
+        nid:
+          id: nid
+          table: node_field_data
+          field: nid
+          relationship: none
+          group_type: group
+          admin_label: ''
+          default_action: default
+          exception:
+            value: all
+            title_enable: false
+            title: All
+          title_enable: false
+          title: ''
+          default_argument_type: node
+          default_argument_options: {  }
+          default_argument_skip_url: false
+          summary_options:
+            base_path: ''
+            count: true
+            items_per_page: 25
+            override: false
+          summary:
+            sort_order: asc
+            number_of_records: 0
+            format: default_summary
+          specify_validation: true
+          validate:
+            type: 'entity:node'
+            fail: ignore
+          validate_options:
+            bundles:
+              varbase_blog: varbase_blog
+            operation: view
+            multiple: 0
+            access: false
+          break_phrase: false
+          not: true
+          entity_type: node
+          entity_field: nid
+          plugin_id: node_nid
+      style:
+        type: default
+        options:
+          grouping: {  }
+          row_class: ''
+          default_row_class: true
+          uses_fields: false
+      row:
+        type: 'ds_entity:node'
+        options:
+          relationship: none
+          view_mode: horizontal_media_teaser_small
+          alternating_fieldset:
+            alternating: false
+            allpages: false
+            item_0: teaser
+            item_1: teaser
+            item_2: teaser
+          grouping_fieldset:
+            group: false
+          advanced_fieldset:
+            advanced: false
+      fields:
+        title:
+          id: title
+          table: node_field_data
+          field: title
+          settings:
+            link_to_entity: true
+          plugin_id: field
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: string
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+        totalcount:
+          id: totalcount
+          table: node_counter
+          field: totalcount
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: false
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          set_precision: false
+          precision: 0
+          decimal: .
+          separator: ','
+          format_plural: false
+          format_plural_string: !!binary MQNAY291bnQ=
+          prefix: ''
+          suffix: ''
+          plugin_id: statistics_numeric
+    cache_metadata:
+      max-age: -1
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url
+        - 'user.node_grants:view'
+        - user.permissions
+      tags: {  }
+  most_recent_blog:
+    display_plugin: block
+    id: most_recent_blog
+    display_title: 'Most Recent'
+    position: 4
+    display_options:
+      display_extenders:
+        metatag_display_extender: {  }
+      display_description: ''
+      title: 'Most Recent'
+      defaults:
+        title: false
+        style: false
+        row: false
+        pager: false
+        link_display: false
+        link_url: false
+        arguments: false
+        css_class: false
+        use_ajax: false
+      style:
+        type: default
+        options:
+          grouping: {  }
+          row_class: ''
+          default_row_class: true
+          uses_fields: false
+      row:
+        type: 'ds_entity:node'
+        options:
+          relationship: none
+          view_mode: text_teaser_small
+          alternating_fieldset:
+            alternating: false
+            allpages: false
+            item_0: teaser
+            item_1: teaser
+            item_2: teaser
+          grouping_fieldset:
+            group: false
+            group_field: node_field_data|created
+            group_field_function: ''
+          advanced_fieldset:
+            advanced: false
+      block_description: 'Most Recent blog'
+      pager:
+        type: some
+        options:
+          items_per_page: 3
+          offset: 0
+      link_display: custom_url
+      link_url: /blog
+      arguments:
+        nid:
+          id: nid
+          table: node_field_data
+          field: nid
+          relationship: none
+          group_type: group
+          admin_label: ''
+          default_action: default
+          exception:
+            value: all
+            title_enable: false
+            title: All
+          title_enable: false
+          title: ''
+          default_argument_type: node
+          default_argument_options: {  }
+          default_argument_skip_url: false
+          summary_options:
+            base_path: ''
+            count: true
+            items_per_page: 25
+            override: false
+          summary:
+            sort_order: asc
+            number_of_records: 0
+            format: default_summary
+          specify_validation: true
+          validate:
+            type: 'entity:node'
+            fail: ignore
+          validate_options:
+            bundles:
+              varbase_blog: varbase_blog
+            operation: view
+            multiple: 0
+            access: false
+          break_phrase: false
+          not: true
+          entity_type: node
+          entity_field: nid
+          plugin_id: node_nid
+      css_class: sidebar-blog-block
+      block_hide_empty: true
+      use_ajax: true
+    cache_metadata:
+      max-age: -1
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url
+        - 'user.node_grants:view'
+        - user.permissions
+      tags: {  }
+  related_blogs:
+    display_plugin: block
+    id: related_blogs
+    display_title: 'Related blogs'
+    position: 5
+    display_options:
+      display_extenders:
+        metatag_display_extender: {  }
+      display_description: ''
+      title: 'Related blogs'
+      defaults:
+        title: false
+        arguments: false
+        relationships: false
+        filters: false
+        filter_groups: false
+        pager: false
+      block_description: 'Related blogs'
+      arguments:
+        tid:
+          id: tid
+          table: taxonomy_index
+          field: tid
+          relationship: none
+          group_type: group
+          admin_label: ''
+          default_action: default
+          exception:
+            value: all
+            title_enable: false
+            title: All
+          title_enable: false
+          title: ''
+          default_argument_type: taxonomy_tid
+          default_argument_options:
+            node: true
+            limit: true
+            vids:
+              categories: categories
+            anyall: +
+            term_page: '0'
+          default_argument_skip_url: false
+          summary_options:
+            base_path: ''
+            count: true
+            items_per_page: 25
+            override: false
+          summary:
+            sort_order: asc
+            number_of_records: 0
+            format: default_summary
+          specify_validation: false
+          validate:
+            type: none
+            fail: 'not found'
+          validate_options: {  }
+          break_phrase: true
+          add_table: true
+          require_value: true
+          reduce_duplicates: true
+          plugin_id: taxonomy_index_tid
+        nid:
+          id: nid
+          table: node_field_data
+          field: nid
+          relationship: none
+          group_type: group
+          admin_label: ''
+          default_action: default
+          exception:
+            value: all
+            title_enable: false
+            title: All
+          title_enable: false
+          title: ''
+          default_argument_type: node
+          default_argument_options: {  }
+          default_argument_skip_url: false
+          summary_options:
+            base_path: ''
+            count: true
+            items_per_page: 25
+            override: false
+          summary:
+            sort_order: asc
+            number_of_records: 0
+            format: default_summary
+          specify_validation: false
+          validate:
+            type: none
+            fail: 'not found'
+          validate_options: {  }
+          break_phrase: false
+          not: true
+          entity_type: node
+          entity_field: nid
+          plugin_id: node_nid
+      relationships: {  }
+      filters:
+        status:
+          value: '1'
+          table: node_field_data
+          field: status
+          plugin_id: boolean
+          entity_type: node
+          entity_field: status
+          id: status
+          expose:
+            operator: ''
+          group: 1
+        type:
+          id: type
+          table: node_field_data
+          field: type
+          value:
+            varbase_blog: varbase_blog
+          entity_type: node
+          entity_field: type
+          plugin_id: bundle
+      filter_groups:
+        operator: AND
+        groups:
+          1: AND
+      pager:
+        type: some
+        options:
+          items_per_page: 3
+          offset: 0
+    cache_metadata:
+      max-age: -1
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url
+        - 'user.node_grants:view'
+        - user.permissions
+      tags: {  }
diff --git a/modules/varbase_features/varbase_blog/config/install/views.view.blog_terms.yml b/modules/varbase_features/varbase_blog/config/install/views.view.blog_terms.yml
new file mode 100755
index 0000000000000000000000000000000000000000..1b5ea7a1665272540043068298bf5d24037d464a
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/config/install/views.view.blog_terms.yml
@@ -0,0 +1,376 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - taxonomy.vocabulary.categories
+    - taxonomy.vocabulary.tags
+  module:
+    - node
+    - taxonomy
+    - user
+id: blog_terms
+label: 'Blog terms'
+module: views
+description: ''
+tag: ''
+base_table: taxonomy_term_field_data
+base_field: tid
+core: 8.x
+display:
+  default:
+    display_plugin: default
+    id: default
+    display_title: Master
+    position: 0
+    display_options:
+      access:
+        type: perm
+        options:
+          perm: 'access content'
+      cache:
+        type: tag
+        options: {  }
+      query:
+        type: views_query
+        options:
+          disable_sql_rewrite: false
+          distinct: false
+          replica: false
+          query_comment: ''
+          query_tags: {  }
+      exposed_form:
+        type: basic
+        options:
+          submit_button: Apply
+          reset_button: false
+          reset_button_label: Reset
+          exposed_sorts_label: 'Sort by'
+          expose_sort_order: true
+          sort_asc_label: Asc
+          sort_desc_label: Desc
+      pager:
+        type: none
+        options:
+          offset: 0
+      style:
+        type: html_list
+        options:
+          grouping: {  }
+          row_class: ''
+          default_row_class: true
+          type: ul
+          wrapper_class: item-list
+          class: ''
+      row:
+        type: fields
+        options:
+          default_field_elements: true
+          inline:
+            name: name
+          separator: ''
+          hide_empty: false
+      fields:
+        name:
+          id: name
+          table: taxonomy_term_field_data
+          field: name
+          entity_type: taxonomy_term
+          entity_field: name
+          label: ''
+          alter:
+            alter_text: false
+            make_link: false
+            absolute: false
+            trim: false
+            word_boundary: false
+            ellipsis: false
+            strip_tags: false
+            html: false
+          hide_empty: false
+          empty_zero: false
+          type: string
+          settings:
+            link_to_entity: true
+          plugin_id: term_name
+          relationship: none
+          group_type: group
+          admin_label: ''
+          exclude: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_alter_empty: true
+          click_sort_column: value
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          convert_spaces: false
+        uuid:
+          id: uuid
+          table: node
+          field: uuid
+          relationship: nid
+          group_type: count
+          admin_label: ''
+          label: ''
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: false
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          set_precision: false
+          precision: 0
+          decimal: .
+          separator: ', '
+          format_plural: 0
+          format_plural_string: !!binary MQNAY291bnQ=
+          prefix: ''
+          suffix: ''
+          click_sort_column: value
+          type: string
+          settings: {  }
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          field_api_classes: false
+          entity_type: node
+          entity_field: uuid
+          plugin_id: field
+      filters:
+        vid:
+          id: vid
+          table: taxonomy_term_field_data
+          field: vid
+          value:
+            tags: tags
+          entity_type: taxonomy_term
+          entity_field: vid
+          plugin_id: bundle
+      sorts: {  }
+      title: 'Tags listing'
+      header: {  }
+      footer: {  }
+      empty: {  }
+      relationships:
+        nid:
+          id: nid
+          table: taxonomy_index
+          field: nid
+          relationship: none
+          group_type: group
+          admin_label: node
+          required: true
+          plugin_id: standard
+      arguments: {  }
+      display_extenders: {  }
+      group_by: true
+      css_class: blog-tags
+    cache_metadata:
+      max-age: -1
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - user.permissions
+      tags: {  }
+  categories:
+    display_plugin: block
+    id: categories
+    display_title: Categories
+    position: 2
+    display_options:
+      display_extenders:
+        metatag_display_extender: {  }
+      display_description: ''
+      title: 'Blog Categories'
+      defaults:
+        title: false
+        group_by: false
+        filters: false
+        filter_groups: false
+        css_class: false
+        fields: false
+        relationships: false
+        pager: false
+        header: false
+      group_by: false
+      filters:
+        vid:
+          id: vid
+          table: taxonomy_term_field_data
+          field: vid
+          relationship: none
+          group_type: group
+          admin_label: ''
+          operator: in
+          value:
+            categories: categories
+          group: 1
+          exposed: false
+          expose:
+            operator_id: ''
+            label: ''
+            description: ''
+            use_operator: false
+            operator: ''
+            identifier: ''
+            required: false
+            remember: false
+            multiple: false
+            remember_roles:
+              authenticated: authenticated
+            reduce: false
+          is_grouped: false
+          group_info:
+            label: ''
+            description: ''
+            identifier: ''
+            optional: true
+            widget: select
+            multiple: false
+            remember: false
+            default_group: All
+            default_group_multiple: {  }
+            group_items: {  }
+          entity_type: taxonomy_term
+          entity_field: vid
+          plugin_id: bundle
+      filter_groups:
+        operator: AND
+        groups:
+          1: AND
+      block_description: 'Blog Categories'
+      css_class: blog-categories
+      fields:
+        name:
+          id: name
+          table: taxonomy_term_field_data
+          field: name
+          entity_type: taxonomy_term
+          entity_field: name
+          label: ''
+          alter:
+            alter_text: false
+            make_link: false
+            absolute: false
+            trim: false
+            word_boundary: false
+            ellipsis: false
+            strip_tags: false
+            html: false
+          hide_empty: false
+          empty_zero: false
+          type: string
+          settings:
+            link_to_entity: true
+          plugin_id: term_name
+          relationship: none
+          group_type: group
+          admin_label: ''
+          exclude: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_alter_empty: true
+          click_sort_column: value
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          convert_spaces: false
+      relationships: {  }
+      pager:
+        type: none
+        options:
+          offset: 0
+      block_hide_empty: true
+      header: {  }
+    cache_metadata:
+      max-age: -1
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - user.permissions
+      tags: {  }
+  tags:
+    display_plugin: block
+    id: tags
+    display_title: 'Tags listing'
+    position: 1
+    display_options:
+      display_extenders:
+        metatag_display_extender: {  }
+      display_description: ''
+      block_hide_empty: true
+      block_description: 'Tags listing'
+    cache_metadata:
+      max-age: -1
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - user.permissions
+      tags: {  }
diff --git a/modules/varbase_features/varbase_blog/css/theme/blog.theme.css b/modules/varbase_features/varbase_blog/css/theme/blog.theme.css
new file mode 100755
index 0000000000000000000000000000000000000000..c78097db8517af6536ed2ddfbda5146fc0af16ce
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/css/theme/blog.theme.css
@@ -0,0 +1,106 @@
+.author-info {
+  color: #696969;
+  display: inline-block;
+}
+.author-info .field--name-node-author {
+  float: left;
+  padding-right: 10px;
+  border-right: 1px solid #979797;
+}
+.author-info .field--name-node-post-date {
+  padding-left: 10px;
+  float: left;
+}
+.field--name-field-tags .field--label {
+  margin-top: 15px;
+}
+.field--name-field-tags .field--item {
+  display: inline-block;
+}
+.field--name-field-tags .field--item a {
+  padding: 6px 12px;
+  margin: 5px 5px 5px 0;
+  text-decoration: none;
+  border-radius: 50px;
+  display: inline-block;
+  color: #777;
+  border: 1px solid #777;
+}
+.field--name-field-tags .field--item a:hover {
+  color: #428bca;
+  border: 1px solid #428bca;
+}
+.blog-listing article {
+  border: solid 1px #d4d4d4;
+}
+.blog-listing article .description {
+  padding: 15px 20px 44px 20px;
+}
+.blog-listing article .field--name-field-image img {
+  width: 100%;
+}
+.blog-listing article .field--name-node-link {
+  float: right;
+}
+@media (min-width: 992px) {
+  .blog-listing .row {
+    display: flex;
+  }
+  .blog-listing .row .blog-item {
+    display: flex;
+  }
+  .blog-listing .row .blog-item article {
+    display: flex;
+    flex-direction: column;
+    flex: 1 1 auto;
+  }
+}
+.blog-listing.homepage-blog .more-link {
+  text-align: center;
+}
+.blog-listing.homepage-blog .more-link a {
+  background: #337ab7;
+  color: white;
+  padding: 10px;
+  display: inline-block;
+  margin-top: 20px;
+  margin-bottom: 20px;
+}
+.blog-menu {
+  text-align: center;
+  margin: 20px auto;
+}
+.blog-menu.nav li {
+  display: inline-block;
+  padding-left: 5px;
+  padding-right: 5px;
+}
+.blog-menu.nav li a {
+  color: #666;
+  font-size: 20px;
+  padding: 0;
+  border-bottom: solid 2px transparent;
+}
+.blog-menu.nav li a:hover,
+.blog-menu.nav li a:focus,
+.blog-menu.nav li a.is-active {
+  border-bottom: solid 2px #29aae1;
+  text-decoration: none;
+  background: transparent;
+}
+.blog-tags .views-row {
+  padding: 0 4px;
+  color: #696969;
+  margin-right: 5px;
+  margin-bottom: 5px;
+  display: inline-block;
+  background-color: #f7f7f7;
+}
+.blog-tags .views-row a {
+  font-size: 14px;
+  color: #696969;
+  line-height: 23px;
+}
+.blog-tags .views-row a:hover {
+  color: #328ec7;
+}
diff --git a/modules/varbase_features/varbase_blog/less/theme/blog.theme.less b/modules/varbase_features/varbase_blog/less/theme/blog.theme.less
new file mode 100755
index 0000000000000000000000000000000000000000..af97c073821ccc13949b14a01960157688de2b38
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/less/theme/blog.theme.less
@@ -0,0 +1,138 @@
+.author-info {
+  color: #696969;
+  display: inline-block;
+
+  .field--name-node-author {
+    float: left;
+    padding-right: 10px;
+    border-right: 1px solid #979797;
+  }
+
+  .field--name-node-post-date {
+    padding-left: 10px;
+    float: left;
+  }
+}
+
+.field--name-field-tags {
+  .field--label {
+    margin-top: 15px;
+  }
+
+  .field--item {
+    display: inline-block;
+    a {
+      padding: 6px 12px;
+      margin: 5px 5px 5px 0;
+      text-decoration: none;
+      border-radius: 50px;
+      display: inline-block;
+      color: #777;
+      border: 1px solid #777;
+
+      &:hover {
+        color: #428bca;
+        border: 1px solid #428bca;
+      }
+    }
+  }
+}
+
+.blog-listing {
+  article {
+    border: solid 1px #d4d4d4;
+
+    .description {
+      padding: 15px 20px 44px 20px;
+    }
+
+    .field--name-field-image {
+      img {
+        width: 100%;
+      }
+    }
+
+    .field--name-node-link {
+      float: right;
+    }
+  }
+
+  @media (min-width: 992px) {
+    .row {
+      display: flex;
+
+      .blog-item {
+        display: flex;
+
+        article {
+          display: flex;
+          flex-direction: column;
+          flex: 1 1 auto;
+        }
+      }
+    }
+  }
+
+  &.homepage-blog {
+    .more-link {
+      text-align: center;
+      
+      a {
+        background: #337ab7;
+        color: white;
+        padding: 10px;
+        display: inline-block;
+        margin-top: 20px;
+        margin-bottom: 20px;
+      }
+    }
+  }
+}
+
+.blog-menu {
+  text-align: center;
+  margin: 20px auto;
+  &.nav {
+    li {
+      display: inline-block;
+      padding-left: 5px;
+      padding-right: 5px;
+
+      a {
+        color: #666;
+        font-size: 20px;
+        padding: 0;
+        border-bottom: solid 2px transparent;
+
+        &:hover,
+        &:focus,
+        &.is-active {
+          border-bottom: solid 2px #29aae1;
+          text-decoration: none;
+          background: transparent;
+        }
+      }
+    }
+  }
+}
+
+.blog-tags {
+  .views-row {
+    padding: 0 4px;
+    color: #696969;
+    margin-right: 5px;
+    margin-bottom: 5px;
+    display: inline-block;
+    background-color: #f7f7f7;
+
+    a {
+      font-size: 14px;
+      color: #696969;
+      line-height: 23px;
+
+      &:hover {
+        color: #328ec7;
+      }
+    }
+  }
+}
diff --git a/modules/varbase_features/varbase_blog/varbase_blog.features.yml b/modules/varbase_features/varbase_blog/varbase_blog.features.yml
new file mode 100755
index 0000000000000000000000000000000000000000..8ac52eee9b78f26c31dfe33a0489664fcee672ee
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/varbase_blog.features.yml
@@ -0,0 +1,2 @@
+bundle: varbase
+required: true
diff --git a/modules/varbase_features/varbase_blog/varbase_blog.info.yml b/modules/varbase_features/varbase_blog/varbase_blog.info.yml
new file mode 100755
index 0000000000000000000000000000000000000000..e506a90b26c375cadbfe608aa289946b8617aa60
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/varbase_blog.info.yml
@@ -0,0 +1,36 @@
+name: Blog
+description: 'Provides Blog content type and related configuration. Use <em>Blog</em> to publish blog post by different authors in the Blog section of the site.'
+type: module
+core: 8.x
+dependencies:
+  - autocomplete_deluxe
+  - block
+  - block_class
+  - ctools
+  - ds
+  - entity_browser
+  - field
+  - field_group
+  - language
+  - menu_block
+  - menu_ui
+  - metatag
+  - node
+  - page_manager
+  - panelizer
+  - panels
+  - path
+  - pathauto
+  - smart_trim
+  - statistics
+  - system
+  - taxonomy
+  - taxonomy_menu
+  - text
+  - user
+  - varbase_media
+  - varbase_seo
+  - views
+  - views_bootstrap
+  - yoast_seo
+package: Varbase
diff --git a/modules/varbase_features/varbase_blog/varbase_blog.libraries.yml b/modules/varbase_features/varbase_blog/varbase_blog.libraries.yml
new file mode 100755
index 0000000000000000000000000000000000000000..da988b9a624963eb0225e8c1f67cbf99040c7f42
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/varbase_blog.libraries.yml
@@ -0,0 +1,4 @@
+blog_theme:
+  css:
+    theme:
+      css/theme/blog.theme.css: {}
\ No newline at end of file
diff --git a/modules/varbase_features/varbase_blog/varbase_blog.module b/modules/varbase_features/varbase_blog/varbase_blog.module
new file mode 100755
index 0000000000000000000000000000000000000000..acc9cd73185d7d96f1e9eb464ab68d29f6709583
--- /dev/null
+++ b/modules/varbase_features/varbase_blog/varbase_blog.module
@@ -0,0 +1,14 @@
+<?php
+
+/**
+ * @file
+ * Contains varbase_blog.module.
+ */
+
+/**
+ * Implements hook_page_attachments().
+ */
+function varbase_blog_page_attachments(array &$page) {
+  // Attach the styling library.
+  $page['#attached']['library'][] = 'varbase_blog/blog_theme';
+}
\ No newline at end of file
diff --git a/modules/varbase_features/varbase_seo/config/install/user.role.seo_admin.yml b/modules/varbase_features/varbase_seo/config/install/user.role.seo_admin.yml
index e5285dc10f3ae48d84b10694270ffb9f63aba366..0d8e9eef0b400597fb740e2bbc72bdff182a958f 100644
--- a/modules/varbase_features/varbase_seo/config/install/user.role.seo_admin.yml
+++ b/modules/varbase_features/varbase_seo/config/install/user.role.seo_admin.yml
@@ -21,15 +21,19 @@ permissions:
   - 'create landing_page content'
   - 'create page content'
   - 'create url aliases'
+  - 'create varbase_blog content'
   - 'create varbase_heroslider_media content'
   - 'delete own landing_page content'
   - 'delete own page content'
+  - 'delete own varbase_blog content'
   - 'delete own varbase_heroslider_media content'
   - 'edit any landing_page content'
   - 'edit any page content'
+  - 'edit any varbase_blog content'
   - 'edit any varbase_heroslider_media content'
   - 'edit own landing_page content'
   - 'edit own page content'
+  - 'edit own varbase_blog content'
   - 'edit own varbase_heroslider_media content'
   - 'use yoast seo'
   - 'view the administration theme'
diff --git a/tests/features/varbase/step2-apply-tests/04-content-structure/04-06-blog-permissions.feature b/tests/features/varbase/step2-apply-tests/04-content-structure/04-06-blog-permissions.feature
new file mode 100755
index 0000000000000000000000000000000000000000..671f0be2d800ded32d843a87a02996d4773a204e
--- /dev/null
+++ b/tests/features/varbase/step2-apply-tests/04-content-structure/04-06-blog-permissions.feature
@@ -0,0 +1,50 @@
+Feature: Content Structure - Blog
+As a logged in user with a permission to manage Blogs.
+I want to be able to add a "Blog" 
+
+  @javascript @local @development @staging @production
+  Scenario: Check if we do have the "Blog" content type.
+    Given I am a logged in user with the "webmaster" user
+     When I go to "/admin/structure/types"
+      And I wait
+     Then I should see "Blog"
+  
+  @javascript @local @development @staging @production
+  Scenario: Check that Anonymous users can not create a Landing page.
+    Given I am an anonymous user
+     When I go to "/node/add/varbase_blog"
+      And I wait
+     Then I should see "Access denied"
+      And I should see "You are not authorized to access this page."
+
+  @javascript @local @development @staging @production
+  Scenario: Check that authenticated users can not create a Landing page.
+    Given I am a logged in user with the "test_authenticated" user
+     When I go to "/node/add/varbase_blog"
+      And I wait
+     Then I should see "Access denied"
+      And I should see "You are not authorized to access this page."
+
+  @javascript @local @development @staging @production
+  Scenario: Check that Editor users can create a Landing page.
+    Given I am a logged in user with the "test_editor" user
+     When I go to "/node/add/varbase_blog"
+      And I wait
+     Then I should not see "Access denied"
+      And I should not see "You are not authorized to access this page."
+
+  @javascript @local @development @staging @production
+  Scenario: Check that Content Admin users can create a Landing page.
+    Given I am a logged in user with the "test_content_admin" user
+     When I go to "/node/add/varbase_blog"
+      And I wait
+     Then I should not see "Access denied"
+      And I should not see "You are not authorized to access this page."
+
+  @javascript @local @development @staging @production
+  Scenario: Check that Site Admin users can create a Landing page.
+    Given I am a logged in user with the "test_site_admin" user
+     When I go to "/node/add/varbase_blog"
+      And I wait
+     Then I should not see "Access denied"
+      And I should not see "You are not authorized to access this page."