Latest posts

The Expression Pivot: Harnessing Spring SpEL for Dynamic Contexts

When I released office-stamper v3.0 back in January, I introduced the possibility of using a fully custom ExpressionParser. The goal was to give users complete control over how placeholders were evaluated. However, less than three months later, I am retiring... · Read more...

Feedback Loops and the AsciiDoc Pivot

Following the stabilization of the public surface in version 3.1, my focus for January turned toward the “engine of the engine.” As a solo maintainer, I don’t have a team to review my PRs or catch my blind spots. To... · Read more...

Office-stamper 3.1: Stabilizing the Surface

Following the major overhaul of v3.0, my focus for office-stamper has shifted from “making it work” to “making it stable.” Last week, I detailed how I deleted 12,000 lines of legacy test utilities. Today, I’m bringing that same pruning shears... · Read more...

Test Suite Modernization: 12,000 Lines Lighter

As v3 of office-stamper settles in, I’ve turned my attention to the foundation that keeps the project stable: the test suite. Over the years, the test package had accumulated a significant amount of “helper” debt. This month, I’ve deleted over... · Read more...

The High-Fidelity Utils Module

With the release of office-stamper v3.0, much of the spotlight has been on the new hierarchical context and the engine refactoring. However, one of the most significant changes for the long-term health of the project happened in the “shadows”: the... · Read more...

Predicting the Unpredictable: The v3 Context Overhaul

Yesterday, December 14th, we officially released office-stamper v3.0.0. While the version number changed by just one digit, the architectural overhaul under the hood is the most significant since I forked the project. · Read more...

Smart Tag Preprocessing: Taming Word’s Run Fragmentation

If you’ve ever used a template engine for Microsoft Word, you’ve likely encountered the “split run” nightmare. You type ${name} in Word, but internally, Word saves it as three separate XML runs: <w:r>${</w:r>, <w:r>na</w:r>, <w:r>me}</w:r>. · Read more...

The Resetable Iterator: Engineering Predictable Order

As we approach the final release of office-stamper v3, the focus has shifted from “adding features” to “ensuring predictability.” One of the most significant architectural shifts in this version is how we traverse the document. · Read more...

Engine Refactoring: The Road to v3

October has been a month of deep structural cleaning for office-stamper. As we approach the next major version, I’ve taken a hard look at the core engine’s abstractions. The goal is simple: make the library’s behavior more predictable for users... · Read more...

Hacktoberfest 2025: Engineering for the Sporadic Contributor

October is here, and with it, Hacktoberfest 2025. For office-stamper, this isn’t about chasing a high volume of Pull Requests. Instead, it’s an invitation to join a project that is explicitly designed for the sporadic contributor. · Read more...