Fresh
By Deno
Fresh is a full-stack web framework built for the Deno runtime that renders pages on the server by default and ships no client-side JavaScript unless a component explicitly opts into interactivity, an approach it calls islands…
Definition
Fresh is a full-stack web framework built for the Deno runtime that renders pages on the server by default and ships no client-side JavaScript unless a component explicitly opts into interactivity, an approach it calls islands architecture. It combines file-based routing with just-in-time rendering to serve mostly static HTML while hydrating only the specific interactive pieces of a page, keeping initial page loads small.
Overview
Fresh was built to address the growing amount of unnecessary JavaScript shipped by default in many modern web frameworks, where entire pages are hydrated on the client even when most of the content is static text and images. It targets developers who want the productivity of a component-based framework, similar to Next.js or Remix, but with a stricter default of sending zero client-side JavaScript unless a specific component is marked as interactive. Mechanically, Fresh uses an islands architecture: pages are composed of server-rendered HTML with small, isolated interactive components, called islands, placed within them. Only the code for those islands is sent to the browser and hydrated, while the rest of the page remains plain HTML with no attached JavaScript. Fresh also renders pages just-in-time on each request rather than pre-building a static site at deploy time, and it relies on Deno's native TypeScript support and standard web APIs instead of a separate build and bundling pipeline for most everyday development. This places Fresh in contrast to React-based meta-frameworks like Next.js, which typically hydrate more of the page by default and depend on Node.js tooling such as npm and bundlers like webpack, and closer in spirit to Astro, another islands-architecture framework, though Fresh is tied specifically to the Deno runtime and its module system rather than being runtime-agnostic. Being Deno-native also means Fresh imports dependencies directly by URL rather than through a node_modules-based package manager. In practice, teams pick Fresh when they are already building on Deno and want a batteries-included way to serve content-heavy sites, blogs, or dashboards with minimal client-side JavaScript, benefiting from fast initial page loads and simpler deployment through Deno Deploy or similar edge runtimes. Its islands model is particularly well suited to pages that are mostly static with a few interactive widgets, such as a search box or a like button, rather than applications that are interactive throughout. The main limitations are ecosystem size and portability: Fresh's tooling and community are much smaller than Next.js or Remix, its just-in-time rendering can add latency compared to fully static builds unless paired with caching, and its tight coupling to Deno means teams already standardized on Node.js face a real migration cost to adopt it. Applications that are interactive across most of the page also see less benefit from the islands model, since nearly everything ends up hydrated anyway. Teams also inherit Deno's smaller package registry relative to npm, and while compatibility layers exist for many Node packages, some libraries with native bindings or Node-specific APIs still require workarounds or lack support entirely.
Key Features
- Islands architecture that hydrates only interactive components
- Zero client-side JavaScript shipped by default
- File-based routing for pages and API endpoints
- Just-in-time server rendering on every request
- Native TypeScript support without a separate build step
- Built specifically for the Deno runtime and module system
- Designed for easy deployment on Deno Deploy and edge runtimes
Use Cases
Alternatives
Frequently Asked Questions
From the Blog
How to Keep a RAG Index Fresh as Documents Change
Keep a RAG index fresh by detecting change at the source, upserting only affected chunks with stable identifiers, and propagating deletions as first-class events. This covers change detection, deterministic chunk IDs, tombstoning, reindex triggers and the monitoring that tells you when stale content is still being served.
Read More AI & TechnologyKeeping vector indexes fresh: updates, deletes and reindexing
Vector indexes degrade as they mutate. Learn incremental updates, tombstones, periodic rebuilds and blue-green swaps that keep freshness without downtime.
Read More AI & TechnologyFine-Tuning vs RAG: Which One Do You Actually Need?
Use RAG to give a model fresh, factual knowledge it can cite, and fine-tuning to teach it a consistent style or skill. Most real systems combine both.
Read More AI & TechnologyWhat Is Generative AI? A Complete Beginner's Guide
Generative AI creates new content like text, images, code, and audio by learning patterns from data, then producing fresh outputs that match those patterns.
Read More