Deno Frontend
DenoOfficialCreated by denolandDistributed by Deno
- Skill
- Tool integration
- Software development
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides guidance on developing web frontends within the Deno ecosystem. It distinguishes between two primary approaches: using standard npm-based frameworks (like React, Vite, Astro, or Next.js) which run natively in Deno, and using Fresh, Deno's own island-architecture framework. The documentation covers project setup, configuration, and migration paths for Fresh 2.x, including details on routing, handlers, and state management.
What it does
- Explains how to run popular npm frontend frameworks using Deno's native task runner.
- Provides setup instructions for Fresh, Deno's server-side rendering framework.
- Details the project structure for Fresh 2.x applications.
- Outlines the migration process from Fresh 1.x to 2.x.
- Describes how to handle routing, data fetching, and state in Fresh.
- Offers configuration tips for integrating tools like Tailwind CSS with Deno.
When to use it
- When starting a new web project and deciding between standard npm frameworks or Deno's Fresh.
- When you need to run existing React, Vite, or Next.js projects using Deno.
- When building a new Deno-first application that requires server-side rendering.
- When upgrading an existing Fresh 1.x project to the 2.x version.
- When you need to understand how to structure routes, islands, and handlers in Fresh.
Advantages
- Seamless integration with the existing npm frontend ecosystem.
- Minimal client-side JavaScript overhead via Fresh's island architecture.
- Clear guidance on project configuration and dependency management.
- Automated migration tools for upgrading legacy Fresh projects.
- Consistent patterns for server-side data handling and routing.
Usage examples
- “How do I start a new Vite project using Deno?”
- You can use 'deno create vite my-app', followed by 'deno install' and 'deno task dev' to run the project.
- “How do I migrate my Fresh 1.x project to 2.x?”
- Run 'deno run -Ar jsr:@fresh/update' to automatically convert imports, update handler signatures, and switch to the Vite-based build system.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/denoland/deno-frontend/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip deno-frontend.zip -d .agents/skills
Documentation by denoland
Frontend development with Deno
Two paths. Pick by what the project already uses.
Regular npm frameworks — the usual choice
Deno runs the normal frontend ecosystem: React, Vue, Svelte, Solid, Vite, Astro, Next.js, Nuxt, SvelteKit, Remix, SolidStart. Nothing needs to be ported, and there is no Deno-specific way to write them.
deno create vite my-app # or astro, next, nuxt, svelte…
cd my-app
deno install
deno task devdeno create is npm create. deno install reads package.json.
deno task <script> runs package.json scripts. That is the whole difference.
Follow the framework's own documentation for everything else — routing, components, data loading, and config are the framework's concern, not Deno's. Don't invent Deno-flavoured variants of their APIs, and don't reach for Fresh patterns in a React or Svelte project.
The only things worth knowing:
Some frameworks need
"nodeModulesDir": "auto"indeno.json; Next.js does.Permissions apply to the dev server too — framework tasks generally want
-A.Deploying: see the
deno-deployskill, which lists per-framework build commands and presets.
Fresh — Deno's own framework
Fresh suits a new Deno-first project that wants server rendering with minimal
client JavaScript. It uses island architecture: pages render on the server,
and only components in islands/ ship JavaScript.
deno run -Ar jsr:@fresh/init
cd my-project
deno task dev # http://localhost:5173A Fresh project is Vite-based: vite.config.ts for the build, main.ts for the
server, file-based routes in routes/, islands in islands/, server-only
components in components/. Preact supplies the component model, with signals
for state.
// islands/Counter.tsx — interactive, ships JS
import { useSignal } from "@preact/signals";
export default function Counter() {
const count = useSignal(0);
return <button onClick={() => count.value++}>Count: {count.value}</button>;
}Three rules carry most of the weight:
Islands ship JavaScript — keep them small, leave everything else in
components/.Island props must be serializable. Functions cannot be passed.
Handlers take a single
(ctx)parameter.
Load references/FRESH.md for routes, handlers, define helpers, middleware,
islands, signals, and Tailwind.
Use Fresh 2.x, imported from "fresh". For an existing 1.x project, or one
pinned to a 2.0.0-alpha.* release, see references/FRESH_MIGRATION.md.
Further reading
https://fresh.deno.dev/docs — Fresh documentation
references/FRESH.md— Fresh 2.x patterns in depthreferences/FRESH_MIGRATION.md— Fresh 1.x and alpha migration
Files
- ATTRIBUTION.mdAdded by AutoGineer875 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md3.1 KiB
- references/FRESH.md7.5 KiB
- references/FRESH_MIGRATION.md3.0 KiB
ATTRIBUTION.md
Attribution
This folder is an unmodified copy of the Agent Skill "deno-frontend", distributed by AutoGineer (https://autogineer.com/agent-skills).
Commit: d5f6ace6b113aee71ba5286612fa1bde34c7d102
Created by: denoland (https://github.com/denoland/skills/tree/d5f6ace6b113aee71ba5286612fa1bde34c7d102/skills/deno-frontend)
Publisher: Deno (https://github.com/denoland)
Licence: MIT License (https://spdx.org/licenses/MIT.html)
Licence evidence: declared in the frontmatter ("license: MIT")
Retrieved: 2026-11-07
The skill's own files are unmodified copies. AutoGineer is not affiliated with or endorsed by the author or the publisher.
Files added by AutoGineer
ATTRIBUTION.md: this file, written by AutoGineer
LICENSE: copied from LICENSE
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- denoland
- Publisher
- Deno (Official)
- Distributed by
- Deno
- Source
- denoland/skills · skills/deno-frontend · commit d5f6ace
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by denoland or Deno.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download deno-frontend.zip