Fresh logo
🚧 This documentation is work in progress and for an unreleased version of Fresh.

Introduction

Fresh is a small, fast and extensible full stack web framework built on Web Standards. It’s designed for building high-quality, performant, and personalized web applications.

Typescript main.tsx
import { App } from "fresh";

const app = new App()
  .get("/", () => new Response("hello world"));
  .get("/jsx", ctx => ctx.render(<h1>render JSX!</h1>));

app.listen();

Quick Start

Create a new Fresh app by running:

Terminal (Shell/Bash) Terminal
deno run -Ar jsr:@fresh/init@2.0.0-alpha.52

Features

The core idea powering Fresh is to render server generated HTML pages and only ship JavaScript for areas in the page that need to be interactive. This is often referred to as the Island Architecture.

  • Fast 🚀 - Rendering is super fast thanks to Preact and Deno’s precompile transform
  • Lightweight 🏎️ - Only ship the JavaScript you need
  • Extensible 🧩 - Nearly every aspect can be customized
  • Powerful & small API 🤗 - Familiar APIs make you productive quickly
  • Built-in OpenTelemetry 📈 - Built-in support for OpenTelemetry

When to use Fresh

Fresh is ideal for sites and apps that are primarily server rendered, like a home page, an e-commerce shop or something like GitHub or Bluesky.

  • Web APIs
  • E-Commerce shops
  • Portfolio sites
  • Landing pages & Documentation
  • CRUD apps

That said, if you want to build a Single-Page-App (=SPA), then Fresh is not the right framework.

Who is using Fresh?

Fresh powers deno.com and Deno Deploy among many other projects at Deno. It’s also used by deco.cx for e-commerce projects.

Where to host Fresh apps?

Fresh is most often deployed on Deno Deploy where it can be deployed with 1-click and has out of the box integrations with metrics among other things.

Fresh projects can be deployed manually to any platform with Deno like via docker containers too.