CINXE.COM
Leading the Way in APNT Innovation
<!DOCTYPE html><html lang="en" class="h-full"> <head><meta charset="UTF-8"><meta name="description" content="Assured positioning, navigation and timing (APNT) solutions that mitigate global positioning system (GPS)/global navigation satellite systems (GNSS) vulnerabilities and ensure continuous access to accurate location, data and time synchronization."><meta name="viewport" content="width=device-width"><title>Leading the Way in APNT Innovation</title><!-- Google tag (gtag.js) --><script async src="https://www.googletagmanager.com/gtag/js?id=G-JY3FDZ7JH5"></script><script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'G-JY3FDZ7JH5'); </script><link rel="stylesheet" href="/_astro/about.BBqZb9W9.css"> <style>#form-embed[data-astro-cid-uw5kdbxl]{opacity:0;transform:translateY(20%);transition:opacity 1s ease-in-out,transform 1s ease-in-out}#form-embed[data-astro-cid-uw5kdbxl].opacity-100{opacity:1;transform:translateY(0)} </style><script type="module">const e=document.getElementById("back-btn");document.referrer.includes(window.location.origin)||e?.setAttribute("href","/"); </script> <script>!(function(w,p,f,c){if(!window.crossOriginIsolated && !navigator.serviceWorker) return;c=w[p]=Object.assign(w[p]||{},{"lib":"/~partytown/","debug":false});c[f]=(c[f]||[])})(window,'partytown','forward');/* Partytown 0.10.2 - MIT builder.io */ const t={preserveBehavior:!1},e=e=>{if("string"==typeof e)return[e,t];const[n,r=t]=e;return[n,{...t,...r}]},n=Object.freeze((t=>{const e=new Set;let n=[];do{Object.getOwnPropertyNames(n).forEach((t=>{"function"==typeof n[t]&&e.add(t)}))}while((n=Object.getPrototypeOf(n))!==Object.prototype);return Array.from(e)})());!function(t,r,o,i,a,s,c,d,l,p,u=t,f){function h(){f||(f=1,"/"==(c=(s.lib||"/~partytown/")+(s.debug?"debug/":""))[0]&&(l=r.querySelectorAll('script[type="text/partytown"]'),i!=t?i.dispatchEvent(new CustomEvent("pt1",{detail:t})):(d=setTimeout(v,1e4),r.addEventListener("pt0",w),a?y(1):o.serviceWorker?o.serviceWorker.register(c+(s.swPath||"partytown-sw.js"),{scope:c}).then((function(t){t.active?y():t.installing&&t.installing.addEventListener("statechange",(function(t){"activated"==t.target.state&&y()}))}),console.error):v())))}function y(e){p=r.createElement(e?"script":"iframe"),t._pttab=Date.now(),e||(p.style.display="block",p.style.width="0",p.style.height="0",p.style.border="0",p.style.visibility="hidden",p.setAttribute("aria-hidden",!0)),p.src=c+"partytown-"+(e?"atomics.js?v=0.10.2":"sandbox-sw.html?"+t._pttab),r.querySelector(s.sandboxParent||"body").appendChild(p)}function v(n,o){for(w(),i==t&&(s.forward||[]).map((function(n){const[r]=e(n);delete t[r.split(".")[0]]})),n=0;n<l.length;n++)(o=r.createElement("script")).innerHTML=l[n].innerHTML,o.nonce=s.nonce,r.head.appendChild(o);p&&p.parentNode.removeChild(p)}function w(){clearTimeout(d)}s=t.partytown||{},i==t&&(s.forward||[]).map((function(r){const[o,{preserveBehavior:i}]=e(r);u=t,o.split(".").map((function(e,r,o){var a;u=u[o[r]]=r+1<o.length?u[o[r]]||(a=o[r+1],n.includes(a)?[]:{}):(()=>{let e=null;if(i){const{methodOrProperty:n,thisObject:r}=((t,e)=>{let n=t;for(let t=0;t<e.length-1;t+=1)n=n[e[t]];return{thisObject:n,methodOrProperty:e.length>0?n[e[e.length-1]]:void 0}})(t,o);"function"==typeof n&&(e=(...t)=>n.apply(r,...t))}return function(){let n;return e&&(n=e(arguments)),(t._ptf=t._ptf||[]).push(o,arguments),n}})()}))})),"complete"==r.readyState?h():(t.addEventListener("DOMContentLoaded",h),t.addEventListener("load",h))}(window,document,navigator,top,window.crossOriginIsolated);;(e=>{e.addEventListener("astro:before-swap",e=>{let r=document.body.querySelector("iframe[src*='/~partytown/']");if(r)e.newDocument.body.append(r)})})(document);</script></head> <body class="h-full"> <!-- Video Background --> <div class="fixed inset-0 z-0 min-h-screen"> <video class="min-w-full min-h-full object-cover object-top" src="/solutions-bg.mp4" autoplay loop muted></video> </div> <!-- White overlay --> <div class="fixed inset-0 z-0 overflow-hidden min-w-full min-h-screen bg-white/[0.9]"></div> <!-- Blue overlay --> <div class="fixed inset-0 z-0 overflow-hidden min-w-full min-h-screen bg-blue/[0.35]"></div> <!-- Content --> <div class="relative z-20 min-h-screen"> <style>astro-island,astro-slot,astro-static-slot{display:contents}</style><script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event("astro:load"));})();;(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!="symbol"?o+"":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t)},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let c=this.querySelectorAll("astro-slot"),n={},h=this.querySelectorAll("template[data-astro-template]");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("name")||"default"]=r.innerHTML)}let p;try{p=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(r){let s=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(s+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${s}`,this.getAttribute("props"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),c=this.getAttribute("client");if(Astro[c]===void 0){window.addEventListener(`astro:${c}`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute("renderer-url"),[h,{default:p}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),u=this.getAttribute("component-export")||"default";if(!u.includes("."))this.Component=h[u];else{this.Component=h;for(let f of u.split("."))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",y)}})();</script><astro-island uid="Z1s0QC" prefix="r0" component-url="/_astro/Header.BFtiJg9O.js" component-export="default" renderer-url="/_astro/client.BIGLHmRd.js" props="{}" ssr="" client="load" opts="{"name":"Header","value":true}" await-children=""><header class="h-[140px] relative"><div class="wrapper flex justify-between items-center gap-6"><div><img src="/_astro/Header-Icon.7jai5ljQ.svg" alt="NAL Research" class="h-[120px] md:h-[140px]"/></div><button class="lg:hidden block text-white self-start z-20 pt-[20px]"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-8 h-8"><path stroke-linecap="round" stroke-linejoin="round" d="M4 6h16M4 12h16m-16 6h16"></path></svg></button></div></header><!--astro:end--></astro-island> <main class="pb-[150px] min-h-full"> <section id="initial-content" class="flex flex-col justify-between w-full" data-astro-cid-kqty5qjk> <div class="wrapper pt-12 w-full" data-astro-cid-kqty5qjk> <span class="subheading" data-astro-cid-kqty5qjk>Leading the Way in APNT Innovation</span> <h1 class="mb-8 mt-2 w-full xl:w-[90%] 2xl:w-[70%]" data-astro-cid-kqty5qjk>Unlock the power of APNT</h1> <div class="w-full xl:w-[90%] 2xl:w-[70%] pb-[170px] 2xl:pb-0" data-astro-cid-kqty5qjk> <div id="blue-box" class="bg-blue p-8 lg:p-12 lg:pb-8 lg:min-h-[507px]" data-astro-cid-uw5kdbxl> <p class="text-white mb-8" data-astro-cid-uw5kdbxl>Let us know how we can help.</p> <div id="form-embed" data-astro-cid-uw5kdbxl> <script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/embed/v2.js"></script> <script> hbspt.forms.create({ region: 'na1', portalId: '9322431', formId: '132ad9b7-d8a0-4b54-86d9-eef32ba2b24c', }); </script> <!-- <iframe data-tally-src="https://tally.so/embed/3jLzgx?alignLeft=1&hideTitle=1&transparentBackground=1&dynamicHeight=1" loading="eager" width="100%" height="100" title="Contact form "></iframe> --> </div> </div> </div> </div> </section> </main> <div class="fixed bottom-0 w-full" data-astro-cid-sz7xmlte> <a id="back-btn" href="javascript:history.go(-1)" class="left-12 top-[40%] z-10 opacity-25 hidden xl:block xl:fixed" data-astro-cid-sz7xmlte> <svg width="40" height="69" viewBox="0 0 40 69" fill="none" xmlns="http://www.w3.org/2000/svg"><path opacity="1" d="M1.67373 38.4474C-0.557914 36.2087 -0.557914 32.573 1.67373 30.3343L30.2388 1.67883C32.4704 -0.559875 36.0946 -0.559875 38.3263 1.67883C40.5579 3.91754 40.5579 7.55321 38.3263 9.79192L13.796 34.3998L38.3084 59.0077C40.5401 61.2464 40.5401 64.8821 38.3084 67.1208C36.0768 69.3595 32.4526 69.3595 30.2209 67.1208L1.65588 38.4653L1.67373 38.4474Z" fill="#248DC2"></path></svg> <span class="sr-only" data-astro-cid-sz7xmlte>Previous Page</span> </a> <a class="hidden xl:block xl:fixed right-12 top-[40%] z-10 opacity-25" data-astro-cid-sz7xmlte> <svg width="40" height="69" viewBox="0 0 40 69" fill="none" xmlns="http://www.w3.org/2000/svg"><path opacity="1" d="M38.3263 30.3524C40.5579 32.5911 40.5579 36.2268 38.3263 38.4655L9.76121 67.121C7.52957 69.3597 3.90538 69.3597 1.67373 67.121C-0.557911 64.8823 -0.557911 61.2466 1.67373 59.0079L26.204 34.4L1.69159 9.79211C-0.540058 7.5534 -0.540058 3.91774 1.69159 1.67903C3.92323 -0.559677 7.54742 -0.559677 9.77907 1.67903L38.3441 30.3345L38.3263 30.3524Z" fill="#248DC2"></path></svg> <span class="sr-only" data-astro-cid-sz7xmlte></span> </a> <div class="flex flex-col" data-astro-cid-sz7xmlte> <footer id="footer" class="footer-content pb-8 relative pt-[25vh] pt-[5vh]" data-astro-cid-sz7xmlte> <!-- Footer Background --> <div id="footer-bg" class="bg-navy/[0.5] absolute inset-0 w-full h-full slide-up" data-astro-cid-sz7xmlte></div> <!-- Desktop Nav --> <nav class="hidden lg:flex relative justify-center text-sm gap-16" data-astro-cid-sz7xmlte> <astro-island uid="Z1jg9lW" prefix="r3" component-url="/_astro/NavLinks.7rEFfAZh.js" component-export="default" renderer-url="/_astro/client.BIGLHmRd.js" props="{"navProp":[1,[[0,{"title":[0,"Innovative"],"href":[0,"/"]}],[0,{"title":[0,"Vital"],"href":[0,"/vital"]}],[0,{"title":[0,"Industries"],"href":[0,"/industries"]}],[0,{"title":[0,"Advantage"],"href":[0,"/advantage"]}],[0,{"title":[0,"Solutions"],"href":[0,"/solutions"]}],[0,{"title":[0,"About"],"href":[0,"/about"]}],[0,{"title":[0,"Contact"],"href":[0,"/contact"]}]]],"data-astro-cid-sz7xmlte":[0,true]}" ssr="" client="load" opts="{"name":"NavLinks","value":true}" await-children=""><a href="/" class="relative transition-colors min-w-fit delay-150 hover:delay-[0ms] -my-2 -mx-3 px-3 py-4"><span class="relative z-10 uppercase">Innovative</span></a><a href="/vital" class="relative transition-colors min-w-fit delay-150 hover:delay-[0ms] -my-2 -mx-3 px-3 py-4"><span class="relative z-10 uppercase">Vital</span></a><a href="/industries" class="relative transition-colors min-w-fit delay-150 hover:delay-[0ms] -my-2 -mx-3 px-3 py-4"><span class="relative z-10 uppercase">Industries</span></a><a href="/advantage" class="relative transition-colors min-w-fit delay-150 hover:delay-[0ms] -my-2 -mx-3 px-3 py-4"><span class="relative z-10 uppercase">Advantage</span></a><a href="/solutions" class="relative transition-colors min-w-fit delay-150 hover:delay-[0ms] -my-2 -mx-3 px-3 py-4"><span class="relative z-10 uppercase">Solutions</span></a><a href="/about" class="relative transition-colors min-w-fit delay-150 hover:delay-[0ms] -my-2 -mx-3 px-3 py-4"><span class="relative z-10 uppercase">About</span></a><a href="/contact" class="relative transition-colors min-w-fit delay-150 hover:delay-[0ms] -my-2 -mx-3 px-3 py-4"><span class="relative z-10 uppercase">Contact</span></a><!--astro:end--></astro-island> </nav> <!-- Mobile Footer Nav --> <nav class="flex lg:hidden justify-between text-base px-8 font-light uppercase font-roboto-condensed" data-astro-cid-sz7xmlte> <a id="back-btn" href="javascript:history.go(-1)" class="flex gap-2 hover:text-lime" data-astro-cid-sz7xmlte> <span data-astro-cid-sz7xmlte> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor" class="w-6" data-astro-cid-sz7xmlte> <path strokeLinecap="round" strokeLinejoin="round" d="M15.75 19.5 8.25 12l7.5-7.5" data-astro-cid-sz7xmlte></path> </svg> </span> <span class="" data-astro-cid-sz7xmlte>Previous Page</span> </a> <a class="flex gap-2 hover:text-lime" data-astro-cid-sz7xmlte> <span class="" data-astro-cid-sz7xmlte> </span> <span data-astro-cid-sz7xmlte> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor" class="w-6" data-astro-cid-sz7xmlte> <path strokeLinecap="round" strokeLinejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" data-astro-cid-sz7xmlte></path> </svg> </span> </a> </nav> </footer> <nav class="bg-navy py-4 px-4 flex flex-col sm:flex-row justify-between items-center text-white text-sm font-roboto-condensed gap-4 sm:gap-0 z-30" data-astro-cid-sz7xmlte> <!-- Copyright --> <p data-astro-cid-sz7xmlte>漏 NAL Research, 2024</p> <!-- Links & Socials --> <div class="flex flex-col sm:flex-row gap-4 items-center" data-astro-cid-sz7xmlte> <!-- NAL --> <a href="https://www.nalresearch.com/" target="_blank" class="hover:text-lime" data-astro-cid-sz7xmlte>NAL Research</a> <!-- BSN --> <a href="https://blueskynetwork.com/" target="_blank" class="hover:text-lime" data-astro-cid-sz7xmlte>Blue Sky Network</a> <!-- Socials --> <div class="flex flex-row gap-4" data-astro-cid-sz7xmlte> <!-- LinkedIn --> <a href="https://www.linkedin.com/company/nal-research-corp/" target="_blank" class="hover:text-lime" data-astro-cid-sz7xmlte><span data-astro-cid-sz7xmlte> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" viewBox="0 0 24 24" data-astro-cid-sz7xmlte> <path d="M22.23 0H1.77C.791 0 0 .771 0 1.72v20.56C0 23.229.792 24 1.77 24h20.46c.979 0 1.77-.771 1.77-1.72V1.72C24 .771 23.208 0 22.23 0zM7.12 20.452H3.565V9.043H7.12v11.409zM5.342 7.688a2.07 2.07 0 1 1 0-4.14 2.07 2.07 0 0 1 0 4.14zM20.454 20.452h-3.552V14.97c0-1.307-.024-2.99-1.822-2.99-1.825 0-2.104 1.428-2.104 2.9v5.572h-3.554V9.043h3.41v1.557h.049c.475-.9 1.634-1.85 3.364-1.85 3.599 0 4.266 2.367 4.266 5.447v6.255z" data-astro-cid-sz7xmlte></path> </svg> </span><span class="sr-only" data-astro-cid-sz7xmlte>LinkedIn</span></a> <!-- X / Twitter --> <a href="https://twitter.com/NALresearch" target="_blank" class="hover:text-lime" data-astro-cid-sz7xmlte><span data-astro-cid-sz7xmlte><!--?xml version="1.0" ?--> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 1200 1227" fill="currentColor" data-astro-cid-sz7xmlte><g clip-path="url(#clip0_1_2)" data-astro-cid-sz7xmlte><path d="M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z" fill="currentColor" data-astro-cid-sz7xmlte></path></g><defs data-astro-cid-sz7xmlte><clipPath id="clip0_1_2" data-astro-cid-sz7xmlte><rect width="1200" height="1227" fill="white" data-astro-cid-sz7xmlte></rect></clipPath></defs></svg> </span><span class="sr-only" data-astro-cid-sz7xmlte>Twitter</span></a> </div> </div> </nav> </div> </div> </div> </body></html> <script> document.addEventListener('DOMContentLoaded', function () { setTimeout(function () { document.getElementById('form-embed').classList.add('opacity-100'); }, 100); }); var d = document, w = 'https://tally.so/widgets/embed.js', v = function () { 'undefined' != typeof Tally ? Tally.loadEmbeds() : d .querySelectorAll('iframe[data-tally-src]:not([src])') .forEach(function (e) { e.src = e.dataset.tallySrc; }); }; if ('undefined' != typeof Tally) v(); else if (d.querySelector('script[src="' + w + '"]') == null) { var s = d.createElement('script'); (s.src = w), (s.onload = v), (s.onerror = v), d.body.appendChild(s); } </script>