mirror of
https://github.com/Gitlawb/openclaude.git
synced 2026-06-01 15:27:41 +00:00
* feat(web): openclaude landing — runs anywhere, uses anything A new marketing site for openclaude under web/, plus the minimal root infrastructure to build, ignore, and gate it without affecting the published npm package. Landing page (web/) - Vite + React 19 with monospace gitlawb typography (sf mono / fira code). - Hero: pill, two-line wordmark "runs anywhere. / uses anything.", copy-to-clipboard install command, github cta. - Six feature rows in hermes-style "title — sentence" format on hairline dividers (any model, real tools, profiles per repo, streaming, gateway routing, editor + server modes). - Install block: same copyable command + three numbered steps. - One-line footer with brand, version, gitlawb link, and license. - Light theme is the default with a no-flash bootstrap script and a ☀ / ☾ toggle persisted to localStorage. - New orange terminal-face logo at 36px in the nav. - Body wash: dual orange radial gradients for warmth on both themes. Root infra - web/ excluded from npm publish via .npmignore (belt-and-suspenders alongside the existing files whitelist). - web/ excluded from docker context (.dockerignore). - web:dev / web:build / web:preview / web:typecheck scripts in package.json that delegate via --cwd web (no root deps added). - web typecheck + build added to the pr-checks workflow. - web/dist/ and web/*.tsbuildinfo ignored. Co-Authored-By: OpenClaude <openclaude@gitlawb.com> * added vercel in .gitignore --------- Co-authored-by: OpenClaude <openclaude@gitlawb.com>
41 lines
2.1 KiB
HTML
41 lines
2.1 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
|
|
<meta name="description" content="openclaude — runs anywhere, uses anything. open source, model-neutral, terminal-first. by gitlawb." />
|
|
<meta name="theme-color" content="#fafaf7" />
|
|
<meta name="color-scheme" content="light dark" />
|
|
<meta property="og:title" content="openclaude — runs anywhere, uses anything" />
|
|
<meta property="og:description" content="not a chatbot wrapper or another ide plugin. an open coding agent that runs in your terminal, talks to any model, and keeps every change reviewable." />
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:site_name" content="openclaude" />
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<meta name="twitter:title" content="openclaude — runs anywhere, uses anything" />
|
|
<meta name="twitter:description" content="not a chatbot wrapper or another ide plugin. open coding agents in your terminal, on any model." />
|
|
<title>openclaude — runs anywhere, uses anything</title>
|
|
<link rel="icon" type="image/png" href="/openclaude.png" />
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&display=swap" />
|
|
<script>
|
|
// Theme bootstrap — runs before paint to prevent flash.
|
|
// Default is light; user toggle is honored via localStorage.
|
|
(function () {
|
|
try {
|
|
var stored = localStorage.getItem('openclaude-theme');
|
|
var theme = stored === 'dark' || stored === 'light' ? stored : 'light';
|
|
document.documentElement.dataset.theme = theme;
|
|
document.documentElement.style.colorScheme = theme;
|
|
} catch (_) {
|
|
document.documentElement.dataset.theme = 'light';
|
|
}
|
|
})();
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
<script type="module" src="/src/main.tsx"></script>
|
|
</body>
|
|
</html>
|