<!DOCTYPE html>
<html lang="en" id="home">

<meta http-equiv="content-type" content="text/html;charset=utf-8" />

<head>
  <title>OneUptime | One Complete Observability platform. </title>
  <meta name="description"
    content="OneUptime monitors websites, API's, and servers and alerts your team if something goes wrong. It also keeps your customers updated about any downtime.">
  <%- include('head', {
    enableGoogleTagManager: typeof enableGoogleTagManager !== 'undefined' ? enableGoogleTagManager : false
}) -%>

</head>

<body>
  <%- include('nav') -%>


    <div class="relative isolate overflow-hidden bg-white">
      <div class="py-24 sm:py-32">
        <div class="mx-auto max-w-7xl px-6 lg:px-8">
          <div class="mx-auto max-w-2xl text-center">
            <div class="mt-3 mb-3 flex text-center mx-auto justify-center">
              <!-- Place this tag where you want the button to render. -->
              <a class="github-button mt-3" href="https://github.com/oneuptime/oneuptime"
                data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large"
                data-show-count="true" aria-label="Star oneuptime/oneuptime on GitHub">Star</a>
              <a href="https://github.com/oneuptime/oneuptime" target="_blank" class="inline-flex space-x-6 ml-3 -mt-1">
                <!-- <span class="rounded-full bg-indigo-600/10 px-3 py-1 text-sm font-semibold leading-6 text-indigo-600 ring-1 ring-inset ring-indigo-600/10"
                  >Open Source</span> -->
                <div class="inline-flex items-center space-x-2 text-sm font-medium leading-6 text-gray-600">
                  <div title="star-us-on-github">Check us out on GitHub</div>
                  <!-- Heroicon name: mini/chevron-right -->
                  <svg class="h-5 w-5 text-gray-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"
                    fill="currentColor" aria-hidden="true">
                    <path fill-rule="evenodd"
                      d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z"
                      clip-rule="evenodd" />
                  </svg>
                </div>
              </a>
            </div>
            <h1 class="text-4xl font-bold tracking-tight text-gray-900 sm:text-6xl">Build reliable software.</h1>
            <p class="mt-6 text-xl sm:text-2xl leading-8 text-gray-600">Monitor, Observe, Debug, Resolve. Everything you
              need to build reliable software in one open source platform.</p>
            <div class="mt-10 flex items-center justify-center gap-x-6">
              <a href="/accounts/register"
                class="rounded-md bg-indigo-600 px-3.5 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600">Get
                started</a>
              <a href="/enterprise/demo" class="text-sm font-semibold leading-6 text-gray-900">Request Demo <span
                  aria-hidden="true">→</span></a>
            </div>
          </div>
          <!-- <div class=" mt-16 flow-root sm:mt-24">
              <div class="relative -m-2 rounded-xl bg-gray-900/5 p-2 ring-1 ring-inset ring-gray-900/10 lg:-m-4 lg:rounded-2xl lg:p-4">
                <img src="https://tailwindui.com/img/component-images/project-app-screenshot.png" alt="App screenshot" width="2432" height="1442" class="rounded-md shadow-2xl ring-1 ring-gray-900/10">
              </div>
            </div> -->
        </div>
      </div>
      <div
        class="absolute inset-x-0 top-[calc(100%-13rem)] -z-10 transform-gpu overflow-hidden blur-3xl sm:top-[calc(100%-30rem)]"
        aria-hidden="true">
        <div
          class="relative left-[calc(50%+3rem)] aspect-[1155/678] w-[36.125rem] -translate-x-1/2 bg-gradient-to-tr from-[#ff80b5] to-[#9089fc] opacity-30 sm:left-[calc(50%+36rem)] sm:w-[72.1875rem]"
          style="clip-path: polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)">
        </div>
      </div>
    </div>

    <%- include('logo-roll') -%>

      <%- include('./Partials/product-tabs') -%>

      <%- include('./Partials/reviews') -%>

          <%- include('features-table') -%>

            <%- include('./Partials/copilot') -%>

            

              <%- include('./Partials/enterprise-ready') -%>

              <%- include('./Partials/proudly-open-source') -%> 

            

              
                





                  <!-- Place this tag in your head or just before your close body tag. -->
                  <script async defer src="https://buttons.github.io/buttons.js"></script>

                    <%- include('cta') -%>
                      <%- include('footer') -%>

                        <%- include('./Partials/video-script') -%>

  <!-- PWA Service Worker Registration -->
  <script>
    // Service Worker Registration for PWA
    if ('serviceWorker' in navigator) {
      window.addEventListener('load', function() {
        navigator.serviceWorker.register('/service-worker.js', {
          scope: '/'
        }).then(function(registration) {
          console.log('OneUptime Home PWA: Service Worker registered successfully', registration.scope);
        }).catch(function(error) {
          console.log('OneUptime Home PWA: Service Worker registration failed', error);
        });
      });
    }

    // Mobile redirect helper - if JS is available and we detect mobile, redirect to dashboard
    if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile Safari|Mobile/i.test(navigator.userAgent)) {
      // Small delay to avoid redirect loops and let server handle first
      setTimeout(() => {
        if (window.location.pathname === '/' && !window.location.search.includes('no-mobile-redirect')) {
          window.location.href = '/dashboard';
        }
      }, 100);
    }
  </script>

</body>

</html>