Fresh (framework)
A Deno-native full-stack web framework built around islands architecture and zero-config TypeScript
Fresh is a full-stack web framework for the Deno runtime that renders pages on the server by default and ships JavaScript to the browser only for interactive 'islands', with no build step required.
Definition
Fresh is a full-stack web framework for the Deno runtime that renders pages on the server by default and ships JavaScript to the browser only for interactive 'islands', with no build step required.
Overview
Fresh was created by the Deno team to demonstrate what a web framework looks like when it is designed around Deno's runtime primitives instead of being ported from a Node.js-first framework. Routes are plain TypeScript or JSX files placed in a `routes/` directory and are matched to URLs by file-system convention, similar to Next.js's pages router, but every route runs through Deno directly rather than a bundler-driven build pipeline. There is no `npm install` step and no webpack or Vite configuration to maintain; dependencies are fetched on demand from URLs or npm specifiers and cached by the Deno runtime itself. Fresh's defining architectural choice is islands architecture: every page is rendered to static HTML on the server, and only components explicitly marked as islands (placed in an `islands/` directory) are hydrated with JavaScript in the browser. This means a content-heavy page with one interactive widget — a search box, a counter, a form — ships only the JavaScript for that widget, not for the whole page, which keeps the client-side bundle close to zero for mostly static sites. This approach, sometimes called 'partial hydration,' predates Fresh but Fresh was one of the frameworks that made it a default rather than an opt-in optimization. Because Fresh runs on Deno, it inherits Deno's built-in TypeScript support, secure-by-default permissions model, and first-class support for edge deployment platforms like Deno Deploy, where Fresh applications can run globally distributed with no separate build artifact to manage. Fresh is used mostly for content sites, dashboards, and small-to-medium web applications where fast time-to-interactive and minimal client JavaScript matter more than the extensive plugin ecosystem that older, more established frameworks like Next.js offer. It remains a smaller, more opinionated project than its Node.js counterparts, with a correspondingly smaller ecosystem of third-party integrations.
Key Features
- Islands architecture: server-rendered HTML with JavaScript shipped only for interactive components
- Zero-config, no build step — routes run directly on the Deno runtime
- File-system based routing under a routes/ directory
- Native TypeScript support with no separate compilation step
- Just-in-time (JIT) rendering per request rather than static site generation by default
- First-class integration with Deno Deploy for globally distributed edge hosting
- Preact under the hood, keeping the client runtime small
- Secure-by-default execution inherited from Deno's permissions model
Use Cases
Alternatives
History
Fresh is a full-stack web framework for the Deno runtime, notable for having no build step and for shipping zero JavaScript to the client by default. Introduced by the Deno team in 2021, it is built on web-standard APIs, uses Preact for rendering, and popularized the "islands architecture": pages are rendered to static HTML on the server, with small, independently hydrated "islands" of interactivity added only where needed. This keeps client JavaScript minimal and pages fast. Fresh powers Deno's own website and, in its 2.x generation, added a programmatic App API and optional Vite integration while remaining an edge-native, progressive-enhancement-first framework.
Sources
- Fresh — official website · as of 2026-07-17
- Deno — "A Gentle Introduction to Islands" · as of 2026-07-17
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