diff --git a/content/blog/2026-01-15-tmil-24/image_overdraw.jpg b/content/blog/2026-01-15-tmil-24/image_overdraw.jpg
new file mode 100644
index 0000000..72f35c7
Binary files /dev/null and b/content/blog/2026-01-15-tmil-24/image_overdraw.jpg differ
diff --git a/content/blog/2026-01-15-tmil-24/index.md b/content/blog/2026-01-15-tmil-24/index.md
new file mode 100644
index 0000000..7359a98
--- /dev/null
+++ b/content/blog/2026-01-15-tmil-24/index.md
@@ -0,0 +1,217 @@
++++
+title = "Linebender in December 2025"
+authors = ["Kaur Kuut"]
++++
+
+Linebender is an informal open-source organization working on various projects to advance the state of the art in GUI for [the Rust programming language](https://rust-lang.org).
+
+## Vello
+
+Vello is our vector renderer with three different implementations.
+There is the fully GPU compute based Vello, the fully CPU based Vello CPU, and the hybrid GPU/CPU one called Vello Hybrid.
+They can draw large 2D scenes with high performance.
+
+- [vello#1294][]: Added features to Vello CPU to switch between `u8` and `f32` pipelines.
+- [vello#1327][]: Eliminated overdraw for opaque image fills.
+- [vello#1325][]: Reduced the memory usage of wide tile commands.
+- [vello#1303][]: Fixed filter expansion logic for transforms with scale/skew and for clipped layers.
+- [vello#1313][]: Fixed gradients within a clip layer in Vello Hybrid.
+- [vello#1323][]: Fixed non-deterministic GPU stroke artifacts.
+
+
+
+
+30% performance improvement in this flower's case with the new overdraw handling in Vello CPU / Vello Hybrid.
+
+
+
+The work on rendering sparse strip alpha values in GPU compute shaders continued in [vello#1293][], which added tile intersection checking.
+You can follow the progress in [#vello > Thoughts on GPU sparse strips](https://xi.zulipchat.com/#narrow/channel/197075-vello/topic/Thoughts.20on.20GPU.20sparse.20strips/with/567687539).
+
+## Masonry and Xilem
+
+Masonry is the widget system developed by Linebender.
+It provides a non-opinionated retained widget tree, designed as a base layer for high-level GUI frameworks.
+
+Xilem is our flagship GUI project, inspired by SwiftUI, which uses Masonry for its widgets.
+It lets you build user interfaces declaratively by composing lightweight views together, and will diff them to provide minimal updates to a retained layer.
+
+- [xilem#1519][]: Added `Canvas` widget, for 2d vector drawing.
+- [xilem#1510][]: Added a new `CollectionWidget` trait to unify collection widget method naming.
+- [xilem#1527][]: Added `Gap` property to `Flex` and `Grid`.
+- [xilem#1528][]: Added alternative text to `Image` widget.
+- [xilem#1526][]: Implemented `Into` for `BorderColor`.
+- [xilem#1534][]: Migrated to Kurbo's `Axis`.
+- [xilem#1488][]: Renamed `map_message` to `map_message_result`.
+- [xilem#1533][]: Renamed `Grid` attributes from `width` / `height` to `row_count`, `column_count`.
+- [xilem#1484][]: Split Android examples into separate files.
+- [xilem#1503][]: Split some Xilem code into new a new `xilem_masonry` package.
+- [xilem#1504][]: Fixed `TextInput` placeholder alignment.
+- [xilem#1537][]: Fixed `ScrollBar` behavior with large content sizes.
+- [xilem#1540][]: Improved `Flex` child constraint accuracy.
+- [xilem#1507][]: Wrote guidelines for writing Xilem doc examples.
+- [xilem#1544][]: Documented node non-persistence in accessibility method.
+- [xilem#1545][]: Now using third person more consistently in docs.
+
+## Parley
+
+Parley is a text layout library.
+It handles text layout, mostly at the level of line breaking and resolving glyph positions.
+
+- [parley#436][]: Migrated text analysis and internationalization to ICU4X.
+- [parley#479][], [parley#481]: Started work on a dedicated glyph rendering crate.
+- [parley#475][]: Now using ICU4X `Script` type in `fontique`.
+- [parley#473][]: We now bake composite properties data.
+- [parley#487][]: Export `Tag` from HarfRust, to allow users to use it directly.
+- [parley#490][]: Fixed bidi state leaking across layouts.
+- [parley#493][]: Fixed crash with empty layout.
+- [parley#498][]: Updated to `ui-events` 0.2.
+
+## Kurbo
+
+Kurbo provides data structures and algorithms for curves and vector paths.
+
+- [kurbo#534][]: Optimized `RoundedRect::winding`.
+- [kurbo#533][]: Clarified the order of `PathEl` points.
+
+## Peniko
+
+Peniko is a 2D graphics type library which provides a set of generic types that define styles for rendering and composition.
+
+- [peniko#155][]: Updated to Kurbo 0.13.
+
+## Fearless SIMD
+
+Fearless SIMD is our SIMD infrastructure library.
+It provides a solid way for writing SIMD operations portably across Wasm, AArch64, x86, and x86_64.
+
+- [fearless_simd#141][]: Added `any_true`, `all_true`, `any_false`, and `all_false` methods for mask types.
+- [fearless_simd#167][]: Added precise float-to-integer conversions, which saturate out-of-bounds results and convert `NaN` to `0` on all platforms.
+- [fearless_simd#168][]: Added `Level::is_fallback`, which states whether the current SIMD level is the scalar fallback.
+- [fearless_simd#155][]: Added a vectored shift left operation.
+- [fearless_simd#154][]: Added documentation for operations and vector types.
+- [fearless_simd#149][]: Reworked the API.
+- [fearless_simd#158][]: Renamed `madd` / `msub` to `mul_add` / `mul_sub` for consistency with `std`.
+- [fearless_simd#159][]: Now using native vector types to back SIMD types.
+- [fearless_simd#170][]: Made `Element` an associated type on `SimdBase`.
+- [fearless_simd#180][]: `SimdFrom::simd_from` now takes the SIMD token as the first argument instead of the second.
+
+## Velato
+
+Velato is our Lottie render library.
+The goal is to provide coverage of the large Lottie spec, up to what Vello can render, for use in interactive graphics.
+
+We released [Velato 0.8][] and [0.8.1][Velato 0.8.1]. 🎉
+
+## Bevy Vello
+
+Bevy Vello is our Bevy integration for Vello.
+The goal is to provide support for rendering scenes, text, SVGs, and Lotties in the Bevy game engine.
+
+We released [Bevy Vello 0.11][], [0.12][Bevy Vello 0.12], and [0.12.1][Bevy Vello 0.12.1]. 🎉
+
+- [bevy_vello#185][]: Added support for `UiTransform` for raw Vello scenes.
+- [bevy_vello#188][]: Finished adding Bevy 0.17 support.
+- [bevy_vello#191][]: Renamed `SSRenderTarget` to `VelloRenderTarget`.
+- [bevy_vello#195][], [bevy_vello#196][]: Fixed AABBs not being correctly calculated.
+
+## Resvg
+
+Resvg is our fast, small, portable SVG library.
+
+- [resvg#980][], [resvg#981][]: No longer writing empty ``.
+- [resvg#987][]: Now using checked arithmetic when computing bounding box.
+- [resvg#990][]: Fixed panicking during pixmap creation.
+
+## SimpleCSS
+
+SimpleCSS is a basic CSS 2.1 parser and selector.
+
+- [simplecss#39][]: Added support for parsing `@font-face`.
+
+## Druid
+
+Druid is a GUI library which was a predecessor to Xilem, and an ancestor of Masonry.
+
+- [druid#2410][]: Updated to Piet 0.7, which is going to be the final Piet version compatible with Druid.
+
+## Get Involved
+
+We welcome collaboration on any of our crates.
+This can include improving the documentation, implementing new features, improving our test coverage, or using them within your own code.
+
+We host an hour long office hours meeting each week where we discuss what's going on in our projects.
+See [#office hours in Zulip](https://xi.zulipchat.com/#narrow/channel/359642-office-hours) for details.
+We're also running a separate office hours time dedicated to the renderer collaboration, details also available at that link.
+
+[vello#1293]: https://github.com/linebender/vello/pull/1293
+[vello#1294]: https://github.com/linebender/vello/pull/1294
+[vello#1303]: https://github.com/linebender/vello/pull/1303
+[vello#1313]: https://github.com/linebender/vello/pull/1313
+[vello#1323]: https://github.com/linebender/vello/pull/1323
+[vello#1325]: https://github.com/linebender/vello/pull/1325
+[vello#1327]: https://github.com/linebender/vello/pull/1327
+
+[xilem#1484]: https://github.com/linebender/xilem/pull/1484
+[xilem#1488]: https://github.com/linebender/xilem/pull/1488
+[xilem#1503]: https://github.com/linebender/xilem/pull/1503
+[xilem#1504]: https://github.com/linebender/xilem/pull/1504
+[xilem#1507]: https://github.com/linebender/xilem/pull/1507
+[xilem#1510]: https://github.com/linebender/xilem/pull/1510
+[xilem#1519]: https://github.com/linebender/xilem/pull/1519
+[xilem#1526]: https://github.com/linebender/xilem/pull/1526
+[xilem#1527]: https://github.com/linebender/xilem/pull/1527
+[xilem#1528]: https://github.com/linebender/xilem/pull/1528
+[xilem#1533]: https://github.com/linebender/xilem/pull/1533
+[xilem#1534]: https://github.com/linebender/xilem/pull/1534
+[xilem#1537]: https://github.com/linebender/xilem/pull/1537
+[xilem#1540]: https://github.com/linebender/xilem/pull/1540
+[xilem#1544]: https://github.com/linebender/xilem/pull/1544
+[xilem#1545]: https://github.com/linebender/xilem/pull/1545
+
+[parley#436]: https://github.com/linebender/parley/pull/436
+[parley#473]: https://github.com/linebender/parley/pull/473
+[parley#475]: https://github.com/linebender/parley/pull/475
+[parley#479]: https://github.com/linebender/parley/pull/479
+[parley#481]: https://github.com/linebender/parley/pull/481
+[parley#487]: https://github.com/linebender/parley/pull/487
+[parley#490]: https://github.com/linebender/parley/pull/490
+[parley#493]: https://github.com/linebender/parley/pull/493
+[parley#498]: https://github.com/linebender/parley/pull/498
+
+[kurbo#533]: https://github.com/linebender/kurbo/pull/533
+[kurbo#534]: https://github.com/linebender/kurbo/pull/534
+
+[peniko#155]: https://github.com/linebender/peniko/pull/155
+
+[fearless_simd#141]: https://github.com/linebender/fearless_simd/pull/141
+[fearless_simd#149]: https://github.com/linebender/fearless_simd/pull/149
+[fearless_simd#154]: https://github.com/linebender/fearless_simd/pull/154
+[fearless_simd#155]: https://github.com/linebender/fearless_simd/pull/155
+[fearless_simd#158]: https://github.com/linebender/fearless_simd/pull/158
+[fearless_simd#159]: https://github.com/linebender/fearless_simd/pull/159
+[fearless_simd#167]: https://github.com/linebender/fearless_simd/pull/167
+[fearless_simd#168]: https://github.com/linebender/fearless_simd/pull/168
+[fearless_simd#170]: https://github.com/linebender/fearless_simd/pull/170
+[fearless_simd#180]: https://github.com/linebender/fearless_simd/pull/180
+
+[Velato 0.8]: https://github.com/linebender/velato/releases/tag/v0.8.0
+[Velato 0.8.1]: https://github.com/linebender/velato/releases/tag/v0.8.1
+
+[Bevy Vello 0.11]: https://github.com/linebender/bevy_vello/releases/tag/v0.11.0
+[Bevy Vello 0.12]: https://github.com/linebender/bevy_vello/releases/tag/v0.12.0
+[Bevy Vello 0.12.1]: https://github.com/linebender/bevy_vello/releases/tag/v0.12.1
+[bevy_vello#185]: https://github.com/linebender/bevy_vello/pull/185
+[bevy_vello#188]: https://github.com/linebender/bevy_vello/pull/188
+[bevy_vello#191]: https://github.com/linebender/bevy_vello/pull/191
+[bevy_vello#195]: https://github.com/linebender/bevy_vello/pull/195
+[bevy_vello#196]: https://github.com/linebender/bevy_vello/pull/196
+
+[resvg#980]: https://github.com/linebender/resvg/pull/980
+[resvg#981]: https://github.com/linebender/resvg/pull/981
+[resvg#987]: https://github.com/linebender/resvg/pull/987
+[resvg#990]: https://github.com/linebender/resvg/pull/990
+
+[simplecss#39]: https://github.com/linebender/simplecss/pull/39
+
+[druid#2410]: https://github.com/linebender/druid/pull/2410