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:
@@ -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" },
|
||||
|
||||
@@ -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>
|
||||
)}
|
||||
|
||||
@@ -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."}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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)}
|
||||
|
||||
@@ -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`);
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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's define what you're building.
|
||||
</p>
|
||||
|
||||
@@ -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" },
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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}>
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
|
||||
@@ -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}>
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
|
||||
@@ -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>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user