Skip to content

Commit faca612

Browse files
authored
Merge pull request #50 from ruslanmv/dev-v0.3.5.40
Account creation feature
2 parents 758b87a + 5cb19d9 commit faca612

6 files changed

Lines changed: 67 additions & 23 deletions

File tree

docs/index.html

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
<meta charset="utf-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1" />
66
<title>GitPilot — The first open-source multi-agent AI coding assistant.</title>
7-
<meta name="description" content="GitPilot deploys four specialized AI agents (Explorer, Planner, Coder, Reviewer) that collaborate on every coding task. They read your repo, plan safe changes, write code, run tests, and wait for your approval. Open source, any LLM, free with Ollama." />
7+
<meta name="description" content="GitPilot orchestrates specialized AI agents in configurable topologies (routing, ReAct + subagents, task pipelines). They read your repo, plan safe changes, write code, run tests, and wait for your approval. Open source, any LLM, free with Ollama." />
88
<meta name="theme-color" content="#1C1C1F" />
99

1010
<!-- Open Graph -->
1111
<meta property="og:title" content="GitPilot — Multi-Agent AI Coding Assistant" />
12-
<meta property="og:description" content="Four specialized AI agents collaborate on every task. Not a chatbot — a team. Open source, any LLM, you approve every change." />
12+
<meta property="og:description" content="Specialized AI agents collaborate on every task in configurable topologies. Not a chatbot — a team. Open source, any LLM, you approve every change." />
1313
<meta property="og:type" content="website" />
1414
<meta property="og:url" content="https://ruslanmv.github.io/gitpilot/" />
1515
<meta property="og:image" content="./logo.svg" />
@@ -58,8 +58,8 @@ <h1 class="hero__title">
5858

5959
<p class="hero__sub">
6060
Most AI coding tools are a single model guessing at your codebase.
61-
GitPilot deploys <strong>four specialized agents</strong> &mdash; Explorer, Planner, Coder, Reviewer &mdash;
62-
that collaborate on every task. They read your repo, draft a plan, write the code, run your tests, and
61+
GitPilot orchestrates <strong>specialized agents</strong> &mdash; Explorer, Planner, Coder, Reviewer and more &mdash;
62+
in configurable topologies that collaborate on every task. They read your repo, draft a plan, write the code, run your tests, and
6363
<strong>wait for your approval</strong> before touching a single file.
6464
Any LLM. Free and local with Ollama. Enterprise-ready.
6565
</p>
@@ -112,7 +112,7 @@ <h1 class="hero__title">
112112
<header class="section__head">
113113
<span class="eyebrow">Why multi-agent matters</span>
114114
<h2>A single chatbot guesses. A team of agents delivers.</h2>
115-
<p class="section__sub">Four specialized AI agents share context, divide work, and check each other &mdash; the same pattern elite engineering teams use, automated at machine speed.</p>
115+
<p class="section__sub">Specialized AI agents share context, divide work, and check each other &mdash; the same pattern elite engineering teams use, automated at machine speed.</p>
116116
</header>
117117

118118
<ul class="features">
@@ -172,7 +172,7 @@ <h3>Local-first &amp; private</h3>
172172
<div class="container">
173173
<header class="section__head">
174174
<span class="eyebrow">The multi-agent pipeline</span>
175-
<h2>Four agents. One mission. You stay in command.</h2>
175+
<h2>A team of agents. One mission. You stay in command.</h2>
176176
<p class="section__sub">Each agent is a specialist. Together they do what no single model can: understand your repo deeply, plan safely, execute precisely, and catch their own mistakes.</p>
177177
</header>
178178

@@ -212,15 +212,22 @@ <h2>Up and running in under a minute.</h2>
212212

213213
<div class="tabs" data-tabs>
214214
<div class="tabs__list" role="tablist" aria-label="Install options">
215-
<button class="tabs__tab is-active" role="tab" aria-selected="true" data-tab="pypi">Python / CLI</button>
215+
<button class="tabs__tab is-active" role="tab" aria-selected="true" data-tab="web">Web</button>
216+
<button class="tabs__tab" role="tab" aria-selected="false" data-tab="pypi">Python / CLI</button>
216217
<button class="tabs__tab" role="tab" aria-selected="false" data-tab="vscode">VS Code</button>
217218
<button class="tabs__tab" role="tab" aria-selected="false" data-tab="docker">Docker</button>
218219
<button class="tabs__tab" role="tab" aria-selected="false" data-tab="source">From source</button>
219220
</div>
220221

221222
<div class="tabs__panels">
222-
<div class="tabs__panel is-active" role="tabpanel" data-panel="pypi">
223-
<p class="tabs__note">Fastest path. Python 3.11 or 3.12.</p>
223+
<div class="tabs__panel is-active" role="tabpanel" data-panel="web">
224+
<p class="tabs__note">Zero install &mdash; nothing to set up. Just open the hosted app.</p>
225+
<p><a class="btn btn--primary" href="https://gitpilot.ruslanmv.com" rel="noopener">Open the web app &rarr;</a></p>
226+
<p class="tabs__hint">Runs in your browser at <a href="https://gitpilot.ruslanmv.com" rel="noopener">gitpilot.ruslanmv.com</a> &mdash; same sessions, settings and approvals as the CLI and VS Code. Nothing to install.</p>
227+
</div>
228+
229+
<div class="tabs__panel" role="tabpanel" data-panel="pypi" hidden>
230+
<p class="tabs__note">Fastest local path. Python 3.11 or 3.12.</p>
224231
<div class="code" data-copy>
225232
<pre><code>pip install gitcopilot
226233
gitpilot serve</code></pre>
@@ -291,7 +298,7 @@ <h2>Bring your own model.</h2>
291298
<div class="container cta__inner">
292299
<div>
293300
<h2>Stop chatting with a chatbot. Start working with a team of agents.</h2>
294-
<p>Open source. Apache 2.0. Four agents, any LLM, you approve every change. Your repo, your rules.</p>
301+
<p>Open source. Apache 2.0. A team of agents, any LLM, you approve every change. Your repo, your rules.</p>
295302
</div>
296303
<div class="cta__actions">
297304
<a class="btn btn--primary" href="#quickstart">Install GitPilot</a>

frontend/components/AuthPage.jsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,9 +221,10 @@ export default function AuthPage({ onAuthenticated, backendReady = false }) {
221221
if (view === "github") {
222222
return (
223223
<div className="gp-auth">
224+
<a className="gp-home" href="/">← Back to home</a>
224225
<div className="gp-auth-card">
225226
<button className="gp-back" onClick={goEmail}>← Back to sign in</button>
226-
<div className="gp-auth-logo">GP</div>
227+
<a className="gp-auth-logo" href="/" aria-label="Back to GitPilot home">GP</a>
227228

228229
{ghPhase === "connecting" && (
229230
<>
@@ -271,11 +272,12 @@ export default function AuthPage({ onAuthenticated, backendReady = false }) {
271272
// ── Email / password card (sign in + create account share this shell) ──
272273
return (
273274
<div className="gp-auth">
275+
<a className="gp-home" href="/">← Back to home</a>
274276
<form className="gp-auth-card" onSubmit={submit}>
275277
{mode === "signup" && (
276278
<button type="button" className="gp-back" onClick={() => { setMode("signin"); setNote(null); }}>← Back to sign in</button>
277279
)}
278-
<div className="gp-auth-logo">GP</div>
280+
<a className="gp-auth-logo" href="/" aria-label="Back to GitPilot home">GP</a>
279281
{mode === "signin" ? (
280282
<>
281283
<h2>GitPilot Enterprise</h2>

frontend/components/LandingPage.jsx

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -320,13 +320,25 @@ function PreviewCarousel() {
320320
}
321321

322322
export default function LandingPage() {
323+
// The app shell sets `body { overflow: hidden }` for the fixed workspace
324+
// layout, which freezes mouse-wheel scrolling on this public page. Allow the
325+
// page to scroll while the landing is mounted; restore on unmount.
326+
useEffect(() => {
327+
const prevBody = document.body.style.overflow;
328+
const prevHtml = document.documentElement.style.overflow;
329+
document.body.style.overflow = "auto";
330+
document.documentElement.style.overflow = "auto";
331+
return () => {
332+
document.body.style.overflow = prevBody;
333+
document.documentElement.style.overflow = prevHtml;
334+
};
335+
}, []);
336+
323337
return (
324338
<div className="gp-landing">
325-
<div className="gp-wrap">
326-
{/* above-the-fold: navbar + hero + capabilities occupy one viewport */}
327-
<div className="gp-fold">
328-
{/* nav */}
329-
<nav className="gp-nav">
339+
{/* sticky top bar — keeps brand/home reachable from anywhere on the page */}
340+
<header className="gp-topbar">
341+
<nav className="gp-nav gp-wrap">
330342
<a className="gp-brand" href="/">
331343
<span className="gp-logo">GP</span>
332344
<span>
@@ -346,7 +358,11 @@ export default function LandingPage() {
346358
<a className="gp-btn gp-btn-primary" href="/auth?mode=signup">Get started</a>
347359
</div>
348360
</nav>
361+
</header>
349362

363+
<div className="gp-wrap">
364+
{/* above-the-fold: hero + capabilities occupy one viewport */}
365+
<div className="gp-fold">
350366
{/* hero — vertically centered in the remaining fold space */}
351367
<div className="gp-fold-main">
352368
<header className="gp-hero">

frontend/components/auth.css

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,19 @@
2020
}
2121
.gp-auth-logo {
2222
width: 64px; height: 64px; border-radius: 16px; margin: 0 auto 22px; display: grid; place-items: center;
23-
font-weight: 800; font-size: 22px; color: var(--o);
23+
font-weight: 800; font-size: 22px; color: var(--o); text-decoration: none;
2424
background: linear-gradient(150deg, rgba(255,90,43,.22), rgba(255,90,43,.08));
25-
border: 1px solid rgba(255,90,43,.25);
25+
border: 1px solid rgba(255,90,43,.25); transition: filter .15s, transform .15s;
2626
}
27+
a.gp-auth-logo:hover { filter: brightness(1.12); transform: translateY(-1px); }
28+
29+
/* subtle "back to home" affordance on the dedicated auth page */
30+
.gp-home {
31+
position: fixed; top: 18px; left: 20px; z-index: 5;
32+
display: inline-flex; align-items: center; gap: 6px;
33+
font-size: 13px; color: var(--mut); text-decoration: none; opacity: .72;
34+
}
35+
.gp-home:hover { opacity: 1; color: var(--tx); }
2736
.gp-auth h2 { font-size: 26px; font-weight: 750; margin: 0 0 12px; letter-spacing: -0.02em; }
2837
.gp-auth .lead { color: var(--mut); font-size: 14.5px; line-height: 1.5; margin: 0 0 26px; }
2938

frontend/components/landing.css

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,19 @@
2424
.gp-landing * { box-sizing: border-box; }
2525
.gp-wrap { max-width: 1160px; margin: 0 auto; padding: 0 28px; }
2626

27+
/* --- sticky top bar --- */
28+
.gp-topbar {
29+
position: sticky; top: 0; z-index: 60;
30+
background: rgba(10, 10, 12, 0.72);
31+
backdrop-filter: saturate(150%) blur(12px);
32+
-webkit-backdrop-filter: saturate(150%) blur(12px);
33+
border-bottom: 1px solid rgba(255, 255, 255, 0.06);
34+
}
35+
2736
/* --- nav --- */
2837
.gp-nav {
2938
display: flex; align-items: center; justify-content: space-between;
30-
height: 78px;
39+
height: 72px;
3140
}
3241
.gp-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
3342
.gp-logo {
@@ -81,8 +90,9 @@
8190
.gp-trust span { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: var(--gp-faint); }
8291
.gp-trust svg { width: 15px; height: 15px; color: var(--gp-orange); }
8392

84-
/* --- above-the-fold container: nav + hero + capabilities = one viewport --- */
85-
.gp-fold { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
93+
/* --- above-the-fold container: hero + capabilities fill the viewport
94+
(minus the 72px sticky top bar) so the next section stays below the fold --- */
95+
.gp-fold { min-height: calc(100vh - 72px); min-height: calc(100dvh - 72px); display: flex; flex-direction: column; }
8696
.gp-fold-main { flex: 1 1 auto; display: flex; align-items: center; }
8797
.gp-fold-main .gp-hero { width: 100%; padding: 24px 0; }
8898
.gp-fold .gp-llm-sec { padding: 44px 0 46px; }

vercel.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
"installCommand": "npm install",
55
"framework": "vite",
66
"rewrites": [
7-
{ "source": "/((?!assets/|favicon|robots|sitemap|og-image|site\\.webmanifest|api/).*)", "destination": "/index.html" }
7+
{ "source": "/(.*)", "destination": "/index.html" }
88
]
99
}

0 commit comments

Comments
 (0)