diff --git a/.github/renovate.json5 b/.github/renovate.json5
new file mode 100644
index 00000000..b6884aee
--- /dev/null
+++ b/.github/renovate.json5
@@ -0,0 +1,64 @@
+{
+  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
+  "extends": ["config:base", "schedule:weekly", "group:allNonMajor"],
+  "labels": ["dependencies"],
+  "rangeStrategy": "bump",
+  "packageRules": [
+    {
+      "groupName": "devDependencies",
+      "matchDepTypes": ["devDependencies"],
+      "rangeStrategy": "bump"
+    },
+    {
+      "groupName": "dependencies",
+      "matchDepTypes": ["dependencies"],
+      "rangeStrategy": "replace"
+    },
+    {
+      "groupName": "peerDependencies",
+      "matchDepTypes": ["peerDependencies"],
+      "rangeStrategy": "widen"
+    },
+    {
+      "groupName": "engines",
+      "matchDepTypes": ["engines"],
+      "rangeStrategy": "replace"
+    },
+    {
+      "groupName": "test",
+      "matchPackageNames": ["@vitest/coverage-c8", "@vitest/ui", "vitest"]
+    },
+    {
+      "groupName": "lint",
+      "matchPackageNames": [
+        "@antfu/eslint-config",
+        "@types/prettier",
+        "eslint",
+        "prettier"
+      ]
+    },
+    {
+      "groupName": "iconify",
+      "matchPackagePatterns": ["^@iconify"]
+    },
+    {
+      "groupName": "tiptap",
+      "matchPackagePatterns": ["^@tiptap"]
+    },
+    {
+      "groupName": "vueuse",
+      "matchPackagePatterns": ["^@vueuse"]
+    },
+    {
+      "groupName": "masto",
+      "matchPackageNames": ["masto"]
+    },
+    {
+      "groupName": "typescript",
+      "matchPackageNames": ["typescript"]
+    }
+  ],
+  "vulnerabilityAlerts": {
+    "labels": ["security"]
+  }
+}