diff --git a/README.md b/README.md
index ab8ceec..12c731f 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,11 @@
Design resources for Rstack, including Rspack, Rsbuild, Rspress, Rsdoctor, Rslib and Rstest.
+## Rstack
+
+- [Rstack logo variants](./rstack/logos)
+- see [rstack folder](./rstack) for more.
+
## Rspack
- [rspack-logo.svg](./rspack/rspack-logo.svg)
diff --git a/rstack/logos/README.md b/rstack/logos/README.md
new file mode 100644
index 0000000..8d5ef50
--- /dev/null
+++ b/rstack/logos/README.md
@@ -0,0 +1,17 @@
+# Rstack logo variants
+
+SVG logo variants for the Rstack family:
+
+- [`avatar`](./avatar): full-size circular avatar icons
+- [`website`](./website): compact icons for websites and product surfaces
+- [`simplified`](./simplified): simplified product marks
+
+Each directory contains icons for Rspack, Rsbuild, Rslib, Rspress, Rsdoctor,
+Rstest, Rslint, and Rslim.
+
+After deployment, each file is available from `https://assets.rspack.rs/` using
+its repository path. For example:
+
+```text
+https://assets.rspack.rs/rstack/logos/avatar/rspack.svg
+```
diff --git a/rstack/logos/avatar/rsbuild.svg b/rstack/logos/avatar/rsbuild.svg
new file mode 100644
index 0000000..54aac90
--- /dev/null
+++ b/rstack/logos/avatar/rsbuild.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/avatar/rsdoctor.svg b/rstack/logos/avatar/rsdoctor.svg
new file mode 100644
index 0000000..35ef973
--- /dev/null
+++ b/rstack/logos/avatar/rsdoctor.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/avatar/rslib.svg b/rstack/logos/avatar/rslib.svg
new file mode 100644
index 0000000..310c848
--- /dev/null
+++ b/rstack/logos/avatar/rslib.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/avatar/rslint.svg b/rstack/logos/avatar/rslint.svg
new file mode 100644
index 0000000..437449c
--- /dev/null
+++ b/rstack/logos/avatar/rslint.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/avatar/rspack.svg b/rstack/logos/avatar/rspack.svg
new file mode 100644
index 0000000..eb3a0e0
--- /dev/null
+++ b/rstack/logos/avatar/rspack.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/avatar/rspress.svg b/rstack/logos/avatar/rspress.svg
new file mode 100644
index 0000000..61a63f3
--- /dev/null
+++ b/rstack/logos/avatar/rspress.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/avatar/rstest.svg b/rstack/logos/avatar/rstest.svg
new file mode 100644
index 0000000..5df94fb
--- /dev/null
+++ b/rstack/logos/avatar/rstest.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/simplified/rsbuild.svg b/rstack/logos/simplified/rsbuild.svg
new file mode 100644
index 0000000..0822ed9
--- /dev/null
+++ b/rstack/logos/simplified/rsbuild.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/simplified/rsdoctor.svg b/rstack/logos/simplified/rsdoctor.svg
new file mode 100644
index 0000000..4d80b73
--- /dev/null
+++ b/rstack/logos/simplified/rsdoctor.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/simplified/rslib.svg b/rstack/logos/simplified/rslib.svg
new file mode 100644
index 0000000..f2d1d19
--- /dev/null
+++ b/rstack/logos/simplified/rslib.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/simplified/rslint.svg b/rstack/logos/simplified/rslint.svg
new file mode 100644
index 0000000..86ac4f2
--- /dev/null
+++ b/rstack/logos/simplified/rslint.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/simplified/rspack.svg b/rstack/logos/simplified/rspack.svg
new file mode 100644
index 0000000..d2ec276
--- /dev/null
+++ b/rstack/logos/simplified/rspack.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/simplified/rspress.svg b/rstack/logos/simplified/rspress.svg
new file mode 100644
index 0000000..7afddd5
--- /dev/null
+++ b/rstack/logos/simplified/rspress.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/simplified/rstest.svg b/rstack/logos/simplified/rstest.svg
new file mode 100644
index 0000000..47b5239
--- /dev/null
+++ b/rstack/logos/simplified/rstest.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/website/rsbuild.svg b/rstack/logos/website/rsbuild.svg
new file mode 100644
index 0000000..6258a3d
--- /dev/null
+++ b/rstack/logos/website/rsbuild.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/website/rsdoctor.svg b/rstack/logos/website/rsdoctor.svg
new file mode 100644
index 0000000..13df278
--- /dev/null
+++ b/rstack/logos/website/rsdoctor.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/website/rslib.svg b/rstack/logos/website/rslib.svg
new file mode 100644
index 0000000..d67b1a4
--- /dev/null
+++ b/rstack/logos/website/rslib.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/website/rslint.svg b/rstack/logos/website/rslint.svg
new file mode 100644
index 0000000..d303ada
--- /dev/null
+++ b/rstack/logos/website/rslint.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/website/rspack.svg b/rstack/logos/website/rspack.svg
new file mode 100644
index 0000000..23eadc1
--- /dev/null
+++ b/rstack/logos/website/rspack.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/website/rspress.svg b/rstack/logos/website/rspress.svg
new file mode 100644
index 0000000..cbc0d67
--- /dev/null
+++ b/rstack/logos/website/rspress.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/rstack/logos/website/rstest.svg b/rstack/logos/website/rstest.svg
new file mode 100644
index 0000000..2dee8fb
--- /dev/null
+++ b/rstack/logos/website/rstest.svg
@@ -0,0 +1 @@
+
\ No newline at end of file