- Category
- Developer Tools
- Rank
- No. 495Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- denoland
- GitHub
- 13.8k stars
- Latest release
- 2.3.3
- Date
About
Deno's next-gen full-stack web framework with islands architecture, no build step, and TypeScript by default.
What it does
Fresh builds Deno web applications around a request pipeline, middleware, routes, layouts, error handling, static files, and WebSockets. Pages can stay server-rendered, while selected interactive areas receive browser code. Projects start from a command-line scaffold and run through Deno tasks.
Why it's ranked here
Fresh has a coherent server-first model with unusually restrained browser output: it ships no client JavaScript by default. The repository also shows practical depth beyond page rendering, including typed middleware, HTTP method routing, WebSockets, security middleware, file routes, and deployment guidance.
What's good
The application API handles middleware, custom errors, nested applications, layouts, every common HTTP method, and WebSocket endpoints. Middleware supports synchronous or asynchronous responses and shared request state. Separate plugins cover Vite integration and Tailwind processing, while the scaffold provides immediate local development with live source updates.
Tradeoffs
Fresh centers Deno and Preact, so teams standardized on another runtime or component stack must adapt. Its simplest pitch also hides a broader toolchain: the repository includes Vite builds, generated client and server outputs, environment loading, and separate styling plugins. Production deployment still requires choosing and configuring a hosting workflow.
How to use it well
Choose Fresh for Deno teams building server-rendered sites that need selective interactivity, typed request handling, APIs, or WebSockets. Start with the scaffold, keep most pages server-driven, and add islands only where browser behavior matters. Treat Tailwind processing and deployment as adjacent workflow pieces, not responsibilities solved entirely by the core framework.
Technical notes+
packages/fresh/src/app.ts implements the App command queue, HTTP verb handlers, WebSocket upgrades, nested app mounting, file-route insertion, error handling, and Deno serving behavior. packages/fresh/src/middlewares/mod.ts compiles middleware in reverse order, preserves context internals across requests, and records OpenTelemetry spans. packages/plugin-vite/src/mod.ts builds separate client and SSR environments, maps React imports to Preact compatibility modules, loads mode-specific environment files, checks browser imports, and writes under _fresh/client and _fresh/server by default. packages/init/src/mod.ts exposes scaffold flags for Tailwind, VS Code, Docker, and builder setup, while packages/update/src/mod.ts provides dependency updates and optional codemods.
Observed
- Primary language
- TypeScript, including TSX for route components
- Runtime platform
- Deno, using Deno serving, environment, task, test, lint, and formatting APIs
- Packaging
- Core, initializer, updater, and supporting packages are distributed through JSR imports
- Interfaces
- Framework library plus command-line project initializer and updater
- Frontend stack
- Preact supplies JSX rendering, signals, compatibility aliases, and island hydration
- Build integration
- A Vite plugin builds separate browser and server environments
- Repository structure
- Deno workspace containing packages and the documentation website
- Verification surface
- Workspace tasks cover formatting, linting, type checks, documentation checks, link checks, and parallel tests
Read from README.md, deno.json, packages/build-id/mod.ts, packages/init/src/mod.ts, packages/fresh/src/app.ts, packages/fresh/src/mod.ts, packages/update/src/mod.ts, packages/plugin-vite/src/mod.ts, packages/plugin-vite/demo/main.ts, packages/plugin-tailwindcss/src/mod.ts, packages/plugin-tailwindcss-v3/src/mod.ts, packages/fresh/src/dev/mod.ts, packages/fresh/src/middlewares/mod.ts, packages/plugin-vite/demo/routes/index.tsx, docs/1.x/concepts/index.md.
What it can do
Create full-stack web applications
TypeScript code and project configuration → Complete web application with server and client components
Render pages with islands architecture
Page templates and component definitions → HTML pages with selective client-side hydration
Serve web applications without build step
TypeScript source files → Running web server with live application
Handle HTTP requests and routing
URL requests and route definitions → HTTP responses with appropriate content
Execute TypeScript code natively
TypeScript source files → Executed JavaScript runtime behavior
Generate static site pages
Page components and data → Static HTML files for deployment
Intel on Fresh
Tags
Tech Stack
Media

Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
