diff --git a/README.md b/README.md
index de4a7e0..52a0288 100644
--- a/README.md
+++ b/README.md
@@ -29,6 +29,15 @@ The docs follow the [Diátaxis](https://diataxis.fr) framework:
| **[Reference](docs/reference.md)** | Looking up facts | Platforms, API surface, symbol coverage, build |
| **[Explanation](docs/explanation.md)** | Understanding the why | Why FFM + Zig, when zero-copy pays, benchmarks |
+## Install
+
+The `zstd` jar is pure Java and ships no `libzstd` — you always pair it with a
+native artifact. Two ways:
+
+**1. Everything, any platform** — one dependency on `zstd-platform`, an empty jar
+that transitively pulls the bindings plus all six natives (~3.8 MB). Zero choices;
+the build runs on any OS/arch.
+
```xml
io.github.dfa1.zstd
@@ -37,10 +46,40 @@ The docs follow the [Diátaxis](https://diataxis.fr) framework:
```
-`zstd-platform` bundles the bindings plus every platform's native library. For a
-single-platform, leaner setup (one native), see the [tutorial](docs/tutorial.md).
-Requires JDK 25+ and `--enable-native-access=ALL-UNNAMED` at runtime. Building
-from source is for contributors — see the [reference](docs/reference.md).
+**2. Leaner, one platform** — import `zstd-bom` to pin versions, then take `zstd`
+plus only the `zstd-native-` you target.
+
+```xml
+
+
+
+ io.github.dfa1.zstd
+ zstd-bom
+ 0.2
+ pom
+ import
+
+
+
+
+
+
+ io.github.dfa1.zstd
+ zstd
+
+
+ io.github.dfa1.zstd
+ zstd-native-osx-aarch64
+ runtime
+
+
+```
+
+Classifiers: `osx-aarch64`, `osx-x86_64`, `linux-x86_64`, `linux-aarch64`,
+`windows-x86_64`, `windows-aarch64`. Gradle and more detail in the
+[tutorial](docs/tutorial.md). Requires JDK 25+ and
+`--enable-native-access=ALL-UNNAMED` at runtime. Building from source is for
+contributors — see the [reference](docs/reference.md).
## License