diff --git a/documentation/docs/98-reference/21-svelte-reactivity.md b/documentation/docs/98-reference/21-svelte-reactivity.md
index 6857c1dba80d..8cd7775f03b6 100644
--- a/documentation/docs/98-reference/21-svelte-reactivity.md
+++ b/documentation/docs/98-reference/21-svelte-reactivity.md
@@ -22,4 +22,97 @@ Svelte provides reactive versions of various built-ins like `SvelteMap`, `Svelte
```
+The utilities provided in `svelte/reactivity` are automatically reactive with respect to their properties and methods, as seen in the previous example. As such, they don't need to be wrapped in `$state`. However, if a variable is reassigned, it needs to be wrapped in a `$state` in order for this reassignement to be reactive.
+
+```svelte
+
+
+
+Protocol: {url?.protocol ?? "ftp:"}
+
+Hostname: {url?.hostname ?? "svelte.dev"}
+
+Path: {url?.pathname ?? ""}
+
+
+
+
+
+```
+
+In a similar manner, the values stored inside e.g. `SvelteMap` are not automatically reactive, so if more complex values such as objects are used, they need to be wrapped in a `$state` in order to make their properties reactive as well. Alternatively, the whole object can be rewritten on update, which may actually lead to better performance than deep reactive `$state`.
+
+```svelte
+
+
+{#each people.entries() as [id, person] (id)}
+ Name: {person.name}
+
+ Age: {person.age}
+
+
+{/each}
+
+
+
+
+
+
+
+
+
+
+
+
+{#if people.has("carol")}
+
+
+{/if}
+```
+
> MODULE: svelte/reactivity