TriFrost

TriFrost News

A running log of what’s new in TriFrost — from releases to behind-the-scenes thoughts

TriFrost 0.27.0

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.

release

TriFrost 0.26.0

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 .

release

Hello, World. Hello, Speed.

We benchmarked TriFrost against Elysia, Hono, Koa, and Express in a head-to-head hello world shootout. The results? Frosty.

blog

TriFrost 0.25.0

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.

release

TriFrost 0.24.0

This release brings a focused round of enhancements aimed at improving developer control, and strengthening TriFrost’s logging system.

release

TriFrost 0.23.0

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.

release

Wax On, Wax Off: Sharpening TriFrost

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. ...

blog

TriFrost 0.22.0

This release strengthens the ApiKeyAuth middleware by adding explicit credential configuration and support for dual credential validation (API key + client ID).

release

TriFrost 0.21.0

This release brings a set of carefully crafted improvements born directly out of working on the TriFrost documentation.

release

TriFrost 0.20.4

release

TriFrost 0.20.3

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).

release

TriFrost 0.20.2

release

TriFrost 0.20.1

release

TriFrost 0.20.0 - Glacier

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.

release

TriFrost 0.19.1

release

TriFrost 0.19.0 - Velvet Edge

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 .

release

Auth, Signed Cookies, and What’s Next

TriFrost 0.18.0 (FrostBite) is here, bringing production-ready authentication into the framework. This release adds: ...

blog

TriFrost 0.18.0 - FrostBite

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.

release

TriFrost 0.17.0 - Slipstream

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.

release

TriFrost 0.16.0 - Phantom Weave

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.

release

TriFrost 0.15.1

release

TriFrost 0.15.0

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).

release

Two Days, One Rewrite

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 ...

blog

TriFrost 0.14.0

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:

release

TriFrost 0.13.0

This release puts a bow on the new createCss() system — bringing ergonomics, utility, and a bit of sugar to an already powerful API.

release

TriFrost 0.12.0

This release improves how you work with CSS in TriFrost.

release

TriFrost 0.11.0

TriFrost now includes a powerful, zero-runtime CSS engine — fully integrated with the core JSX renderer.

release

TriFrost 0.10.0

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.

release

TriFrost 0.9.0

release

TriFrost 0.8.0

TriFrost now ships with a caching system that’s not only powerful — but invisible . 🪄

release

TriFrost 0.7.0

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?

release

Road to 1.0

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 ...

blog

TriFrost 0.6.0

release

TriFrost 0.5.0

release

TriFrost 0.4.0

release

TriFrost 0.3.0

release

TriFrost 0.2.0

release

Why TriFrost exists?

TriFrost started with a simple question: why are most backend frameworks either too rigid, too leaky, or locked to a single runtime? ...

blog