- OpenCode
- The open source AI coding agent
- The new opencode.ai SSR site is running. The V2 documentation is available now.
-
- Read the docs
-
-
- )
-}
diff --git a/packages/www/src/styles.css b/packages/www/src/styles.css
deleted file mode 100644
index 9fab42c420..0000000000
--- a/packages/www/src/styles.css
+++ /dev/null
@@ -1,85 +0,0 @@
-@import "tailwindcss";
-@import "fumadocs-ui/css/neutral.css";
-@import "fumadocs-ui/css/preset.css";
-
-:root {
- --site-background: #f7f7f5;
- --site-foreground: #171717;
- --site-border: #d8d8d2;
- --site-accent: #3b7dd8;
- --fd-layout-width: 90rem;
-}
-
-* {
- box-sizing: border-box;
-}
-
-html,
-body {
- min-height: 100%;
-}
-
-body {
- margin: 0;
-}
-
-/* Fumadocs 16.11 stretches top layout tabs across the main grid row. */
-#nd-docs-layout > div:has(> a[href="/docs/build"], > a[href="/docs/api"]) {
- align-self: start;
- height: 3rem;
-}
-
-.home {
- min-height: 100vh;
- display: grid;
- align-content: center;
- justify-items: start;
- gap: 1.5rem;
- padding: clamp(1.5rem, 7vw, 7rem);
- color: var(--site-foreground);
- background: var(--site-background);
-}
-
-.home-kicker,
-.home-copy,
-.home h1 {
- margin: 0;
-}
-
-.home-kicker {
- font:
- 600 0.75rem/1.2 ui-monospace,
- monospace;
- letter-spacing: 0.12em;
- text-transform: uppercase;
-}
-
-.home h1 {
- max-width: 13ch;
- font:
- 500 clamp(3rem, 9vw, 8rem) / 0.92 ui-monospace,
- monospace;
- letter-spacing: -0.07em;
-}
-
-.home-copy {
- max-width: 42rem;
- font:
- 400 clamp(1rem, 2vw, 1.25rem) / 1.5 ui-monospace,
- monospace;
-}
-
-.home-link {
- display: inline-block;
- padding: 0.8rem 1rem;
- color: var(--site-background);
- background: var(--site-foreground);
- font:
- 500 0.875rem/1 ui-monospace,
- monospace;
- text-decoration: none;
-}
-
-.home-link:hover {
- background: var(--site-accent);
-}
diff --git a/packages/www/tsconfig.json b/packages/www/tsconfig.json
index fa688da72b..0a92f5be45 100644
--- a/packages/www/tsconfig.json
+++ b/packages/www/tsconfig.json
@@ -1,24 +1,7 @@
{
- "include": ["src/**/*.ts", "src/**/*.tsx", "source.config.ts", "vite.config.ts", ".source/**/*.ts"],
+ "extends": "astro/tsconfigs/strict",
+ "include": [".blume/.astro/types.d.ts", ".blume/src/env.d.ts", "**/*"],
"compilerOptions": {
- "target": "ES2022",
- "jsx": "react-jsx",
- "module": "ESNext",
- "moduleResolution": "bundler",
- "allowImportingTsExtensions": true,
- "verbatimModuleSyntax": true,
- "noEmit": true,
- "skipLibCheck": true,
- "strict": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
- "noFallthroughCasesInSwitch": true,
- "noUncheckedSideEffectImports": true,
- "lib": ["ES2022", "DOM", "DOM.Iterable"],
- "types": ["vite/client"],
- "paths": {
- "@/*": ["./src/*"],
- "collections/*": ["./.source/*"]
- }
+ "types": ["bun"]
}
}
diff --git a/packages/www/vite.config.ts b/packages/www/vite.config.ts
deleted file mode 100644
index 1fdc270427..0000000000
--- a/packages/www/vite.config.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { cloudflare } from "@cloudflare/vite-plugin"
-import tailwindcss from "@tailwindcss/vite"
-import { tanstackStart } from "@tanstack/react-start/plugin/vite"
-import viteReact from "@vitejs/plugin-react"
-import mdx from "fumadocs-mdx/vite"
-import { defineConfig } from "vite"
-
-export default defineConfig({
- resolve: {
- tsconfigPaths: true,
- },
- plugins: [
- cloudflare({
- viteEnvironment: { name: "ssr" },
- configPath: process.env.SST_WRANGLER_PATH,
- }),
- tailwindcss(),
- mdx(),
- tanstackStart(),
- viteReact(),
- ],
-})
diff --git a/packages/www/wrangler.jsonc b/packages/www/wrangler.jsonc
index b1b96c9934..ff8e3992e6 100644
--- a/packages/www/wrangler.jsonc
+++ b/packages/www/wrangler.jsonc
@@ -1,7 +1,41 @@
{
"$schema": "node_modules/wrangler/config-schema.json",
"name": "opencode-www",
- "compatibility_date": "2026-07-12",
- "compatibility_flags": ["nodejs_compat"],
- "main": "@tanstack/react-start/server-entry",
+ "compatibility_date": "2026-07-25",
+ "workers_dev": false,
+ "preview_urls": false,
+ "assets": {
+ "binding": "ASSETS",
+ "directory": "./dist/client",
+ "html_handling": "auto-trailing-slash",
+ "not_found_handling": "404-page"
+ },
+ "env": {
+ "dev": {
+ "name": "opencode-www-dev",
+ "routes": [
+ {
+ "pattern": "dev.opencode.ai/v2",
+ "zone_name": "opencode.ai"
+ },
+ {
+ "pattern": "dev.opencode.ai/v2/*",
+ "zone_name": "opencode.ai"
+ }
+ ]
+ },
+ "production": {
+ "name": "opencode-www",
+ "routes": [
+ {
+ "pattern": "opencode.ai/v2",
+ "zone_name": "opencode.ai"
+ },
+ {
+ "pattern": "opencode.ai/v2/*",
+ "zone_name": "opencode.ai"
+ }
+ ]
+ }
+ }
}
diff --git a/script/generate.ts b/script/generate.ts
index dbf38f8a3c..e51808342f 100755
--- a/script/generate.ts
+++ b/script/generate.ts
@@ -6,6 +6,6 @@ await $`bun ./packages/sdk/js/script/build.ts`
await $`bun dev generate > ../sdk/openapi.json`.cwd("packages/opencode")
-await $`bun run generate`.cwd("packages/docs")
+await $`bun run generate`.cwd("packages/www")
await $`./script/format.ts`