rename: replace all user-facing 'Atlas' references with 'Vibn'

Updated UI text in: project-shell (tab label), AtlasChat (sender name),
FreshIdeaMain, TypeSelector, MigrateSetup, ChatImportSetup, FreshIdeaSetup,
CodeImportSetup, prd/page, build/page, projects/page, deployment/page,
activity/page, layout (page title/description), atlas-chat API route.
Code identifiers (AtlasChat component name, file names) unchanged.

Made-with: Cursor
This commit is contained in:
2026-03-17 16:25:41 -07:00
parent f9f3156d49
commit f47205c473
16 changed files with 25 additions and 25 deletions

View File

@@ -32,7 +32,7 @@ function typeColor(t: string) {
const FILTERS = [
{ id: "all", label: "All" },
{ id: "atlas", label: "Atlas" },
{ id: "atlas", label: "Vibn" },
{ id: "build", label: "Builds" },
{ id: "deploy", label: "Deploys" },
{ id: "user", label: "You" },

View File

@@ -1022,14 +1022,14 @@ function PrdContent({ projectId }: { projectId: string }) {
)}
{!s.isDone && (
<div style={{ marginTop: 5, marginLeft: 32, fontSize: "0.7rem", color: "#c5c0b8" }}>
{s.phaseId ? "Complete this phase in Atlas" : "Generated when PRD is finalized"}
{s.phaseId ? "Complete this phase in Vibn" : "Generated when PRD is finalized"}
</div>
)}
</div>
))}
{doneCount === 0 && (
<p style={{ fontSize: "0.76rem", color: "#b5b0a6", marginTop: 16, textAlign: "center" }}>Continue chatting with Atlas saved phases appear here automatically.</p>
<p style={{ fontSize: "0.76rem", color: "#b5b0a6", marginTop: 16, textAlign: "center" }}>Continue chatting with Vibn saved phases appear here automatically.</p>
)}
</div>
)}

View File

@@ -140,7 +140,7 @@ export default function DeploymentPage() {
<div style={{ padding: "18px 0", textAlign: "center" }}>
<p style={{ fontSize: "0.82rem", color: "#a09a90", marginBottom: 12 }}>
{!hasPRD
? "Complete your PRD with Atlas first, then build and deploy."
? "Complete your PRD with Vibn first, then build and deploy."
: !hasRepo
? "No repository yet — the Architect agent will scaffold one from your PRD."
: "No deployment yet — kick off a build to get a live URL."}

View File

@@ -374,7 +374,7 @@ export default function PRDPage() {
{!s.isDone && (
<div style={{ marginTop: 6, marginLeft: 36, fontSize: "0.72rem", color: "#c5c0b8" }}>
{s.phaseId
? `Complete the ${s.savedPhase ? s.savedPhase.title : "discovery"} phase in Atlas`
? `Complete the ${s.savedPhase ? s.savedPhase.title : "discovery"} phase in Vibn`
: "Will be generated when PRD is finalized"}
</div>
)}
@@ -383,7 +383,7 @@ export default function PRDPage() {
{doneCount === 0 && (
<p style={{ fontSize: "0.78rem", color: "#b5b0a6", marginTop: 20, textAlign: "center" }}>
Continue chatting with Atlas saved phases will appear here automatically.
Continue chatting with Vibn saved phases will appear here automatically.
</p>
)}
</div>

View File

@@ -299,7 +299,7 @@ export default function ProjectsPage() {
No projects yet
</h3>
<p style={{ fontSize: "0.82rem", color: "#a09a90", lineHeight: 1.6, marginBottom: 24 }}>
Tell Atlas what you want to build and it will figure out the rest.
Tell Vibn what you want to build and it will figure out the rest.
</p>
<button
onClick={() => setShowNew(true)}

View File

@@ -92,7 +92,7 @@ Operating principles:
for (const p of phaseRows) {
lines.push(`- ${p.title}: ${p.summary}`);
}
lines.push(`(PRD not yet finalized — Atlas discovery is in progress)`);
lines.push(`(PRD not yet finalized — Vibn discovery is in progress)`);
} else {
lines.push(`\n## Product discovery: not yet started`);
}

View File

@@ -133,7 +133,7 @@ export async function POST(
body: JSON.stringify({
// For init, send the greeting prompt but don't store it as a user message
message: isInit
? "Begin the conversation. Introduce yourself as Atlas and ask what the user is building. Do not acknowledge this as an internal trigger."
? "Begin the conversation. Introduce yourself as Vibn and ask what the user is building. Do not acknowledge this as an internal trigger."
: message,
session_id: sessionId,
history,
@@ -146,7 +146,7 @@ export async function POST(
const text = await res.text();
console.error("[atlas-chat] Agent runner error:", text);
return NextResponse.json(
{ error: "Atlas is unavailable. Please try again." },
{ error: "Vibn is unavailable. Please try again." },
{ status: 502 }
);
}

View File

@@ -24,8 +24,8 @@ const ibmPlexMono = IBM_Plex_Mono({
});
export const metadata: Metadata = {
title: "VIBN — Build with Atlas",
description: "Chat with Atlas to define your product, then let AI build it.",
title: "VIBN — Build with Vibn",
description: "Chat with Vibn to define your product, then let AI build it.",
manifest: "/manifest.json",
appleWebApp: {
capable: true,

View File

@@ -151,7 +151,7 @@ function MessageRow({
marginBottom: 5, textTransform: "uppercase", letterSpacing: "0.04em",
fontFamily: "Outfit, sans-serif",
}}>
{isAtlas ? "Atlas" : "You"}
{isAtlas ? "Vibn" : "You"}
</div>
{/* Content */}
<div style={{
@@ -448,7 +448,7 @@ export function AtlasChat({ projectId }: AtlasChatProps) {
}}>A</div>
<style>{`@keyframes breathe { 0%,100%{transform:scale(1)} 50%{transform:scale(1.08)} }`}</style>
<div style={{ textAlign: "center" }}>
<p style={{ fontSize: "0.88rem", fontWeight: 600, color: "#1a1a1a", marginBottom: 4 }}>Atlas</p>
<p style={{ fontSize: "0.88rem", fontWeight: 600, color: "#1a1a1a", marginBottom: 4 }}>Vibn</p>
<p style={{ fontSize: "0.78rem", color: "#a09a90", maxWidth: 260, lineHeight: 1.5 }}>
Your product strategist. Let&apos;s define what you&apos;re building.
</p>

View File

@@ -23,7 +23,7 @@ interface ProjectShellProps {
}
const SECTIONS = [
{ id: "overview", label: "Atlas", path: "overview" },
{ id: "overview", label: "Vibn", path: "overview" },
{ id: "prd", label: "PRD", path: "prd" },
{ id: "build", label: "Build", path: "build" },
{ id: "growth", label: "Growth", path: "growth" },

View File

@@ -63,7 +63,7 @@ export function ChatImportSetup({ workspace, onClose, onBack }: SetupProps) {
<textarea
value={chatText}
onChange={e => setChatText(e.target.value)}
placeholder={"Paste conversations from ChatGPT, Claude, Gemini, or any AI tool.\n\nAtlas will extract decisions, ideas, open questions, and architecture notes."}
placeholder={"Paste conversations from ChatGPT, Claude, Gemini, or any AI tool.\n\nVibn will extract decisions, ideas, open questions, and architecture notes."}
rows={8}
style={{
width: "100%", padding: "12px 14px", marginBottom: 20,

View File

@@ -89,7 +89,7 @@ export function CodeImportSetup({ workspace, onClose, onBack }: SetupProps) {
/>
<div style={{ fontSize: "0.75rem", color: "#a09a90", marginBottom: 20, lineHeight: 1.5, padding: "12px 14px", background: "#faf8f5", borderRadius: 8, border: "1px solid #f0ece4" }}>
Atlas will clone your repo, read key files, and build a full architecture map tech stack, routes, database, auth, and third-party integrations. Tokens are used only for cloning and are not stored.
Vibn will clone your repo, read key files, and build a full architecture map tech stack, routes, database, auth, and third-party integrations. Tokens are used only for cloning and are not stored.
</div>
<PrimaryButton onClick={handleCreate} disabled={!canCreate} loading={loading}>

View File

@@ -80,11 +80,11 @@ export function FreshIdeaSetup({ workspace, onClose, onBack }: SetupProps) {
/>
<div style={{ fontSize: "0.75rem", color: "#a09a90", marginBottom: 20, lineHeight: 1.5, padding: "12px 14px", background: "#faf8f5", borderRadius: 8, border: "1px solid #f0ece4" }}>
Atlas will guide you through 6 discovery phases Big Picture, Users, Features, Business Model, Screens, and Risks building your product plan as you go.
Vibn will guide you through 6 discovery phases Big Picture, Users, Features, Business Model, Screens, and Risks building your product plan as you go.
</div>
<PrimaryButton onClick={handleCreate} disabled={!canCreate} loading={loading}>
Start with Atlas
Start with Vibn
</PrimaryButton>
</div>
);

View File

@@ -148,7 +148,7 @@ export function MigrateSetup({ workspace, onClose, onBack }: SetupProps) {
</div>
<div style={{ fontSize: "0.75rem", color: "#a09a90", marginBottom: 20, lineHeight: 1.5, padding: "12px 14px", background: "#faf8f5", borderRadius: 8, border: "1px solid #f0ece4" }}>
<strong style={{ color: "#4a2a5a" }}>Non-destructive.</strong> Atlas builds a full audit and migration plan. Your existing product stays live throughout the entire migration process.
<strong style={{ color: "#4a2a5a" }}>Non-destructive.</strong> Vibn builds a full audit and migration plan. Your existing product stays live throughout the entire migration process.
</div>
<PrimaryButton onClick={handleCreate} disabled={!canCreate} loading={loading}>

View File

@@ -21,7 +21,7 @@ const ALL_FLOW_TYPES: {
icon: "✦",
label: "Fresh Idea",
tagline: "Start from scratch",
desc: "Talk through your idea with Atlas. We'll explore it together and shape it into a full product plan.",
desc: "Talk through your idea with Vibn. We'll explore it together and shape it into a full product plan.",
accent: "#4a3728",
},
{
@@ -29,7 +29,7 @@ const ALL_FLOW_TYPES: {
icon: "⌁",
label: "Import Chats",
tagline: "You've been thinking",
desc: "Paste conversations from ChatGPT or Claude. Atlas extracts your decisions, ideas, and open questions.",
desc: "Paste conversations from ChatGPT or Claude. Vibn extracts your decisions, ideas, and open questions.",
accent: "#2e5a4a",
},
{
@@ -37,7 +37,7 @@ const ALL_FLOW_TYPES: {
icon: "⌘",
label: "Import Code",
tagline: "Already have a repo",
desc: "Point Atlas at your GitHub or Bitbucket repo. We'll map your stack and show what's missing.",
desc: "Point Vibn at your GitHub or Bitbucket repo. We'll map your stack and show what's missing.",
accent: "#1a3a5c",
hidden: true,
},
@@ -46,7 +46,7 @@ const ALL_FLOW_TYPES: {
icon: "⇢",
label: "Migrate Product",
tagline: "Move an existing product",
desc: "Bring your live product into the VIBN infrastructure. Atlas builds a safe, phased migration plan.",
desc: "Bring your live product into the VIBN infrastructure. Vibn builds a safe, phased migration plan.",
accent: "#4a2a5a",
hidden: true,
},

View File

@@ -273,7 +273,7 @@ export function FreshIdeaMain({ projectId, projectName }: FreshIdeaMainProps) {
<div style={{ fontSize: "0.65rem", color: "#a09a90", marginTop: 2, lineHeight: 1.3 }}>
{phase === null
? "Generated when PRD is finalized"
: "Complete this phase in Atlas"
: "Complete this phase in Vibn"
}
</div>
)}