Testing at Trellis: Eight Months Later
Eight months on from our 2025 Technical Year in Review, our automated test suite has grown as much as 68%, and it kept pace with a codebase that grew by nearly half a million net lines.
Real events, real donors, real money. All passing through the same platform, on the same night. This blog is where we think out loud about keeping a large codebase fast, making reliability boring, getting honest answers out of our observability, and the rewrites and improvements we build and ship to meet the needs of our charity partners.
The calls we made, the rewrites we're glad we did, and the incidents we learned from.
Eight months on from our 2025 Technical Year in Review, our automated test suite has grown as much as 68%, and it kept pace with a codebase that grew by nearly half a million net lines.
Six months into adopting Claude Code, we analyzed 3,102 merged PRs and 1,746 human review comments to answer one question: Is AI-generated code shifting a hidden tax onto the humans who review it?
How we implemented a simple auto-saving system for Signal Forms as a functional schema builder pattern.
How an event-loop blocking issue turned into a multi-week review of per-key revivers, schema-driven walkers, simdjson, V8 codegen, and ultimately a custom Serialization/Deserialization pipeline.
Working outline for an article exploring the structural parallels between the charity sector and open source software — both critical, both chronically underfunded, both running on a model that assumes goodwill is enough.
One query parameter. No code changes. 59% faster at P95. 68% faster at P99. That's what deleting a stray flag from our Prisma connection string did to database performance across our platform. The flag had been silently taxing every query for months after a migration we thought was complete.
Reflections on AI agents in software development, embracing automation without losing the magic of creation, and how Trellis approaches AI adoption as a supplement to developers rather than a replacement.
A look back at 2025, what we worked on, how fast (or slow?) we moved, state of the codebase and the major projects we worked on.
How we built a comprehensive testing strategy that lets us move fast without sacrificing stability, featuring our layered approach from unit tests to load testing with [K6](https://k6.io), and the tools that power our quality-first culture.
An in-depth analysis of our Nx task graph, target distribution, and how Nx Cloud has saved us over 26 years of computation time across our monorepo.
A deep dive into how we've architected our Nx workspace to support 14 applications and 1200+ libraries, including custom plugins, module boundaries, and deployment strategies.
Performance comparison between Angular v11 with Webpack 4 and Angular v12 with Webpack 5, including build times and bundle sizes.
A guide to converting legacy codebases to use Nx's incremental compilation, including common issues and solutions.