diff --git a/_posts/2025-10-24-this-month-in-servo.md b/_posts/2025-10-24-this-month-in-servo.md
new file mode 100644
index 000000000..cb63babd1
--- /dev/null
+++ b/_posts/2025-10-24-this-month-in-servo.md
@@ -0,0 +1,156 @@
+---
+layout: post
+tags: blog
+title: "This month in Servo: experimental mode, Trusted Types, strokeText(), and more!"
+date: 2025-10-24
+summary: Click the experimental mode button (☢) to enable bleeding-edge web platform features.
+categories:
+---
+
+September was another busy month for Servo, with a bunch of new features landing in our nightly builds:
+
+- the **Trusted Types** API is now stable ([@TimvdLippe](https://github.com/TimvdLippe), [#39281](https://github.com/servo/servo/pull/39281), [#39263](https://github.com/servo/servo/pull/39263))
+- **strokeText()** on CanvasRenderingContext2D ([@sagudev](https://github.com/sagudev), [#39183](https://github.com/servo/servo/pull/39183))
+- **invertSelf()** on DOMMatrix ([@lumiscosity](https://github.com/lumiscosity), [#39148](https://github.com/servo/servo/pull/39148))
+- **getType()** and **supports()** on ClipboardItem ([@Gae24](https://github.com/Gae24), [#39296](https://github.com/servo/servo/pull/39296))
+- **getAll()** and **getAllKeys()** on IDBObjectStore ([@arihant2math](https://github.com/arihant2math), [#38885](https://github.com/servo/servo/pull/38885))
+- **scrollParent** property on HTMLElement ([@mrobinson](https://github.com/mrobinson), [@Loirooriol](https://github.com/Loirooriol), [#39110](https://github.com/servo/servo/pull/39110))
+- **sizes** property on HTMLImageElement ([@tharkum](https://github.com/tharkum), [#39466](https://github.com/servo/servo/pull/39466))
+
+
+
+ [DebugOptions](https://doc.servo.org/servo_config/opts/struct.DebugOptions.html)::convert_mouse_to_touch (`-Z convert-mouse-to-touch`) has been removed ([@mrobinson](https://github.com/mrobinson), [#39352](https://github.com/servo/servo/pull/39352)), with no replacement.
+Touch event simulation continues to be available in servoshell as `--simulate-touch-events`.
+
+[DebugOptions](https://doc.servo.org/servo_config/opts/struct.DebugOptions.html)::webrender_stats (`-Z wr-stats` in servoshell) has been removed ([@mrobinson](https://github.com/mrobinson), [#39331](https://github.com/servo/servo/pull/39331)); instead call [toggle_webrender_debugging](https://doc.servo.org/servo/struct.WebView.html#method.toggle_webrender_debugging)([Profiler](https://doc.servo.org/servo/enum.WebRenderDebugOption.html#variant.Profiler)) on a WebView (or press **Ctrl**+**F12** in servoshell).
+
+[DebugOptions](https://doc.servo.org/servo_config/opts/struct.DebugOptions.html)::trace_layout (`-Z trace-layout`) has been removed ([@mrobinson](https://github.com/mrobinson), [#39332](https://github.com/servo/servo/pull/39332)), since it had no effect.
+
+We’ve improved the docs for [WebViewDelegate](https://doc.servo.org/servo/trait.WebViewDelegate.html)::[notify_history_changed](https://doc.servo.org/servo/trait.WebViewDelegate.html#method.notify_history_changed) ([@Narfinger](https://github.com/Narfinger), [@mrobinson](https://github.com/mrobinson), [@yezhizhen](https://github.com/yezhizhen), [#39134](https://github.com/servo/servo/pull/39134)).
+
+When automating servoshell with **WebDriver**, commands **targeting elements** now correctly **scroll into view** if needed ([@PotatoCP](https://github.com/PotatoCP), [@yezhizhen](https://github.com/yezhizhen), [#38508](https://github.com/servo/servo/pull/38508), [#39265](https://github.com/servo/servo/pull/39265)), allowing **Element Click**, **Element Send Keys**, **Element Clear**, and **Take Element Screenshot** to work properly when the element is outside the viewport.
+
+**WebDriver mouse inputs** now work correctly with **HiDPI scaling** on more platforms ([@mrobinson](https://github.com/mrobinson), [#39472](https://github.com/servo/servo/pull/39472)), and we’ve improved the reliability of **Take Screenshot**, **Take Element Screenshot** ([@yezhizhen](https://github.com/yezhizhen), [#39499](https://github.com/servo/servo/pull/39499), [#39539](https://github.com/servo/servo/pull/39539), [#39543](https://github.com/servo/servo/pull/39543)), **Switch To Frame** ([@yezhizhen](https://github.com/yezhizhen), [#39086](https://github.com/servo/servo/pull/39086)), **Switch To Window** ([@yezhizhen](https://github.com/yezhizhen), [#39241](https://github.com/servo/servo/pull/39241)), and **New Session** ([@yezhizhen](https://github.com/yezhizhen), [#39040](https://github.com/servo/servo/pull/39040)).
+
+These improvements have enabled us to run the **WebDriver conformance tests** in CI by default ([@PotatoCP](https://github.com/PotatoCP), [#39087](https://github.com/servo/servo/pull/39087)), and also mean we’re closer than ever to running [WebDriver-based Web Platform Tests](https://web-platform-tests.org/writing-tests/testdriver.html).
+
+## servoshell
+
+**Favicons** now update correctly when you **navigate back and forward** ([@webbeef](https://github.com/webbeef), [#39575](https://github.com/servo/servo/pull/39575)), not just when you load a new page.
+
+servoshell’s **command line argument parsing** has been reworked ([@Narfinger](https://github.com/Narfinger), [#37194](https://github.com/servo/servo/pull/37194), [#39316](https://github.com/servo/servo/pull/39316)), which should fix the confusing behaviour of some options.
+
+On mobile devices, servoshell now resizes the webview correctly when the available space changes ([@blueguy1](https://github.com/blueguy1), [@yjx](https://github.com/yjx), [@yezhizhen](https://github.com/yezhizhen), [#39507](https://github.com/servo/servo/pull/39507)).
+
+On macOS, telling servoshell to [**take a screenshot**](https://w3c.github.io/webdriver/#screen-capture) no longer hides the window ([@mrobinson](https://github.com/mrobinson), [#39500](https://github.com/servo/servo/pull/39500)).
+This does not affect taking a screenshot in headless mode (`--headless`), where there continues to be no window at all.
+
+## Performance
+
+Servo currently runs in **single-process mode** unless you opt in to `--multiprocess` mode, and we’ve landed a few perf improvements in that default mode.
+For one, in single-process mode, script can now **communicate with the embedder directly** for reduced latency ([@jschwe](https://github.com/jschwe), [#39039](https://github.com/servo/servo/pull/39039)).
+We also create one thread pool for the image cache now, rather than one pool per origin ([@rodio](https://github.com/rodio), [#38783](https://github.com/servo/servo/pull/38783)).
+
+Many components of Servo that *would* be [separated by a process boundary](https://book.servo.org/architecture/overview.html#architecture) in multiprocess mode, now use [crossbeam channels](https://docs.rs/crossbeam-channel/0.5.15/crossbeam_channel/) in single-process mode, rather than using [IPC channels](https://docs.rs/ipc-channel/0.20.2/ipc_channel/) in both modes ([@jschwe](https://github.com/jschwe), [#39073](https://github.com/servo/servo/pull/39073), [#39076](https://github.com/servo/servo/pull/39076), [#39345](https://github.com/servo/servo/pull/39345), [#39347](https://github.com/servo/servo/pull/39347), [#39348](https://github.com/servo/servo/pull/39348), [#39074](https://github.com/servo/servo/pull/39074)).
+[IPC channels](https://docs.rs/ipc-channel/0.20.2/ipc_channel/) are required when communicating with another process, but they’re more expensive, because they require serialising and deserialising each message, plus resources from the operating system.
+
+We’ve started working on an optimisation for string handling in Servo’s DOM layer ([@Narfinger](https://github.com/Narfinger), [#39480](https://github.com/servo/servo/pull/39480), [#39481](https://github.com/servo/servo/pull/39481), [#39504](https://github.com/servo/servo/pull/39504)).
+Strings in our DOM have historically been represented as [ordinary Rust strings](https://doc.rust-lang.org/std/string/struct.String.html), but they often come from SpiderMonkey, where they use [a variety of representations](https://searchfox.org/firefox-main/rev/8e5d58cfed616cb90586c614e53d8ab1ffc8af27/js/src/vm/StringType.h#83), none of which are entirely compatible.
+SpiderMonkey strings would continue to need conversion to Servo strings, but the idea we’re working towards is to **make the conversion lazy**, in the hope that many strings will never end up being converted at all.
+
+We now use a faster hash algorithm for internal hashmaps that are not security-critical ([@Narfinger](https://github.com/Narfinger), [#39106](https://github.com/servo/servo/pull/39106), [#39166](https://github.com/servo/servo/pull/39166), [#39202](https://github.com/servo/servo/pull/39202), [#39233](https://github.com/servo/servo/pull/39233), [#39244](https://github.com/servo/servo/pull/39244), [#39168](https://github.com/servo/servo/pull/39168)).
+These changes also switch that faster algorithm from [FNV](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function) to an [even simpler polynomial hash](https://docs.rs/rustc-hash/2.1.1/rustc_hash/), following in the footsteps of [Rust](https://github.com/rust-lang/rust/pull/37229) and [Stylo](https://bugzilla.mozilla.org/show_bug.cgi?id=1477628).
+
+We’ve also landed a few more self-contained perf improvements:
+- speeding up accesses to the event loop ([@Narfinger](https://github.com/Narfinger), [#39274](https://github.com/servo/servo/pull/39274), [#39275](https://github.com/servo/servo/pull/39275))
+- avoviding new display lists while loading CSS images ([@coding-joedow](https://github.com/coding-joedow), [#39201](https://github.com/servo/servo/pull/39201))
+- reducing memory usage ([@ritoban23](https://github.com/ritoban23), [#39351](https://github.com/servo/servo/pull/39351))
+- reducing binary size ([@lumiscosity](https://github.com/lumiscosity), [@Narfinger](https://github.com/Narfinger), [#39437](https://github.com/servo/servo/pull/39437), [#39567](https://github.com/servo/servo/pull/39567))
+
+## Donations
+
+Thanks again for your generous support!
+We are now receiving **5654 USD/month** (+1.8% over August) in recurring donations.
+
+This helps us cover the cost of our **[speedy](https://ci0.servo.org) [CI](https://ci1.servo.org) [and](https://ci2.servo.org) [benchmarking](https://ci3.servo.org) [servers](https://ci4.servo.org)**, one of our latest **[Outreachy interns](https://www.outreachy.org/alums/2025-06/#:~:text=Servo)**, and funding **[maintainer work]({{ '/blog/2025/09/17/your-donations-at-work-funding-jdm/' | url }})** that helps more people contribute to Servo.
+Keep an eye out for [further CI improvements](https://github.com/servo/servo/issues/38141) in the coming months, including [faster pull request checks](https://github.com/servo/servo/pull/39900) and [ten-minute WPT builds](https://github.com/servo/ci-runners/issues/21).
+
+Servo is also on [thanks.dev](https://thanks.dev), and already **28 GitHub users** (±13 from August) that depend on Servo are sponsoring us there.
+If you use Servo libraries like [url](https://crates.io/crates/url/reverse_dependencies), [html5ever](https://crates.io/crates/html5ever/reverse_dependencies), [selectors](https://crates.io/crates/selectors/reverse_dependencies), or [cssparser](https://crates.io/crates/cssparser/reverse_dependencies), signing up for [thanks.dev](https://thanks.dev) could be a good way for you (or your employer) to give back to the community.
+
+
If your organization is interested in sponsoring Servo's development or the implementation of a particular feature, reach out to us at join@servo.org.