From dc845a88080f893e2f8d1e9b3a8b32381a532c49 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Mon, 25 May 2026 17:14:39 +0900 Subject: [PATCH] chore(web): migrate canonical domain to omo.dev Switch the production worker route and all hardcoded URLs from ohmyopenagent.com to omo.dev. Six legacy domains (ohmyopenagent.com, ohmyopencode.org, ulw.dev, ultrawork.ai, ultrawork.dev, ultrawork.engineer) are configured to permanently (301) redirect to omo.dev via Cloudflare Page Rules set up out-of-band via flarectl and the CF API. - wrangler.toml: bind worker to omo.dev + www.omo.dev only - middleware.ts: primaryHost to omo.dev, www to apex redirect retained - layout.tsx: primarySiteUrl + gaTrackedDomain to omo.dev (GA still G-S0QJFKT46Q) - sitemap.ts, robots.ts: BASE_URL to https://omo.dev - npm-downloads/route.ts: usage comment URL refreshed - web-deploy.yml: environment URL to https://omo.dev - manifesto.md: domain reality-check line lists omo.dev as canonical - README*.md (5 langs): npm-downloads badge endpoint to omo.dev --- .github/workflows/web-deploy.yml | 2 +- README.ja.md | 2 +- README.ko.md | 2 +- README.md | 2 +- README.ru.md | 2 +- README.zh-cn.md | 2 +- docs/manifesto.md | 2 +- packages/web/app/api/npm-downloads/route.ts | 2 +- packages/web/app/layout.tsx | 4 ++-- packages/web/app/robots.ts | 2 +- packages/web/app/sitemap.ts | 2 +- packages/web/middleware.ts | 4 ++-- packages/web/wrangler.toml | 4 ++-- 13 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index 590100e14..0d3731ff8 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -23,7 +23,7 @@ jobs: runs-on: ubuntu-latest environment: name: web-production - url: https://ohmyopenagent.com + url: https://omo.dev defaults: run: working-directory: packages/web diff --git a/README.ja.md b/README.ja.md index ac0f9c3df..9bf4a1880 100644 --- a/README.ja.md +++ b/README.ja.md @@ -50,7 +50,7 @@
[![GitHub Release](https://img.shields.io/github/v/release/code-yeongyu/oh-my-openagent?color=369eff&labelColor=black&logo=github&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/releases) -[![npm downloads](https://img.shields.io/endpoint?url=https%3A%2F%2Fohmyopenagent.com%2Fapi%2Fnpm-downloads&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode) +[![npm downloads](https://img.shields.io/endpoint?url=https%3A%2F%2Fomo.dev%2Fapi%2Fnpm-downloads&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode) [![GitHub Contributors](https://img.shields.io/github/contributors/code-yeongyu/oh-my-openagent?color=c4f042&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/graphs/contributors) [![GitHub Forks](https://img.shields.io/github/forks/code-yeongyu/oh-my-openagent?color=8ae8ff&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/network/members) [![GitHub Stars](https://img.shields.io/github/stars/code-yeongyu/oh-my-openagent?color=ffcb47&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/stargazers) diff --git a/README.ko.md b/README.ko.md index b2037dc89..206f109ee 100644 --- a/README.ko.md +++ b/README.ko.md @@ -49,7 +49,7 @@
[![GitHub Release](https://img.shields.io/github/v/release/code-yeongyu/oh-my-openagent?color=369eff&labelColor=black&logo=github&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/releases) -[![npm downloads](https://img.shields.io/endpoint?url=https%3A%2F%2Fohmyopenagent.com%2Fapi%2Fnpm-downloads&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode) +[![npm downloads](https://img.shields.io/endpoint?url=https%3A%2F%2Fomo.dev%2Fapi%2Fnpm-downloads&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode) [![GitHub Contributors](https://img.shields.io/github/contributors/code-yeongyu/oh-my-openagent?color=c4f042&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/graphs/contributors) [![GitHub Forks](https://img.shields.io/github/forks/code-yeongyu/oh-my-openagent?color=8ae8ff&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/network/members) [![GitHub Stars](https://img.shields.io/github/stars/code-yeongyu/oh-my-openagent?color=ffcb47&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/stargazers) diff --git a/README.md b/README.md index af0f54330..823bc42ce 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@
[![GitHub Release](https://img.shields.io/github/v/release/code-yeongyu/oh-my-openagent?color=369eff&labelColor=black&logo=github&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/releases) -[![npm downloads](https://img.shields.io/endpoint?url=https%3A%2F%2Fohmyopenagent.com%2Fapi%2Fnpm-downloads&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode) +[![npm downloads](https://img.shields.io/endpoint?url=https%3A%2F%2Fomo.dev%2Fapi%2Fnpm-downloads&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode) [![GitHub Contributors](https://img.shields.io/github/contributors/code-yeongyu/oh-my-openagent?color=c4f042&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/graphs/contributors) [![GitHub Forks](https://img.shields.io/github/forks/code-yeongyu/oh-my-openagent?color=8ae8ff&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/network/members) [![GitHub Stars](https://img.shields.io/github/stars/code-yeongyu/oh-my-openagent?color=ffcb47&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/stargazers) diff --git a/README.ru.md b/README.ru.md index 19c9ca636..0664dbd53 100644 --- a/README.ru.md +++ b/README.ru.md @@ -50,7 +50,7 @@
[![GitHub Release](https://img.shields.io/github/v/release/code-yeongyu/oh-my-openagent?color=369eff&labelColor=black&logo=github&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/releases) -[![npm downloads](https://img.shields.io/endpoint?url=https%3A%2F%2Fohmyopenagent.com%2Fapi%2Fnpm-downloads&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode) +[![npm downloads](https://img.shields.io/endpoint?url=https%3A%2F%2Fomo.dev%2Fapi%2Fnpm-downloads&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode) [![GitHub Contributors](https://img.shields.io/github/contributors/code-yeongyu/oh-my-openagent?color=c4f042&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/graphs/contributors) [![GitHub Forks](https://img.shields.io/github/forks/code-yeongyu/oh-my-openagent?color=8ae8ff&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/network/members) [![GitHub Stars](https://img.shields.io/github/stars/code-yeongyu/oh-my-openagent?color=ffcb47&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/stargazers) diff --git a/README.zh-cn.md b/README.zh-cn.md index cef7c17a5..e5eb16257 100644 --- a/README.zh-cn.md +++ b/README.zh-cn.md @@ -50,7 +50,7 @@
[![GitHub Release](https://img.shields.io/github/v/release/code-yeongyu/oh-my-openagent?color=369eff&labelColor=black&logo=github&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/releases) -[![npm downloads](https://img.shields.io/endpoint?url=https%3A%2F%2Fohmyopenagent.com%2Fapi%2Fnpm-downloads&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode) +[![npm downloads](https://img.shields.io/endpoint?url=https%3A%2F%2Fomo.dev%2Fapi%2Fnpm-downloads&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode) [![GitHub Contributors](https://img.shields.io/github/contributors/code-yeongyu/oh-my-openagent?color=c4f042&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/graphs/contributors) [![GitHub Forks](https://img.shields.io/github/forks/code-yeongyu/oh-my-openagent?color=8ae8ff&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/network/members) [![GitHub Stars](https://img.shields.io/github/stars/code-yeongyu/oh-my-openagent?color=ffcb47&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/stargazers) diff --git a/docs/manifesto.md b/docs/manifesto.md index e4e2b4d72..6631c5506 100644 --- a/docs/manifesto.md +++ b/docs/manifesto.md @@ -5,7 +5,7 @@ The principles and philosophy behind oh-my-openagent (OmO). Project reality check: - Name: oh-my-openagent (renamed from oh-my-opencode; both npm packages still publish in tandem during the transition) -- Domain: https://ohmyopenagent.com (legacy https://ohmyopencode.org redirects 308) +- Domain: https://omo.dev (legacy https://ohmyopenagent.com, https://ohmyopencode.org, https://ulw.dev, https://ultrawork.ai, https://ultrawork.dev, https://ultrawork.engineer all 301 to omo.dev) - Building in Public: https://discord.gg/PUwSMR9XNk - Maintained by Jobdori, an AI assistant running on a heavily customized OpenClaw fork - Sisyphus Labs: https://sisyphuslabs.ai diff --git a/packages/web/app/api/npm-downloads/route.ts b/packages/web/app/api/npm-downloads/route.ts index cf50cea16..1cbcebdfe 100644 --- a/packages/web/app/api/npm-downloads/route.ts +++ b/packages/web/app/api/npm-downloads/route.ts @@ -3,7 +3,7 @@ import { getStats } from "@/lib/stats" /** * Shields.io endpoint badge for combined NPM downloads. - * Usage: https://img.shields.io/endpoint?url=https://ohmyopenagent.com/api/npm-downloads + * Usage: https://img.shields.io/endpoint?url=https://omo.dev/api/npm-downloads * * Combines downloads from both oh-my-opencode and oh-my-openagent packages. */ diff --git a/packages/web/app/layout.tsx b/packages/web/app/layout.tsx index 5fcc996e3..7f6b9596c 100644 --- a/packages/web/app/layout.tsx +++ b/packages/web/app/layout.tsx @@ -5,7 +5,7 @@ import { GeistMono } from "geist/font/mono" import Script from "next/script" import "./globals.css" -const primarySiteUrl = "https://ohmyopenagent.com" +const primarySiteUrl = "https://omo.dev" export const metadata: Metadata = { metadataBase: new URL(primarySiteUrl), @@ -93,7 +93,7 @@ const jsonLd = { } const gaMeasurementId = "G-S0QJFKT46Q" -const gaTrackedDomain = "ohmyopenagent.com" +const gaTrackedDomain = "omo.dev" export default function RootLayout({ children }: { readonly children: ReactNode }): JSX.Element { return ( diff --git a/packages/web/app/robots.ts b/packages/web/app/robots.ts index a82ff3d4f..980f76afe 100644 --- a/packages/web/app/robots.ts +++ b/packages/web/app/robots.ts @@ -6,6 +6,6 @@ export default function robots(): MetadataRoute.Robots { userAgent: "*", allow: "/", }, - sitemap: "https://ohmyopenagent.com/sitemap.xml", + sitemap: "https://omo.dev/sitemap.xml", } } diff --git a/packages/web/app/sitemap.ts b/packages/web/app/sitemap.ts index aaefa38da..37a0f9ed9 100644 --- a/packages/web/app/sitemap.ts +++ b/packages/web/app/sitemap.ts @@ -1,6 +1,6 @@ import type { MetadataRoute } from "next" -const BASE_URL = "https://ohmyopenagent.com" +const BASE_URL = "https://omo.dev" export default function sitemap(): MetadataRoute.Sitemap { const routes = ["", "/docs", "/manifesto"] diff --git a/packages/web/middleware.ts b/packages/web/middleware.ts index 3cff67463..2dc9ea9e7 100644 --- a/packages/web/middleware.ts +++ b/packages/web/middleware.ts @@ -4,8 +4,8 @@ import { locales, type Locale } from "./i18n/config" import { routing } from "./i18n/routing" const handleI18nRouting = createMiddleware(routing) -const oldHosts = new Set(["ohmyopencode.org", "www.ohmyopencode.org"]) -const primaryHost = "ohmyopenagent.com" +const oldHosts = new Set(["www.omo.dev"]) +const primaryHost = "omo.dev" const installationPaths = new Set([ "installation", "installation.md", diff --git a/packages/web/wrangler.toml b/packages/web/wrangler.toml index be07cfaf9..4a9b73f80 100644 --- a/packages/web/wrangler.toml +++ b/packages/web/wrangler.toml @@ -10,9 +10,9 @@ directory = ".open-next/assets" binding = "ASSETS" [[routes]] -pattern = "ohmyopenagent.com" +pattern = "omo.dev" custom_domain = true [[routes]] -pattern = "ohmyopencode.org" +pattern = "www.omo.dev" custom_domain = true