diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000000000000000000000000000000000000..12bcb27e4ee7bbca7f74423a87d205926d2ad1d2
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,17 @@
+# Drupal editor configuration normalization
+# @see http://editorconfig.org/
+
+# This is the top-most .editorconfig file; do not search in parent directories.
+root = true
+
+# All files.
+[*]
+end_of_line = LF
+indent_style = space
+indent_size = 2
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[{composer.json,composer.lock}]
+indent_size = 4
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..3c098caec79d2aead77fe2ca655b07f9504a7007
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,10 @@
+/core/
+/drush/
+/modules/
+/profiles/
+/themes/
+/vendor/
+/.env
+/composer.lock
+/.ahoy.l3d
+/.ahoy.yml
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d06804671fb3de6d0c25fba46e1c5a3975ba9050
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,4 @@
+include:
+  - project: 'gitlab-ci-cd/composer-packages'
+    ref: main
+    file: '/composer-packages.yml'
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000000000000000000000000000000000000..384054e1c60a1c53dfca0ea84f92dc1a82de4a5f
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,77 @@
+{
+    "name": "lakedrops/d10-project-scaffold",
+    "description": "Composer Plugin for Drupal 10 Project Template",
+    "type": "metapackage",
+    "keywords": [
+        "Drupal",
+        "Development",
+        "Install",
+        "Update"
+    ],
+    "homepage": "https://gitlab.lakedrops.com/composer/plugin/drupal-10-scaffold",
+    "license": "GPL-2.0-or-later",
+    "authors": [
+        {
+            "name": "Jürgen Haas",
+            "email": "juergen.haas@lakedrops.com",
+            "homepage": "https://www.lakedrops.com",
+            "role": "Drupal Expert"
+        },
+        {
+            "name": "Daniel Speicher",
+            "email": "daniel.speicher@lakedrops.com",
+            "homepage": "https://www.lakedrops.com",
+            "role": "Drupal Expert"
+        },
+        {
+            "name": "Richard Papp",
+            "email": "richard.papp@lakedrops.com",
+            "homepage": "https://www.lakedrops.com",
+            "role": "Drupal Expert"
+        }
+    ],
+    "support": {
+        "issues": "https://gitlab.lakedrops.com/composer/plugin/drupal-10-scaffold/issues",
+        "source": "https://gitlab.lakedrops.com/composer/plugin/drupal-10-scaffold/tree/main",
+        "docs": "https://devops-tools.docs.lakedrops.com/composer/plugin/d10-scaffold/"
+    },
+    "repositories": [
+        {
+            "type": "composer",
+            "url": "https://packages.drupal.org/8"
+        }
+    ],
+    "require": {
+        "php": ">=8.1",
+        "composer/installers": "^1.12",
+        "cweagans/composer-patches": "^1.7",
+        "drupal/admin_toolbar": "^3.3",
+        "drupal/antibot": "^2.0",
+        "drupal/block_class": "^2.0",
+        "drupal/bpmn_io": "^1.1",
+        "drupal/config_filter": "^2.4",
+        "drupal/config_split": "^2.0",
+        "drupal/core": "^10.0",
+        "drupal/core-composer-scaffold": "^10.0",
+        "drupal/eca": "^1.1",
+        "drupal/extlink": "^1.7",
+        "drupal/field_group": "^3.4",
+        "drupal/gin": "^3.0@RC",
+        "drupal/gin_toolbar": "^1.0@RC",
+        "drupal/metatag": "^1.22",
+        "drupal/pathauto": "^1.11",
+        "drupal/piwik_noscript": "^1.7",
+        "drupal/redis": "^1.6",
+        "drupal/security_review": "^2.0",
+        "drupal/simple_sitemap": "^4.1",
+        "drupal/smart_date": "^3.6",
+        "drupal/smtp": "^1.2",
+        "drupal/stage_file_proxy": "^2.0",
+        "drupal/token": "^1.11",
+        "drush/drush": "^11",
+        "lakedrops/ahoy": "^1.7||dev-develop",
+        "lakedrops/composer-json-utils": "^2.4||dev-develop"
+    },
+    "minimum-stability": "dev",
+    "prefer-stable": true
+}