<!doctype html>

<html>

  <head>

    <meta charset="utf-8">

    <title>Navi Preview</title>

    <link rel="stylesheet" href="./assets/index-MRADTruJ.css">

  </head>

  <body>

    <div id="app"></div>


    <!-- Load the original app locally to avoid cross-origin issues -->

    <script type="module" src="./assets/index-DFiH4gGd.js"></script>


    <!-- Copy swapper -->

    <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."],

          ["It produces clear summaries for each developer, team, and project", "Instant clarity for each project, team, and developer"],

          ["Get objective insights about what was accomplished.", "See what really happened and why it matters."],

          ["It generates a private podcast with weekly or monthly updates", "Hear it like a human with a private podcast"],

          ["Listen to your engineering updates on your commute.", "Listen to sprint reviews on your commute instead of booking another meeting."],

          ["No meetings. No guesswork. Just clarity.", "No guesswork. No meetings. Just truth."],

          ["A dashboard you will actually use", "A dashboard you will actually use"],

          ["See real performance and trends in one place. Compare teams and projects. Drill into outcomes, not vanity metrics.", "See performance, progress, and impact in one place. Compare teams and projects. Drill into outcomes, not vanity metrics."],

          ["Built for every level of engineering leadership", "Built for every level of engineering leadership"],

          ["Turn code into business clarity", "Turn code into business clarity"],

          ["Track progress and unblock faster", "Track progress and unblock faster"],

          ["See the ROI of engineering investments", "See the ROI of engineering investments"],

          ["Early Access Available", "Early access available"],

          ["Get back the clarity you had with five developers, now across hundreds", "Get back the clarity you had with five developers, now across hundreds"],

          ["Objective summaries, real performance measurement, benchmarks, and a private podcast.", "Objective insights, real benchmarks, and a private podcast that makes your engineering org make sense again."],

          ["Get Early Access", "Get Early Access"]

        ]);


        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(ms => ms.forEach(r => r.addedNodes.forEach(swapText)))

          .observe(document.body, { childList: true, subtree: true });

      };


      // Give the app a moment to mount before swapping copy

      window.addEventListener("load", () => setTimeout(whenReady, 800));

    </script>

  </body>

</html>