<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Navi Preview</title>
<link rel="stylesheet" href="https://navigara.com/assets/index-MRADTruJ.css" crossorigin>
</head>
<body>
<div id="app"></div>
<script type="module" src="https://navigara.com/assets/index-DFiH4gGd.js" crossorigin></script>
<script>
const whenReady = () => {
const swaps = new Map([
["Meet Navi, your AI Developer", "Meet Navi — Your AI Engineer Who Sees What You Can’t"],
["You lost visibility as your team scaled. Navi gives it back.", "Scaling should bring momentum, not mystery. Navi brings it back."],
["Navi reads your code, measures performance, and explains what really happens inside your engineering team.", "It reads your codebase, listens to commits, and turns engineering noise into signal you can act on."],
["You can't improve what you're not measuring", "You can’t improve what you can’t see"],
["For the first time, Navigara makes developer performance measurable and understandable.", "For the first time, Navigara makes developer performance measurable, explainable, and useful."],
["Benchmark developers, teams, and projects", "Benchmark teams, projects, and people"],
["Compare performance across your organization with objective, code-based metrics.", "See who’s shipping, optimizing, and collaborating effectively, objectively."],
["Track progress across sprints, months, and releases", "Track velocity and quality over time"],
["See how your teams evolve over time with clear trend analysis.", "Spot slowdowns before they become bottlenecks."],
["Turn engineering data into clear, objective summaries you can act on", "Turn code into clarity you can act on"],
["Get actionable insights, not vanity metrics.", "Get actionable stories, not vanity dashboards."],
["No meetings. No guesswork. Just clarity.", "No guesswork. No meetings. Just truth."]
]);
function swapText(node) {
if (node.nodeType === Node.TEXT_NODE) {
const t = node.nodeValue.trim();
if (t && swaps.has(t)) node.nodeValue = node.nodeValue.replace(t, swaps.get(t));
} else node.childNodes.forEach(swapText);
}
swapText(document.body);
new MutationObserver(m => m.forEach(r => r.addedNodes.forEach(swapText))).observe(document.body, { childList: true, subtree: true });
};
window.addEventListener("load", () => setTimeout(whenReady, 800));
</script>
</body>
</html>