A running log of what’s new in TriFrost — from releases to behind-the-scenes thoughts
Ever leaked a token ... or forgot to scrub a password from a log? While most observability platforms can scrub sensitive data on ingest, that rarely helps with console or file-based logs — better to nip it at the bud.
This release brings deeper composition and sharper ergonomics to the css engine. css.mix and css.use now apply a union-style deep merge , preserving media queries and nested overrides across layers — perfect for atom/molecule composition in JSX .
We benchmarked TriFrost against Elysia, Hono, Koa, and Express in a head-to-head hello world shootout. The results? Frosty.
From smarter exporter behavior to cleaner 404 fallbacks and a simple isDevMode() helper, this release removes noise and adds clarity, making development smoother, logs more readable, and defaults feel just right.
This release brings a focused round of enhancements aimed at improving developer control, and strengthening TriFrost’s logging system.
This release further sharpens TriFrost’s internals, making the createCss system more flexible for external libraries by respecting --prefixed variables and tuning the JSX engine for even faster prop rendering.
There’s something deeply satisfying about refinement — the slow, careful polishing of a tool you already trust. That’s exactly where TriFrost is right now. ...
This release strengthens the ApiKeyAuth middleware by adding explicit credential configuration and support for dual credential validation (API key + client ID).
This release brings a set of carefully crafted improvements born directly out of working on the TriFrost documentation.
This release brings an approximate 2x throughput improvement in performance for the new TrieRouter when dealing with Hot paths thanks to an improved LRU design in the Valkyrie Utils (sidenote: Valkyrie Utils is another package maintained by the creator of TriFrost and is heavily used within TriFrost).
This isn’t just another release — it’s a massive routing overhaul . We’re introducing the new TrieRouter under the hood, delivering blistering-fast match speeds, smarter fallback handling, and precise middleware chains.
This release further sharpens TriFrost’s styling system with custom breakpoints, ergonomic attribute helpers, and expanded selector coverage — giving you more precision and control without added complexity. Most of these improvements/additions came directly from working on the TriFrost website and as such solve some real-world ergonomic issues .
TriFrost 0.18.0 (FrostBite) is here, bringing production-ready authentication into the framework. This release adds: ...
This update brings subtle but powerful improvements across TriFrost’s core — from smarter, cross-runtime environment handling to brand-new HMAC cookie signing, verification, and robust, production-ready authentication middleware.
This patch introduces first-class animation support into the TriFrost styling engine. You can now define, register, and reuse @keyframes using the same ergonomic API as css() — with full support for SSR, media queries, deduplication, and cross-engine reuse via LRU.
This release sharpens the edge of TriFrost's JSX engine and style system. Expect better render performance, faster style injection, and smarter cross-request reuse — with no increase in memory footprint.
This release brings further resilience , structure , and flexibility to TriFrost’s storage layer — turning what was already powerful into something even more durable (pun intended).
I rewrote the entire TriFrost website’s styling in a day. No SCSS pipeline. No cascade overrides. No build steps. Just createCss(), use(), mix(), and a bit of media logic ...
You can now safely use css.use() and css.root() inside root-level JSX components — even before calling ctx.html(). For example, the following code now works as expected:
This release puts a bow on the new createCss() system — bringing ergonomics, utility, and a bit of sugar to an already powerful API.
This release improves how you work with CSS in TriFrost.
TriFrost now includes a powerful, zero-runtime CSS engine — fully integrated with the core JSX renderer.
TriFrost always came with a body parser — it handled JSON, plain text, and buffers just fine. But real-world backends need more. Forms. File uploads. Multilingual characters. Legacy formats. Inconsistent charsets. It adds up fast.
TriFrost now ships with a caching system that’s not only powerful — but invisible . 🪄
TriFrost traces middleware and route handlers out of the box — but what about everything else? In any real backend, there’s a whole ecosystem beyond routing: services, utilities, classes with methods that get reused across flows. Can we take our tracing a level deeper, without cluttering the code?
TriFrost has been evolving quickly — modular routing, runtime flexibility, solid developer ergonomics. But a 1.0 release sets a higher bar: stability, confidence, and a contract with its users ...
TriFrost started with a simple question: why are most backend frameworks either too rigid, too leaky, or locked to a single runtime? ...