diff --git a/.gitignore b/.gitignore
index 421da659..893e9785 100644
--- a/.gitignore
+++ b/.gitignore
@@ -102,4 +102,5 @@ keyv.iml
#website
packages/website/site/docs/**
!packages/website/site/docs/index.md
+!packages/website/site/docs/v4-to-v5.md
!packages/website/site/docs/cacheing/**
diff --git a/media/github-social-logo.png b/media/github-social-logo.png
new file mode 100644
index 00000000..8d7b592a
Binary files /dev/null and b/media/github-social-logo.png differ
diff --git a/media/keyv-guidelines-1.0.pdf b/media/keyv-guidelines-1.0.pdf
new file mode 100644
index 00000000..171e8525
Binary files /dev/null and b/media/keyv-guidelines-1.0.pdf differ
diff --git a/media/keyv-logos/black-white/png/keyv-logo-horizontal-black.png b/media/keyv-logos/black-white/png/keyv-logo-horizontal-black.png
new file mode 100644
index 00000000..c8cd9419
Binary files /dev/null and b/media/keyv-logos/black-white/png/keyv-logo-horizontal-black.png differ
diff --git a/media/keyv-logos/black-white/png/keyv-logo-horizontal-white.png b/media/keyv-logos/black-white/png/keyv-logo-horizontal-white.png
new file mode 100644
index 00000000..28b9461f
Binary files /dev/null and b/media/keyv-logos/black-white/png/keyv-logo-horizontal-white.png differ
diff --git a/media/keyv-logos/black-white/png/keyv-logo-vertical-black.png b/media/keyv-logos/black-white/png/keyv-logo-vertical-black.png
new file mode 100644
index 00000000..5ff747fc
Binary files /dev/null and b/media/keyv-logos/black-white/png/keyv-logo-vertical-black.png differ
diff --git a/media/keyv-logos/black-white/png/keyv-logo-vertical-white.png b/media/keyv-logos/black-white/png/keyv-logo-vertical-white.png
new file mode 100644
index 00000000..3b6a7943
Binary files /dev/null and b/media/keyv-logos/black-white/png/keyv-logo-vertical-white.png differ
diff --git a/media/keyv-logos/black-white/png/keyv-symbol-black.png b/media/keyv-logos/black-white/png/keyv-symbol-black.png
new file mode 100644
index 00000000..a54a7d7e
Binary files /dev/null and b/media/keyv-logos/black-white/png/keyv-symbol-black.png differ
diff --git a/media/keyv-logos/black-white/png/keyv-symbol-white.png b/media/keyv-logos/black-white/png/keyv-symbol-white.png
new file mode 100644
index 00000000..84b7be16
Binary files /dev/null and b/media/keyv-logos/black-white/png/keyv-symbol-white.png differ
diff --git a/media/keyv-logos/black-white/svg/keyv-logo-horizontal-black.svg b/media/keyv-logos/black-white/svg/keyv-logo-horizontal-black.svg
new file mode 100644
index 00000000..ddbdd28a
--- /dev/null
+++ b/media/keyv-logos/black-white/svg/keyv-logo-horizontal-black.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/media/keyv-logos/black-white/svg/keyv-logo-horizontal-white.svg b/media/keyv-logos/black-white/svg/keyv-logo-horizontal-white.svg
new file mode 100644
index 00000000..b0dc5f54
--- /dev/null
+++ b/media/keyv-logos/black-white/svg/keyv-logo-horizontal-white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/media/keyv-logos/black-white/svg/keyv-logo-vertical-black.svg b/media/keyv-logos/black-white/svg/keyv-logo-vertical-black.svg
new file mode 100644
index 00000000..4039d16c
--- /dev/null
+++ b/media/keyv-logos/black-white/svg/keyv-logo-vertical-black.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/media/keyv-logos/black-white/svg/keyv-logo-vertical-white.svg b/media/keyv-logos/black-white/svg/keyv-logo-vertical-white.svg
new file mode 100644
index 00000000..c89265fc
--- /dev/null
+++ b/media/keyv-logos/black-white/svg/keyv-logo-vertical-white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/media/keyv-logos/black-white/svg/keyv-symbol-black.svg b/media/keyv-logos/black-white/svg/keyv-symbol-black.svg
new file mode 100644
index 00000000..203cfc32
--- /dev/null
+++ b/media/keyv-logos/black-white/svg/keyv-symbol-black.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/media/keyv-logos/black-white/svg/keyv-symbol-white.svg b/media/keyv-logos/black-white/svg/keyv-symbol-white.svg
new file mode 100644
index 00000000..457c4e73
--- /dev/null
+++ b/media/keyv-logos/black-white/svg/keyv-symbol-white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/media/keyv-logos/color-rgb/png/keyv-logo-horizontal-black.png b/media/keyv-logos/color-rgb/png/keyv-logo-horizontal-black.png
new file mode 100644
index 00000000..f4f46209
Binary files /dev/null and b/media/keyv-logos/color-rgb/png/keyv-logo-horizontal-black.png differ
diff --git a/media/keyv-logos/color-rgb/png/keyv-logo-horizontal-white.png b/media/keyv-logos/color-rgb/png/keyv-logo-horizontal-white.png
new file mode 100644
index 00000000..e91c3f4b
Binary files /dev/null and b/media/keyv-logos/color-rgb/png/keyv-logo-horizontal-white.png differ
diff --git a/media/keyv-logos/color-rgb/png/keyv-logo-vertical-black.png b/media/keyv-logos/color-rgb/png/keyv-logo-vertical-black.png
new file mode 100644
index 00000000..2431e987
Binary files /dev/null and b/media/keyv-logos/color-rgb/png/keyv-logo-vertical-black.png differ
diff --git a/media/keyv-logos/color-rgb/png/keyv-logo-vertical-white.png b/media/keyv-logos/color-rgb/png/keyv-logo-vertical-white.png
new file mode 100644
index 00000000..b7e26b75
Binary files /dev/null and b/media/keyv-logos/color-rgb/png/keyv-logo-vertical-white.png differ
diff --git a/media/keyv-logos/color-rgb/png/keyv-symbol.png b/media/keyv-logos/color-rgb/png/keyv-symbol.png
new file mode 100644
index 00000000..6a53cc14
Binary files /dev/null and b/media/keyv-logos/color-rgb/png/keyv-symbol.png differ
diff --git a/media/keyv-logos/color-rgb/svg/keyv-logo-horizontal-black.svg b/media/keyv-logos/color-rgb/svg/keyv-logo-horizontal-black.svg
new file mode 100644
index 00000000..2c1007d2
--- /dev/null
+++ b/media/keyv-logos/color-rgb/svg/keyv-logo-horizontal-black.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/media/keyv-logos/color-rgb/svg/keyv-logo-horizontal-white.svg b/media/keyv-logos/color-rgb/svg/keyv-logo-horizontal-white.svg
new file mode 100644
index 00000000..e1aa4ab4
--- /dev/null
+++ b/media/keyv-logos/color-rgb/svg/keyv-logo-horizontal-white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/media/keyv-logos/color-rgb/svg/keyv-logo-vertical-black.svg b/media/keyv-logos/color-rgb/svg/keyv-logo-vertical-black.svg
new file mode 100644
index 00000000..c886a0f9
--- /dev/null
+++ b/media/keyv-logos/color-rgb/svg/keyv-logo-vertical-black.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/media/keyv-logos/color-rgb/svg/keyv-logo-vertical-white.svg b/media/keyv-logos/color-rgb/svg/keyv-logo-vertical-white.svg
new file mode 100644
index 00000000..98653497
--- /dev/null
+++ b/media/keyv-logos/color-rgb/svg/keyv-logo-vertical-white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/media/keyv-logos/color-rgb/svg/keyv-symbol.svg b/media/keyv-logos/color-rgb/svg/keyv-symbol.svg
new file mode 100644
index 00000000..eafa66b5
--- /dev/null
+++ b/media/keyv-logos/color-rgb/svg/keyv-symbol.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/media/legacy_logo.svg b/media/legacy_logo.svg
new file mode 100644
index 00000000..8089994e
--- /dev/null
+++ b/media/legacy_logo.svg
@@ -0,0 +1,10 @@
+
+
diff --git a/media/logo.svg b/media/logo.svg
index 8089994e..c886a0f9 100644
--- a/media/logo.svg
+++ b/media/logo.svg
@@ -1,10 +1 @@
-
-
+
\ No newline at end of file
diff --git a/packages/website/site/docs/v4-to-v5.md b/packages/website/site/docs/v4-to-v5.md
new file mode 100644
index 00000000..d0df0818
--- /dev/null
+++ b/packages/website/site/docs/v4-to-v5.md
@@ -0,0 +1,43 @@
+---
+title: 'v4 to v5 Migration'
+order: 2
+---
+
+# v4 to v5 Migration
+
+Keyv v5 is a major release with breaking changes. The biggest breaking changes are the removal of the URI via the constructor and the support for Nodejs 20+. Below are the new features and breaking changes in Keyv v5. To get past this please use Nodejs 20+ and update your code to use the new features and breaking changes like the following:
+
+## Before with v4
+```js
+import Keyv from 'keyv';
+import KeyvRedis from '@keyv/redis';
+const keyv = new Keyv('redis://user:pass@localhost:6379');
+```
+
+In the past this would have worked but now you need to pass in the store either directly to the constructor like below or via the options object parameter called `store`. The constructor will take the storage adapter or the options as the first parameter.
+
+## Now with v5
+```js
+import Keyv from 'keyv';
+import KeyvRedis from '@keyv/redis';
+const keyv = new Keyv(new KeyvRedis({ uri: 'redis://user:pass@localhost:6379' }));
+```
+
+## An example with options
+When passing in options you can do the following using the `store` parameter:
+```js
+import Keyv from 'keyv';
+import KeyvRedis from '@keyv/redis';
+const keyv = new Keyv({ store: new KeyvRedis({ uri: 'redis://user:pass@localhost:6379' }), namespace: 'my-namespace' });
+```
+
+# New Features
+Here are a list of new features in Keyv v5:
+- **Typescript Support**: Keyv v5 is written in Typescript and has full typescript support.
+- **ESM Support**: Keyv v5 is written in ESM and has full ESM support.
+- **Event Emitter**: Keyv v5 is now an event emitter and emits events for `set`, `delete`, `clear`, and `error` with no reliance on third party libraries.
+- **Built in Statistics**: Keyv v5 has built in statistics for `hits`, `misses`, `sets`, `deletes`, and `errors`.
+- **Hooks**: Keyv v5 has hooks for pre and post processing on `set()`, `get()`, `getMany()`, and `delete()`.
+
+You can learn about any of these features in the Keyv API documentation.
+
diff --git a/packages/website/site/docula.config.cjs b/packages/website/site/docula.config.cjs
index 8b5050eb..f71af66b 100644
--- a/packages/website/site/docula.config.cjs
+++ b/packages/website/site/docula.config.cjs
@@ -4,8 +4,8 @@ module.exports.options = {
siteDescription: 'Simple key-value storage with support for multiple backends',
siteUrl: 'https://keyv.org',
sections: [
- { name: 'Caching', path: 'caching', order: 5 },
- { name: 'Compression', path: 'compression', order: 4 },
- { name: 'Storage Adapters', path: 'storage-adapters', order: 3 },
+ { name: 'Caching', path: 'caching', order: 6 },
+ { name: 'Compression', path: 'compression', order: 5 },
+ { name: 'Storage Adapters', path: 'storage-adapters', order: 4 },
],
};
diff --git a/packages/website/src/docs.ts b/packages/website/src/docs.ts
index 7a7a6e6e..ff7ad7f6 100644
--- a/packages/website/src/docs.ts
+++ b/packages/website/src/docs.ts
@@ -47,7 +47,7 @@ async function copyKeyvAPI() {
const originalFileText = await fs.readFile(`${packagesPath}/keyv/README.md`, "utf8");
let newFileText = "---\n";
newFileText += `title: 'Keyv API'\n`;
- newFileText += `order: 2\n`;
+ newFileText += `order: 3\n`;
newFileText += "---\n";
newFileText += "\n";
newFileText += originalFileText;