diff --git a/content/news/2023-07-07-bevy-0.11/index.md b/content/news/2023-07-07-bevy-0.11/index.md
index 3d0bc99389..90456d8a26 100644
--- a/content/news/2023-07-07-bevy-0.11/index.md
+++ b/content/news/2023-07-07-bevy-0.11/index.md
@@ -15,13 +15,42 @@ Since our last release a few months ago we've added a _ton_ of new features, bug
-* **Feature**: description
-
-## Feature
-
-
authors: @todo
-
-Description
+* **Gamepad Rumble API**: an ECS-friendly way of making controllers rumble
+
+## Gamepad Rumble API
+
+authors: @johanhelsing, @nicopap
+
+You can now use the `EventWriter` system parameter to
+trigger controllers force-feedback motors.
+
+[`gilrs`], the crate bevy uses for gamepad support, allows controlling
+force-feedback motors. Sadly, there were no easy way of accessing the
+force-feedback API in bevy without tedious bookkeeping.
+
+Now bevy has the `GamepadRumbleRequest` event to do just that.
+
+```rust
+fn rumble_system(
+ gamepads: Res,
+ mut rumble_requests: EventWriter,
+) {
+ for gamepad in gamepads.iter() {
+ rumble_requests.send(GamepadRumbleRequest::Add {
+ gamepad,
+ duration: Duration::from_secs(5),
+ intensity: GamepadRumbleIntensity::MAX,
+ });
+ }
+}
+```
+
+The `GamepadRumbleRequest::Add` event triggers a force-feedback motor,
+controlling how long the vibration should last, the motor to activate,
+and the vibration strength. `GamepadRumbleRequest::Stop` immediately stops all
+motors.
+
+[`gilrs`]: https://crates.io/crates/gilrs
## What's Next?