A running log of what’s new in TriFrost — from releases to behind-the-scenes thoughts
This release adds lean, deterministic ARC-style lifecycle behavior to the scripting engine. It cuts down your per-fragment script size dramatically while enabling automatic DOM removal of hydrated scripts and data when no longer necessary.
The Crystal release refines TriFrost’s styling core with expressive animation support, dynamic composition, and smoother ergonomics across the board.
A blazing-fast, CSP-safe scripting runtime that does more with less, no compilers, no bundlers, just pure atomic power.
This release further evolves the internals of the TriFrost style engine , focusing on performance, DX simplicity, and hydration resilience.
This release refines Atomic’s DOM tooling for broader compatibility and better developer experience
This release brings refinement to the Atomic layer, improving ergonomics, performance, and type safety. The new destructured Script API makes logic blocks cleaner to write and easier to extend, while internals like atomicMinify and $fetch util receive notable upgrades. A small breaking change for a frostier future.
This release cracks open a leaner, meaner era for the Atomic layer. We’ve surgically extracted node-bound behavior and reassembled it into a centralized $ utility namespace, smaller boot footprints, faster VMs, and crystal-clear ergonomics. The new $.fetch ? One helper to parse them all. The updated data.$bind ? Reactive sugar with zero overhead. This is DX that moves like lightning.
This release brings long-awaited built-in support for JWT authentication, a critical step in the journey to 1.0. We're introducing runtime-agnostic jwtSign , jwtVerify and jwtDecode utilities along with a suite of purpose-built JWT error classes.
This release introduces powerful improvements to ctx.file() , allowing direct, streaming responses from native, Node, and cloud storage sources — alongside foundational work to unify stream behavior and remove legacy friction.
This release unveils TriFrost Atomic Data Reactor , a minimal yet powerful reactive data layer built for inline <Script> blocks. Designed to bring form state, interactivity, and SSR reactivity together, without sacrificing type safety or control .
Atomic is fast, invisible, and predictable — doing the hard parts behind the scenes so your HTML stays lean and your runtime stays sharp.
This release builds directly on TriFrost’s Atomic foundation, delivering leaner pages, smarter SSR defaults, and internal render polish — all without breaking a sweat.
TriFrost.dev is now fully open source, same code, same deploys, same streaming, markdown, and telemetry setup. See how TriFrost works in the real world.
This release continues on the <Script> foundation introduced in TriFrost 0.33.0 and brings a powerful under-the-hood upgrade. A Script Engine , focused on ergonomic interactivity, seamless deduplication, and zero-config data inlining as well as some new utils for easier dx.
TriFrost just got a little leaner, a little cleaner — and a lot more native.
This release brings additional polish to the new <Script> component introduced in 0.33.0 , focused on ergonomic inlining and dynamic parent binding.
This release brings additional polish to the new <Script> component introduced in 0.33.0 , focused on ergonomic inlining and dynamic parent binding.
This release brings an upgrade to TriFrost’s SSR and client-side scripting experience with a powerful new <Script> component.
Docs, coverage, real users — TriFrost is taking shape and picking up steam.
This release further streamlines how app identity and debug state are defined across all runtimes, moving away from config-based declarations to standardized environment-driven metadata .
This release brings new capabilities to TriFrost’s body parsing system, ensuring consistent, cross-runtime handling of JSON, text, form, and multipart payloads — now with fine-grained control and powerful normalization.
I've known the founders of Aikido for a long time, so when I was exploring ways to expand TriFrost’s automated security testing (we already used GitHub CodeQL , but there’s always room for more), I reached out to them.
Building on the groundwork laid in 0.27.0 , this release supercharges TriFrost’s redaction and log sanitization pipeline with a powerful new internal scrambler engine , enabling fast, recursive, and pattern-aware field scrubbing across all exporters.
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? ...