diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index c1a99446ce5..c409b78ac0d 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -1,7 +1,7 @@
# Contributing Guidelines
For the full contributing guide, see the
-[Fresh documentation](https://fresh.deno.dev/docs/latest/contributing).
+[Fresh documentation](https://usefresh.dev/docs/latest/contributing).
## PR title format
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index fa0185c4163..9ad207efd56 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -71,7 +71,7 @@ jobs:
- name: Check docs
run: deno task check:docs
- - name: Build fresh.deno.dev
+ - name: Build usefresh.dev
if: startsWith(matrix.os, 'ubuntu') && matrix.deno == 'v2.x'
run: deno task build-www
diff --git a/AGENTS.md b/AGENTS.md
index 8b03be67b24..52039c9f8f7 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -24,7 +24,7 @@ with workspace members in `packages/*` and `www/`.
### Other directories
-- **`www/`**: Documentation website (fresh.deno.dev), built with Fresh + Vite +
+- **`www/`**: Documentation website (usefresh.dev), built with Fresh + Vite +
Tailwind. Has its own routes, islands, and vite.config.ts.
- **`docs/`**: Markdown documentation organized by version (`latest/`, `1.x/`,
`canary/`).
diff --git a/README.md b/README.md
index ecee756c165..e7bbaf1e4f0 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
# fresh
-
+
**Fresh** is a next generation web framework, built for speed, reliability, and
simplicity.
@@ -18,8 +18,8 @@ Some stand-out features:
## π Documentation
-The [documentation](https://fresh.deno.dev/docs/introduction) is available on
-[fresh.deno.dev](https://fresh.deno.dev/).
+The [documentation](https://usefresh.dev/docs/introduction) is available on
+[usefresh.dev](https://usefresh.dev/).
## π Getting started
@@ -58,7 +58,7 @@ To deploy the project to the live internet, you can use
subdomain with no configuration necessary.
For a more in-depth getting started guide, visit the
-[Getting Started](https://fresh.deno.dev/docs/getting-started) page in the Fresh
+[Getting Started](https://usefresh.dev/docs/getting-started) page in the Fresh
docs.
## Contributing
@@ -69,9 +69,8 @@ We appreciate your help! To contribute, please read our
## Adding your project to the showcase
If you feel that your project would be helpful to other Fresh users, please
-consider putting your project on the
-[showcase](https://fresh.deno.dev/showcase). However, websites that are just for
-promotional purposes may not be listed.
+consider putting your project on the [showcase](https://usefresh.dev/showcase).
+However, websites that are just for promotional purposes may not be listed.
To take a screenshot, run the following command.
@@ -88,15 +87,15 @@ preferably with source code on GitHub, but not required.

```md
-[](https://fresh.deno.dev)
+[](https://usefresh.dev)
```
```html
-
+
@@ -105,15 +104,15 @@ preferably with source code on GitHub, but not required.

```md
-[](https://fresh.deno.dev)
+[](https://usefresh.dev)
```
```html
-
+
diff --git a/docs/1.x/concepts/middleware.md b/docs/1.x/concepts/middleware.md
index 549cc8ebe63..d7c97795edf 100644
--- a/docs/1.x/concepts/middleware.md
+++ b/docs/1.x/concepts/middleware.md
@@ -144,7 +144,7 @@ for a `route`, as opposed to something like `http://localhost:8001/favicon.ico`.
### Example
-Initiate a new Fresh project (`deno run -A -r https://fresh.deno.dev/`) and then
+Initiate a new Fresh project (`deno run -A -r https://usefresh.dev/`) and then
create a `_middleware.ts` file in the `routes` folder like this:
```ts routes/_middleware.ts
diff --git a/docs/1.x/concepts/updating.md b/docs/1.x/concepts/updating.md
index a47e05ac59a..c935a0d8fc8 100644
--- a/docs/1.x/concepts/updating.md
+++ b/docs/1.x/concepts/updating.md
@@ -42,7 +42,7 @@ To run the auto updater, run the following command from the root of your
project:
```sh Terminal
-$ deno run -A -r https://fresh.deno.dev/update
+$ deno run -A -r https://usefresh.dev/update
```
You will be prompted to confirm the changes that will be made to your project.
diff --git a/docs/1.x/examples/authentication-with-supabase.md b/docs/1.x/examples/authentication-with-supabase.md
index 43b93a23778..61f937a4c0c 100644
--- a/docs/1.x/examples/authentication-with-supabase.md
+++ b/docs/1.x/examples/authentication-with-supabase.md
@@ -24,7 +24,7 @@ The purpose of the example app we're building here is to showcase the basic
building blocks of an implementation. As such, it is limited in functionality
and purposefully leaves out things like
[password resets](https://supabase.com/docs/guides/auth/server-side/email-based-auth-with-pkce-flow-for-ssr),
-[proper error handling](https://fresh.deno.dev/docs/1.x/concepts/error-pages) as
+[proper error handling](https://usefresh.dev/docs/1.x/concepts/error-pages) as
well as validating input form data. You can find the
[full code here](https://github.com/morlinbrot/supa-fresh-pkce), where the
missing functionality is implemented.
@@ -226,7 +226,7 @@ we are writing next.
We can now write a middleware that will check the auth status of any request,
guarding any protected routes. You can read up on middlewares and where to put
-them [in the docs](https://fresh.deno.dev/docs/1.x/concepts/middleware).
+them [in the docs](https://usefresh.dev/docs/1.x/concepts/middleware).
```ts routes/_middleware.ts
import { FreshContext } from "$fresh/server.ts";
diff --git a/docs/1.x/examples/changing-the-src-dir.md b/docs/1.x/examples/changing-the-src-dir.md
index 1bb6240576e..850da43668a 100644
--- a/docs/1.x/examples/changing-the-src-dir.md
+++ b/docs/1.x/examples/changing-the-src-dir.md
@@ -3,8 +3,8 @@ description: |
Change the source directory to effectively manage your project.
---
-When you initialize a project with `deno run -A -r https://fresh.deno.dev`,
-you'll end up with a project like the following:
+When you initialize a project with `deno run -A -r https://usefresh.dev`, you'll
+end up with a project like the following:
```txt-files Project Structure
diff --git a/docs/1.x/examples/rendering-markdown.md b/docs/1.x/examples/rendering-markdown.md
index 572dd48c387..1df6cb2680d 100644
--- a/docs/1.x/examples/rendering-markdown.md
+++ b/docs/1.x/examples/rendering-markdown.md
@@ -11,7 +11,7 @@ possibilities:
3. the markdown is on a file
The following file uses
-[dynamic routing](https://fresh.deno.dev/docs/getting-started/dynamic-routes) to
+[dynamic routing](https://usefresh.dev/docs/getting-started/dynamic-routes) to
handle the three cases. It's assumed this file is called `[slug].tsx`:
```ts routes/[slug].tsx
diff --git a/docs/1.x/examples/setting-the-language.md b/docs/1.x/examples/setting-the-language.md
index a8b4b176e43..8cb161c2a2d 100644
--- a/docs/1.x/examples/setting-the-language.md
+++ b/docs/1.x/examples/setting-the-language.md
@@ -3,8 +3,8 @@ description: |
Set the lang attribute in the tag.
---
-When you initialize a project with `deno run -A -r https://fresh.deno.dev`,
-you'll end up with a `main.ts` like the following:
+When you initialize a project with `deno run -A -r https://usefresh.dev`, you'll
+end up with a `main.ts` like the following:
```ts main.ts
///
diff --git a/docs/1.x/examples/using-twind-v1.md b/docs/1.x/examples/using-twind-v1.md
index 07e7d75f4d5..243f8601c88 100644
--- a/docs/1.x/examples/using-twind-v1.md
+++ b/docs/1.x/examples/using-twind-v1.md
@@ -3,8 +3,8 @@ description: |
With a few tweaks one can use twind v1
---
-When you initialize a project with `deno run -A -r https://fresh.deno.dev`,
-you'll end up with a `main.ts` like the following:
+When you initialize a project with `deno run -A -r https://usefresh.dev`, you'll
+end up with a `main.ts` like the following:
```ts main.ts
///
diff --git a/docs/1.x/getting-started/create-a-project.md b/docs/1.x/getting-started/create-a-project.md
index b8433cdc7eb..6e48d2c043e 100644
--- a/docs/1.x/getting-started/create-a-project.md
+++ b/docs/1.x/getting-started/create-a-project.md
@@ -10,7 +10,7 @@ will scaffold out a new project with some example files to get you started.
To create a new project, run:
```sh Terminal
-deno run -A -r https://fresh.deno.dev
+deno run -A -r https://usefresh.dev
cd fresh-project
deno task start
```
diff --git a/docs/latest/contributing/index.md b/docs/latest/contributing/index.md
index 6918695333f..fcf9a1cffac 100644
--- a/docs/latest/contributing/index.md
+++ b/docs/latest/contributing/index.md
@@ -13,7 +13,7 @@ Fresh is organized as a monorepo with multiple packages:
- **`packages/plugin-tailwindcss-v3/`** - Tailwind CSS v3 plugin
- **`packages/init/`** - Project scaffolding tool
- **`packages/update/`** - Fresh update utilities
-- **`www/`** - Documentation website (fresh.deno.dev)
+- **`www/`** - Documentation website (usefresh.dev)
## Getting Started
diff --git a/packages/build-id/mod.ts b/packages/build-id/mod.ts
index 0778a5d74a7..a81a7c39c0e 100644
--- a/packages/build-id/mod.ts
+++ b/packages/build-id/mod.ts
@@ -6,7 +6,7 @@
* // `BUILD_ID` is based on the `DENO_DEPLOYMENT_ID` environment variable.
* ```
*
- * @see https://fresh.deno.dev/docs/deployment/docker
+ * @see https://usefresh.dev/docs/deployment/docker
*
* @module
* @private
diff --git a/packages/examples/README.md b/packages/examples/README.md
index 2e76a69aa0f..07747d3f766 100644
--- a/packages/examples/README.md
+++ b/packages/examples/README.md
@@ -3,7 +3,7 @@
This package contains examples for using Fresh with [JSR](https://jsr.io/).
Learn more about the Fresh framework here:
-[https://fresh.deno.dev/](https://fresh.deno.dev/)
+[https://usefresh.dev/](https://usefresh.dev/)
## Usage: Island example
diff --git a/packages/fresh/README.md b/packages/fresh/README.md
index 2ac197c1162..8e94e5ef096 100644
--- a/packages/fresh/README.md
+++ b/packages/fresh/README.md
@@ -4,7 +4,7 @@ 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.
-[Learn more about Fresh](https://fresh.deno.dev/)
+[Learn more about Fresh](https://usefresh.dev/)
## Usage
@@ -28,4 +28,4 @@ app.listen();
```
For more information on getting started with Fresh, head on over to the
-[documentation](https://fresh.deno.dev/docs/introduction).
+[documentation](https://usefresh.dev/docs/introduction).
diff --git a/packages/fresh/src/dev/middlewares/automatic_workspace_folders.ts b/packages/fresh/src/dev/middlewares/automatic_workspace_folders.ts
index 6138ce5b364..22ec1999331 100644
--- a/packages/fresh/src/dev/middlewares/automatic_workspace_folders.ts
+++ b/packages/fresh/src/dev/middlewares/automatic_workspace_folders.ts
@@ -34,7 +34,7 @@ export function automaticWorkspaceFolders(root: string): Middleware {
uuid ??= await generate(
NAMESPACE_URL,
new TextEncoder().encode(
- `https://fresh.deno.dev?root=${encodeURIComponent(root)}&v=${0}`,
+ `https://usefresh.dev?root=${encodeURIComponent(root)}&v=${0}`,
),
);
content ??= JSON.stringify({ workspace: { root, uuid } }, undefined, 2);
diff --git a/packages/fresh/src/jsonify/__snapshots__/round_trip_test.ts.snap b/packages/fresh/src/jsonify/__snapshots__/round_trip_test.ts.snap
index 63f78585dc7..793ace1ec31 100644
--- a/packages/fresh/src/jsonify/__snapshots__/round_trip_test.ts.snap
+++ b/packages/fresh/src/jsonify/__snapshots__/round_trip_test.ts.snap
@@ -40,7 +40,7 @@ snapshot[`round trip - { a: 1, b: null, c: -2 } 1`] = `'[{"a":1,"b":-2,"c":2},1,
snapshot[`round trip - Uint8Array(3) [ 1, 2, 3 ] 1`] = `'[["Uint8Array","AQID"]]'`;
-snapshot[`round trip - URL {\\n href: 'https://fresh.deno.dev/',\\n origin: 'https://fresh.deno.dev',\\n protocol: 'https:',\\n username: '',\\n password: '',\\n host: 'fresh.deno.dev',\\n hostname: 'fresh.deno.dev',\\n port: '',\\n pathname: '/',\\n hash: '',\\n search: ''\\n} 1`] = `'[["URL","https://fresh.deno.dev/"]]'`;
+snapshot[`round trip - URL {\\n href: 'https://usefresh.dev/',\\n origin: 'https://usefresh.dev',\\n protocol: 'https:',\\n username: '',\\n password: '',\\n host: 'usefresh.dev',\\n hostname: 'usefresh.dev',\\n port: '',\\n pathname: '/',\\n hash: '',\\n search: ''\\n} 1`] = `'[["URL","https://usefresh.dev/"]]'`;
snapshot[`round trip - 1990-05-31T00:00:00.000Z 1`] = `'[["Date","1990-05-31T00:00:00.000Z"]]'`;
diff --git a/packages/fresh/src/jsonify/round_trip_test.ts b/packages/fresh/src/jsonify/round_trip_test.ts
index 5c44d0424df..e91eecdae77 100644
--- a/packages/fresh/src/jsonify/round_trip_test.ts
+++ b/packages/fresh/src/jsonify/round_trip_test.ts
@@ -32,7 +32,7 @@ const TESTS = [
[null, undefined, -2],
{ a: 1, b: null, c: -2 },
new Uint8Array([1, 2, 3]),
- new URL("https://fresh.deno.dev"),
+ new URL("https://usefresh.dev"),
new Date("1990-05-31"),
new Date("Invalid Date"),
new Map([[1, null], [undefined, -2]]),
diff --git a/packages/fresh/src/server/tailwind_aot_error_page.tsx b/packages/fresh/src/server/tailwind_aot_error_page.tsx
index 420f7437e6e..19c8a277951 100644
--- a/packages/fresh/src/server/tailwind_aot_error_page.tsx
+++ b/packages/fresh/src/server/tailwind_aot_error_page.tsx
@@ -1,4 +1,4 @@
-const LINK = "https://fresh.deno.dev/docs/concepts/ahead-of-time-builds";
+const LINK = "https://usefresh.dev/docs/concepts/ahead-of-time-builds";
export default function TailwindErrorPage() {
return (
diff --git a/packages/init/README.md b/packages/init/README.md
index eec288dd023..d4632d8a8ac 100644
--- a/packages/init/README.md
+++ b/packages/init/README.md
@@ -6,5 +6,5 @@ This is a CLI tool to bootstrap a new Fresh project. To do so, run this command:
deno run -Ar jsr:@fresh/init
```
-Go to [https://fresh.deno.dev/](https://fresh.deno.dev/) for more information
-about Fresh.
+Go to [https://usefresh.dev/](https://usefresh.dev/) for more information about
+Fresh.
diff --git a/packages/init/src/init.ts b/packages/init/src/init.ts
index 8400b3e8e12..37f753f6872 100644
--- a/packages/init/src/init.ts
+++ b/packages/init/src/init.ts
@@ -388,7 +388,7 @@ import "./assets/styles.css";`,
await writeFile("static/logo.svg", STATIC_LOGO);
try {
- const res = await fetch("https://fresh.deno.dev/favicon.ico");
+ const res = await fetch("https://usefresh.dev/favicon.ico");
const buf = await res.arrayBuffer();
await writeFile("static/favicon.ico", new Uint8Array(buf));
} catch {
@@ -652,7 +652,7 @@ import { fresh } from "@fresh/plugin-vite";\n`;
const README_MD = `# Fresh project
Your new Fresh project is ready to go. You can follow the Fresh "Getting
-Started" guide here: https://fresh.deno.dev/docs/getting-started
+Started" guide here: https://usefresh.dev/docs/getting-started
### Usage
diff --git a/packages/plugin-tailwindcss-v3/README.md b/packages/plugin-tailwindcss-v3/README.md
index f80c4eb5ddd..b789789df64 100644
--- a/packages/plugin-tailwindcss-v3/README.md
+++ b/packages/plugin-tailwindcss-v3/README.md
@@ -37,5 +37,4 @@ tailwind(builder, {
});
```
-To learn more about Fresh go to
-[https://fresh.deno.dev/](https://fresh.deno.dev/).
+To learn more about Fresh go to [https://usefresh.dev/](https://usefresh.dev/).
diff --git a/packages/plugin-tailwindcss/README.md b/packages/plugin-tailwindcss/README.md
index aa89f7f4f98..e7ef8257761 100644
--- a/packages/plugin-tailwindcss/README.md
+++ b/packages/plugin-tailwindcss/README.md
@@ -47,5 +47,4 @@ if (Deno.args.includes("build")) {
}
```
-To learn more about Fresh go to
-[https://fresh.deno.dev/](https://fresh.deno.dev/).
+To learn more about Fresh go to [https://usefresh.dev/](https://usefresh.dev/).
diff --git a/packages/plugin-vite/README.md b/packages/plugin-vite/README.md
index 4e349785c5f..1c879885947 100644
--- a/packages/plugin-vite/README.md
+++ b/packages/plugin-vite/README.md
@@ -1,6 +1,6 @@
# Fresh vite plugin
-Vite plugin for [Fresh](https://fresh.deno.dev).
+Vite plugin for [Fresh](https://usefresh.dev).
## Usage
@@ -34,4 +34,4 @@ Vite plugin for [Fresh](https://fresh.deno.dev).
- Build: `vite build`
More information
-[on the Fresh documentation](https://fresh.deno.dev/docs/advanced/vite) .
+[on the Fresh documentation](https://usefresh.dev/docs/advanced/vite) .
diff --git a/packages/update/README.md b/packages/update/README.md
index d381aab7703..8f9bdd9fec6 100644
--- a/packages/update/README.md
+++ b/packages/update/README.md
@@ -7,5 +7,5 @@ run this command:
deno run -Ar jsr:@fresh/update
```
-Go to [https://fresh.deno.dev/](https://fresh.deno.dev/) for more information
-about Fresh.
+Go to [https://usefresh.dev/](https://usefresh.dev/) for more information about
+Fresh.
diff --git a/packages/update/src/update.ts b/packages/update/src/update.ts
index ad1e28787a7..2f6d0d0b8f6 100644
--- a/packages/update/src/update.ts
+++ b/packages/update/src/update.ts
@@ -163,7 +163,7 @@ export async function updateProject(dir: string) {
delete tasks.cli;
}
- if (tasks.update === "deno run -A -r https://fresh.deno.dev/update .") {
+ if (tasks.update === "deno run -A -r https://usefresh.dev/update .") {
tasks.update = "deno run -A -r jsr:@fresh/update .";
}
diff --git a/packages/update/src/update_test.ts b/packages/update/src/update_test.ts
index 943c11cdf1f..06cb4440ad9 100644
--- a/packages/update/src/update_test.ts
+++ b/packages/update/src/update_test.ts
@@ -102,7 +102,7 @@ Deno.test("update - 1.x project deno.json tasks + lock", async () => {
"start": "deno run -A --watch=static/,routes/ dev.ts",
"build": "deno run -A dev.ts build",
"preview": "deno run -A main.ts",
- "update": "deno run -A -r https://fresh.deno.dev/update ."
+ "update": "deno run -A -r https://usefresh.dev/update ."
}
}`,
});
diff --git a/www/main.ts b/www/main.ts
index 9b4a83a1bef..4733de5ab24 100644
--- a/www/main.ts
+++ b/www/main.ts
@@ -1,6 +1,15 @@
import { App, staticFiles, trailingSlashes } from "fresh";
export const app = new App()
+ .use(async (ctx) => {
+ // redirect fresh.deno.dev to usefresh.dev
+ if (ctx.url.origin === "https://fresh.deno.dev") {
+ const newUrl = new URL(ctx.url);
+ newUrl.hostname = "usefresh.dev";
+ return Response.redirect(newUrl, 307);
+ }
+ return await ctx.next();
+ })
.use(staticFiles())
.use(trailingSlashes("never"))
.fsRoutes();