-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
1 lines (1 loc) · 39.4 KB
/
index.html
File metadata and controls
1 lines (1 loc) · 39.4 KB
1
<!DOCTYPE html><html class="2xl:text-[20px]" dir="ltr" lang="en"><head><meta charset="UTF-8"><meta content="width=device-width,initial-scale=1" name="viewport"><link href="/sitemap-index.xml" rel="sitemap"><link href="/_astro/favicon-32x32.BHh_3RWq.png" rel="icon" sizes="32x32" type="image/png"><link href="/_astro/favicon-16x16.Ds8JX4KL.png" rel="icon" sizes="16x16" type="image/png"><link href="/_astro/favicon._c7GseZs.ico" rel="shortcut icon"><link href="/_astro/apple-touch-icon.BVK7qmWd.png" rel="apple-touch-icon" sizes="180x180"><style>:root{--aw-font-sans:'Inter Variable';--aw-font-serif:'Inter Variable';--aw-font-heading:'Inter Variable';--aw-color-primary:rgb(1 97 239);--aw-color-secondary:rgb(1 84 207);--aw-color-accent:rgb(109 40 217);--aw-color-text-heading:rgb(0 0 0);--aw-color-text-default:rgb(16 16 16);--aw-color-text-muted:rgb(16 16 16 / 66%);--aw-color-bg-page:rgb(255 255 255);--aw-color-bg-page-dark:rgb(3 6 32)}.dark{--aw-font-sans:'Inter Variable';--aw-font-serif:'Inter Variable';--aw-font-heading:'Inter Variable';--aw-color-primary:rgb(1 97 239);--aw-color-secondary:rgb(1 84 207);--aw-color-accent:rgb(109 40 217);--aw-color-text-heading:rgb(247, 248, 248);--aw-color-text-default:rgb(229 236 246);--aw-color-text-muted:rgb(229 236 246 / 66%);--aw-color-bg-page:rgb(3 6 32)}</style><script>!function(){const e="system";function t(e){"dark"===e?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark");const t=document.querySelectorAll("[data-aw-toggle-color-scheme] > input");t&&t.length&&t.forEach((t=>{t.checked="dark"!==e}))}e&&e.endsWith(":only")||(localStorage.theme,0)?t(e.replace(":only","")):"dark"===localStorage.theme||!("theme"in localStorage)&&window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):t("light")}()</script><title>EllanTech — Engineering Consulting with Mobile Excellence</title><meta content="EllanTech is an engineering consulting firm helping teams ship faster, adopt AI workflows safely, and improve reliability and performance with deep mobile expertise." name="description"><meta content="index,follow" name="robots"><link href="https://ellantech.com" rel="canonical"><meta content="EllanTech — Engineering Consulting with Mobile Excellence" property="og:title"><meta content="EllanTech is an engineering consulting firm helping teams ship faster, adopt AI workflows safely, and improve reliability and performance with deep mobile expertise." property="og:description"><meta content="https://ellantech.com" property="og:url"><meta content="website" property="og:type"><meta content="https://ellantech.com/_astro/default.CZ816Hke_2bosb5.jpg" property="og:image"><meta content="1200" property="og:image:width"><meta content="628" property="og:image:height"><meta content="en" property="og:locale"><meta content="EllanTech" property="og:site_name"><meta content="summary_large_image" name="twitter:card"><meta content="true" name="astro-view-transitions-enabled"><meta content="swap" name="astro-view-transitions-fallback"><script src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.DZnDNxNb.js" type="module"></script><link href="/_astro/privacy.quevD89L.css" rel="stylesheet"></head><body class="antialiased bg-page text-default tracking-tight"><header class="w-full mx-auto border-b border-gray-50/0 ease-in-out flex-none sticky top-0 transition-[opacity] z-40" data-aw-sticky-header="true" id="header"><div class="absolute inset-0"></div><div class="relative mx-auto md:px-6 text-default max-w-7xl md:grid md:grid-cols-3 md:items-center px-3 py-3 w-full"><div class="flex justify-between"><a class="flex items-center" href="/"><span class="flex items-center"><img alt="" aria-hidden="true" class="h-10 w-10 dark:brightness-0 dark:invert md:h-9 md:w-9 object-contain" decoding="async" height="310" loading="eager" src="/_astro/ellantech-logo.9E8P8aKe.png" width="288"> <span class="font-bold dark:text-white ml-2 text-gray-900 md:text-xl rtl:ml-0 rtl:mr-2 self-center text-2xl whitespace-nowrap">EllanTech</span></span></a><div class="flex items-center md:hidden"><button aria-label="Toggle Menu" class="flex flex-col items-center cursor-pointer group h-12 justify-center rounded w-12" data-aw-toggle-menu type="button"><span class="sr-only">Toggle Menu</span> <span class="transition bg-black dark:bg-white duration-200 ease h-0.5 my-1 opacity-80 rounded-full transform w-6 group-[.expanded]:rotate-45 group-[.expanded]:translate-y-2.5" aria-hidden="true"></span> <span class="transition bg-black dark:bg-white duration-200 ease h-0.5 my-1 opacity-80 rounded-full transform w-6 group-[.expanded]:opacity-0" aria-hidden="true"></span> <span class="transition bg-black dark:bg-white duration-200 ease h-0.5 my-1 opacity-80 rounded-full transform w-6 group-[.expanded]:-rotate-45 group-[.expanded]:-translate-y-2.5" aria-hidden="true"></span></button></div></div><nav aria-label="Main navigation" class="items-center md:w-auto w-full hidden md:flex md:justify-self-center md:mx-5 md:overflow-x-auto md:overflow-y-visible overflow-x-hidden overflow-y-auto text-default"><ul class="flex flex-col md:flex-row font-medium md:justify-center md:self-center md:text-[0.9375rem] md:w-auto text-xl tracking-[0.01rem] w-full"><li class><a class="flex items-center dark:hover:text-white hover:text-link px-4 py-3 whitespace-nowrap" href="/#services">Services</a></li><li class><a class="flex items-center dark:hover:text-white hover:text-link px-4 py-3 whitespace-nowrap" href="/#process">Process</a></li><li class><a class="flex items-center dark:hover:text-white hover:text-link px-4 py-3 whitespace-nowrap" href="/#engagements">Engagements</a></li><li class><a class="flex items-center dark:hover:text-white hover:text-link px-4 py-3 whitespace-nowrap" href="/#faqs">FAQs</a></li><li class><a class="flex items-center dark:hover:text-white hover:text-link px-4 py-3 whitespace-nowrap" href="/#contact">Contact</a></li></ul></nav><div class="items-center md:w-auto w-full hidden md:flex bottom-0 fixed justify-end left-0 md:justify-self-end md:mb-0 md:p-0 md:self-center md:static p-3 rtl:left-auto rtl:right-0"><div class="flex items-center justify-between md:w-auto w-full"><div class="flex"></div></div></div></div></header><main><section class="relative not-prose md:-mt-[76px]"><div class="absolute inset-0 pointer-events-none" aria-hidden="true"></div><div class="relative mx-auto px-4 max-w-7xl sm:px-6"><div class="pointer-events-none md:pt-[76px] pt-0"></div><div class="pb-8 md:pb-8 md:py-20 py-12"><div class="text-center mx-auto max-w-5xl"><p class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 intersect-quarter font-bold dark:text-blue-200 text-base text-secondary tracking-wide uppercase">Consulting Engineering Agency</p><h1 class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 intersect-quarter font-bold dark:text-gray-200 font-heading leading-tighter mb-4 md:text-6xl text-5xl tracking-tighter">We help teams improve <span class="dark:text-white text-accent">delivery speed</span>, reliability, and performance — and adopt AI-oriented SDLC workflows with practical quality guardrails.</h1><div class="max-w-3xl mx-auto"><p class="text-muted text-xl dark:text-slate-300 intersect-once intersect-quarter mb-6 motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0">Turn engineering bottlenecks into momentum<br>Ship faster with senior execution</p><div class="flex flex-col intersect-once intersect-quarter motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 flex-nowrap gap-4 m-auto max-w-xs sm:flex-row sm:justify-center sm:max-w-md"><div class="flex w-full sm:w-auto"><a class="btn-primary" href="mailto:info@ellantech.com?subject=Engineering%20Diagnostic%20Request">Request a diagnostic</a></div><div class="flex w-full sm:w-auto"><a class="btn-secondary" href="mailto:info@ellantech.com?subject=Project%20context%20for%20EllanTech">Tell us what you're building</a></div></div></div></div></div></div></section><section class="relative not-prose scroll-mt-[72px]" id="services"><div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true"><div class="absolute inset-0"></div></div><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 intersect-quarter intersect-no-queue relative mx-auto px-4 lg:py-20 md:px-6 md:py-16 py-12 text-default max-w-7xl"><div class="text-center max-w-3xl mb-8 md:mb-12 md:mx-auto"><h2 class="font-bold font-heading leading-tighter tracking-tighter text-heading md:text-4xl text-3xl">Core services</h2><p class="text-muted text-xl mt-4">Support for teams blocked by mobile performance, delivery, reliability, or AI quality bottlenecks.</p></div><div class="gap-4 grid lg:grid-cols-4 md:gap-6 md:grid-cols-3 sm:gap-y-8 sm:grid-cols-2"><div class="flex flex-col intersect-once intersect-quarter motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 backdrop-blur bg-white border border-[#ffffff29] dark:bg-slate-900 dark:shadow-[0_4px_30px_rgba(0,0,0,0.1)] intersect-no-queue p-6 relative rounded-lg shadow-[0_4px_30px_rgba(0,0,0,0.1)]"><svg class="text-primary h-12 mb-6 w-12" data-icon="tabler:device-mobile" height="1em" width="1em"><symbol id="ai:tabler:device-mobile" viewBox="0 0 24 24"><path d="M6 5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2zm5-1h2m-1 13v.01" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></symbol><use href="#ai:tabler:device-mobile"></use></svg><div class="font-bold text-xl">Mobile Excellence</div><p class="text-muted mt-2">Deep iOS, Android, and React Native expertise across performance, networking, and release quality.</p></div><div class="flex flex-col intersect-once intersect-quarter motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 backdrop-blur bg-white border border-[#ffffff29] dark:bg-slate-900 dark:shadow-[0_4px_30px_rgba(0,0,0,0.1)] intersect-no-queue p-6 relative rounded-lg shadow-[0_4px_30px_rgba(0,0,0,0.1)]"><svg class="text-primary h-12 mb-6 w-12" data-icon="tabler:zoom-scan" height="1em" width="1em"><symbol id="ai:tabler:zoom-scan" viewBox="0 0 24 24"><path d="M4 8V6a2 2 0 0 1 2-2h2M4 16v2a2 2 0 0 0 2 2h2m8-16h2a2 2 0 0 1 2 2v2m-4 12h2a2 2 0 0 0 2-2v-2M8 11a3 3 0 1 0 6 0a3 3 0 0 0-6 0m8 5l-2.5-2.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></symbol><use href="#ai:tabler:zoom-scan"></use></svg><div class="font-bold text-xl">Engineering Diagnostic Sprint</div><p class="text-muted mt-2">Rapid assessment across architecture, delivery, reliability, performance, and team workflow with a concrete action plan.</p></div><div class="flex flex-col intersect-once intersect-quarter motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 backdrop-blur bg-white border border-[#ffffff29] dark:bg-slate-900 dark:shadow-[0_4px_30px_rgba(0,0,0,0.1)] intersect-no-queue p-6 relative rounded-lg shadow-[0_4px_30px_rgba(0,0,0,0.1)]"><svg class="text-primary h-12 mb-6 w-12" data-icon="tabler:git-pull-request" height="1em" width="1em"><symbol id="ai:tabler:git-pull-request" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M4 18a2 2 0 1 0 4 0a2 2 0 1 0-4 0M4 6a2 2 0 1 0 4 0a2 2 0 1 0-4 0m12 12a2 2 0 1 0 4 0a2 2 0 1 0-4 0M6 8v8"/><path d="M11 6h5a2 2 0 0 1 2 2v8"/><path d="m14 9l-3-3l3-3"/></g></symbol><use href="#ai:tabler:git-pull-request"></use></svg><div class="font-bold text-xl">Delivery Acceleration</div><p class="text-muted mt-2">CI/CD optimization, flaky test reduction, and release automation to improve iteration speed.</p></div><div class="flex flex-col intersect-once intersect-quarter motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 backdrop-blur bg-white border border-[#ffffff29] dark:bg-slate-900 dark:shadow-[0_4px_30px_rgba(0,0,0,0.1)] intersect-no-queue p-6 relative rounded-lg shadow-[0_4px_30px_rgba(0,0,0,0.1)]"><svg class="text-primary h-12 mb-6 w-12" data-icon="tabler:shield-check" height="1em" width="1em"><symbol id="ai:tabler:shield-check" viewBox="0 0 24 24"><path d="M11.46 20.846A12 12 0 0 1 3.5 6A12 12 0 0 0 12 3a12 12 0 0 0 8.5 3a12 12 0 0 1-.09 7.06M15 19l2 2l4-4" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></symbol><use href="#ai:tabler:shield-check"></use></svg><div class="font-bold text-xl">AI Workflow Governance</div><p class="text-muted mt-2">Tooling selection, integration planning, and AI-oriented SDLC workflows for PR review, testing, and incident triage so teams adopt AI without regressions.</p></div></div></div></section><section class="relative not-prose scroll-mt-[72px]" id="process"><div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true"><div class="absolute inset-0"></div></div><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 intersect-quarter intersect-no-queue relative mx-auto px-4 lg:py-20 md:px-6 md:py-16 py-12 text-default max-w-5xl"><div class="flex flex-col gap-8 md:gap-12"><div class="w-full md:self-center md:py-4"><div class="rtl:text-right mb-8 md:mb-12 md:mx-auto text-left"><h2 class="font-bold font-heading leading-tighter tracking-tighter text-heading text-3xl lg:text-4xl">How we work</h2><p class="text-muted text-xl mt-4">Simple process, senior ownership, and practical delivery.</p></div><div class><div class="flex intersect-once intersect-quarter motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0"><div class="flex flex-col items-center mr-4 rtl:ml-4 rtl:mr-0"><div><div class="flex items-center justify-center"></div></div><div class="bg-black/10 dark:bg-slate-400/50 h-full w-px"></div></div><div class="pb-8 pt-1"><p class="font-bold text-xl">Discover</p><p class="text-muted mt-2">Align on goals, constraints, and the most important engineering blockers.</p></div></div><div class="flex intersect-once intersect-quarter motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0"><div class="flex flex-col items-center mr-4 rtl:ml-4 rtl:mr-0"><div><div class="flex items-center justify-center"></div></div><div class="bg-black/10 dark:bg-slate-400/50 h-full w-px"></div></div><div class="pb-8 pt-1"><p class="font-bold text-xl">Diagnose</p><p class="text-muted mt-2">Assess CI, release flow, production health, and architecture using real project data.</p></div></div><div class="flex intersect-once intersect-quarter motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0"><div class="flex flex-col items-center mr-4 rtl:ml-4 rtl:mr-0"><div><div class="flex items-center justify-center"></div></div><div class="bg-black/10 dark:bg-slate-400/50 h-full w-px"></div></div><div class="pb-8 pt-1"><p class="font-bold text-xl">Deliver</p><p class="text-muted mt-2">Implement improvements hands-on with your team or as an owned execution stream.</p></div></div><div class="flex intersect-once intersect-quarter motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0"><div class="flex flex-col items-center mr-4 rtl:ml-4 rtl:mr-0"><div><div class="flex items-center justify-center"></div></div></div><div class="pt-1"><p class="font-bold text-xl">Enable</p><p class="text-muted mt-2">Leave playbooks, metrics, and handover artifacts so gains continue after engagement.</p></div></div></div></div></div></div></section><section class="relative not-prose scroll-mt-[72px]" id="engagements"><div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true"><div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div></div><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 intersect-quarter intersect-no-queue relative mx-auto px-4 lg:py-20 md:px-6 md:py-16 py-12 text-default max-w-7xl"><div class="text-center max-w-3xl mb-8 md:mb-12 md:mx-auto"><h2 class="font-bold font-heading leading-tighter tracking-tighter text-heading md:text-4xl text-3xl">Launch engagement options</h2><p class="text-muted text-xl mt-4">Focused engagements aligned with mobile excellence, launch priorities, and practical AI rollout needs.</p></div><div class="gap-4 grid lg:grid-cols-4 md:gap-6 md:grid-cols-3 sm:gap-y-8 sm:grid-cols-2"><div class="flex flex-col intersect-once intersect-quarter motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 backdrop-blur bg-white border border-[#ffffff29] dark:bg-slate-900 dark:shadow-[0_4px_30px_rgba(0,0,0,0.1)] intersect-no-queue p-6 relative rounded-lg shadow-[0_4px_30px_rgba(0,0,0,0.1)]"><svg class="text-primary h-12 mb-6 w-12" data-icon="tabler:device-mobile-code" height="1em" width="1em"><symbol id="ai:tabler:device-mobile-code" viewBox="0 0 24 24"><path d="M11.5 21H8a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8m2 8l2-2l-2-2m-3 0l-2 2l2 2M11 4h2m-1 13v.01" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></symbol><use href="#ai:tabler:device-mobile-code"></use></svg><div class="font-bold text-xl">Mobile Excellence Sprint (2–6 weeks)</div><p class="text-muted mt-2">Targeted mobile performance, networking, and release pipeline improvements.</p></div><div class="flex flex-col intersect-once intersect-quarter motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 backdrop-blur bg-white border border-[#ffffff29] dark:bg-slate-900 dark:shadow-[0_4px_30px_rgba(0,0,0,0.1)] intersect-no-queue p-6 relative rounded-lg shadow-[0_4px_30px_rgba(0,0,0,0.1)]"><svg class="text-primary h-12 mb-6 w-12" data-icon="tabler:stethoscope" height="1em" width="1em"><symbol id="ai:tabler:stethoscope" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M6 4H5a2 2 0 0 0-2 2v3.5h0a5.5 5.5 0 0 0 11 0V6a2 2 0 0 0-2-2h-1"/><path d="M8 15a6 6 0 1 0 12 0v-3m-9-9v2M6 3v2"/><path d="M18 10a2 2 0 1 0 4 0a2 2 0 1 0-4 0"/></g></symbol><use href="#ai:tabler:stethoscope"></use></svg><div class="font-bold text-xl">Diagnostic Sprint (1–2 weeks)</div><p class="text-muted mt-2">Best first step when bottlenecks are unclear and priorities are competing.</p></div><div class="flex flex-col intersect-once intersect-quarter motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 backdrop-blur bg-white border border-[#ffffff29] dark:bg-slate-900 dark:shadow-[0_4px_30px_rgba(0,0,0,0.1)] intersect-no-queue p-6 relative rounded-lg shadow-[0_4px_30px_rgba(0,0,0,0.1)]"><svg class="text-primary h-12 mb-6 w-12" data-icon="tabler:bolt" height="1em" width="1em"><symbol id="ai:tabler:bolt" viewBox="0 0 24 24"><path d="M13 3v7h6l-8 11v-7H5z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></symbol><use href="#ai:tabler:bolt"></use></svg><div class="font-bold text-xl">Delivery Acceleration (2–6 weeks)</div><p class="text-muted mt-2">Ideal for CI/CD stability, release confidence, and developer workflow speed.</p></div><div class="flex flex-col intersect-once intersect-quarter motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 backdrop-blur bg-white border border-[#ffffff29] dark:bg-slate-900 dark:shadow-[0_4px_30px_rgba(0,0,0,0.1)] intersect-no-queue p-6 relative rounded-lg shadow-[0_4px_30px_rgba(0,0,0,0.1)]"><svg class="text-primary h-12 mb-6 w-12" data-icon="tabler:shield-check" height="1em" width="1em" viewBox="0 0 24 24"><use href="#ai:tabler:shield-check"></use></svg><div class="font-bold text-xl">AI Workflow Governance Sprint (2–4 weeks)</div><p class="text-muted mt-2">Define tooling selection, integration plans, and an AI-oriented SDLC for PR review, testing, and incident triage so teams adopt AI without regressions.</p></div></div></div></section><section class="relative not-prose scroll-mt-[72px]" id="outcomes"><div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true"><div class="absolute inset-0"></div></div><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 intersect-quarter intersect-no-queue relative mx-auto px-4 lg:py-20 md:px-6 md:py-16 py-12 text-default max-w-5xl"><div class="text-center max-w-3xl mb-8 md:mb-12 md:mx-auto"><h2 class="font-bold font-heading leading-tighter tracking-tighter text-heading md:text-4xl text-3xl">Outcomes our clients can expect</h2><p class="text-muted text-xl mt-4">Clear, measurable improvements that reduce risk and increase delivery confidence.</p></div><div class="grid sm:grid-cols-2 gap-8 md:gap-y-12 mx-auto"><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0"><div class="flex flex-row max-w-md"><div class="flex justify-center"><svg class="rtl:mr-0 mr-4 rtl:ml-4 bg-primary h-10 md:h-12 md:p-3 md:w-12 p-2 rounded-full text-white w-10" data-icon="tabler:rocket" height="1em" width="1em"><symbol id="ai:tabler:rocket" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M4 13a8 8 0 0 1 7 7a6 6 0 0 0 3-5a9 9 0 0 0 6-8a3 3 0 0 0-3-3a9 9 0 0 0-8 6a6 6 0 0 0-5 3"/><path d="M7 14a6 6 0 0 0-3 6a6 6 0 0 0 6-3m4-8a1 1 0 1 0 2 0a1 1 0 1 0-2 0"/></g></symbol><use href="#ai:tabler:rocket"></use></svg></div><div class="mt-0.5"><h3 class="font-bold text-xl md:text-[1.3rem]">Faster iteration and release confidence</h3><p class="text-muted mt-3">Stabilize pipelines and release workflows so teams can ship predictably.</p></div></div></div><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0"><div class="flex flex-row max-w-md"><div class="flex justify-center"><svg class="rtl:mr-0 mr-4 rtl:ml-4 bg-primary h-10 md:h-12 md:p-3 md:w-12 p-2 rounded-full text-white w-10" data-icon="tabler:activity-heartbeat" height="1em" width="1em"><symbol id="ai:tabler:activity-heartbeat" viewBox="0 0 24 24"><path d="M3 12h4.5L9 6l4 12l2-9l1.5 3H21" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></symbol><use href="#ai:tabler:activity-heartbeat"></use></svg></div><div class="mt-0.5"><h3 class="font-bold text-xl md:text-[1.3rem]">Improved reliability and performance</h3><p class="text-muted mt-3">Address crash, latency, and hard-to-reproduce issues with data-first debugging.</p></div></div></div><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0"><div class="flex flex-row max-w-md"><div class="flex justify-center"><svg class="rtl:mr-0 mr-4 rtl:ml-4 bg-primary h-10 md:h-12 md:p-3 md:w-12 p-2 rounded-full text-white w-10" data-icon="tabler:clipboard-check" height="1em" width="1em"><symbol id="ai:tabler:clipboard-check" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2"/><path d="M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v0a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2m0 9l2 2l4-4"/></g></symbol><use href="#ai:tabler:clipboard-check"></use></svg></div><div class="mt-0.5"><h3 class="font-bold text-xl md:text-[1.3rem]">Clear execution plans for complex initiatives</h3><p class="text-muted mt-3">Prioritized 30/60/90 roadmaps with risks, dependencies, and owners.</p></div></div></div><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0"><div class="flex flex-row max-w-md"><div class="flex justify-center"><svg class="rtl:mr-0 mr-4 rtl:ml-4 bg-primary h-10 md:h-12 md:p-3 md:w-12 p-2 rounded-full text-white w-10" data-icon="tabler:shield-check" height="1em" width="1em" viewBox="0 0 24 24"><use href="#ai:tabler:shield-check"></use></svg></div><div class="mt-0.5"><h3 class="font-bold text-xl md:text-[1.3rem]">Safer AI-oriented SDLC adoption</h3><p class="text-muted mt-3">Introduce AI-oriented SDLC guardrails, code-quality checks, and cost-aware tooling choices without slowing teams down.</p></div></div></div></div></div></section><section class="relative not-prose scroll-mt-[72px]" id="faqs"><div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true"><div class="absolute inset-0"></div></div><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 intersect-quarter intersect-no-queue relative mx-auto px-4 lg:py-20 md:px-6 md:py-16 py-12 text-default max-w-7xl"><div class="text-center max-w-3xl mb-8 md:mb-12 md:mx-auto"><h2 class="font-bold font-heading leading-tighter tracking-tighter text-heading md:text-4xl text-3xl">FAQs</h2></div><div class="grid gap-8 md:gap-y-12 mx-auto gap-y-8 max-w-4xl"><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0"><div class="flex flex-row max-w-none"><div class="flex justify-center"><svg class="rtl:mr-0 flex-shrink-0 h-6 mr-2 mt-1 rtl:ml-2 text-primary w-6" data-icon="tabler:chevrons-right" height="1em" width="1em"><symbol id="ai:tabler:chevrons-right" viewBox="0 0 24 24"><path d="m7 7l5 5l-5 5m6-10l5 5l-5 5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></symbol><use href="#ai:tabler:chevrons-right"></use></svg></div><div class="mt-0.5"><h3 class="font-bold text-xl">Do you provide staff augmentation?</h3><p class="text-muted mt-3">No. We focus on senior ownership and outcome-driven engagements.</p></div></div></div><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0"><div class="flex flex-row max-w-none"><div class="flex justify-center"><svg class="rtl:mr-0 flex-shrink-0 h-6 mr-2 mt-1 rtl:ml-2 text-primary w-6" data-icon="tabler:chevrons-right" height="1em" width="1em" viewBox="0 0 24 24"><use href="#ai:tabler:chevrons-right"></use></svg></div><div class="mt-0.5"><h3 class="font-bold text-xl">What is the best first engagement?</h3><p class="text-muted mt-3">Usually a Diagnostic Sprint, unless the scope and bottleneck are already clear.</p></div></div></div><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0"><div class="flex flex-row max-w-none"><div class="flex justify-center"><svg class="rtl:mr-0 flex-shrink-0 h-6 mr-2 mt-1 rtl:ml-2 text-primary w-6" data-icon="tabler:chevrons-right" height="1em" width="1em" viewBox="0 0 24 24"><use href="#ai:tabler:chevrons-right"></use></svg></div><div class="mt-0.5"><h3 class="font-bold text-xl">Can you work with both product and platform teams?</h3><p class="text-muted mt-3">Yes. We support delivery flow, architecture, reliability, and developer experience.</p></div></div></div><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0"><div class="flex flex-row max-w-none"><div class="flex justify-center"><svg class="rtl:mr-0 flex-shrink-0 h-6 mr-2 mt-1 rtl:ml-2 text-primary w-6" data-icon="tabler:chevrons-right" height="1em" width="1em" viewBox="0 0 24 24"><use href="#ai:tabler:chevrons-right"></use></svg></div><div class="mt-0.5"><h3 class="font-bold text-xl">Can you help with AI workflow governance?</h3><p class="text-muted mt-3">Yes. We help teams define an AI-oriented SDLC with practical guardrails, quality checks, and measurable rollout criteria.</p></div></div></div><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0"><div class="flex flex-row max-w-none"><div class="flex justify-center"><svg class="rtl:mr-0 flex-shrink-0 h-6 mr-2 mt-1 rtl:ml-2 text-primary w-6" data-icon="tabler:chevrons-right" height="1em" width="1em" viewBox="0 0 24 24"><use href="#ai:tabler:chevrons-right"></use></svg></div><div class="mt-0.5"><h3 class="font-bold text-xl">What AI-related services do you provide?</h3><p class="text-muted mt-3">Tooling selection, AI-oriented SDLC design, integration planning, PR review support, test generation strategy, and incident/bug triage workflows.</p></div></div></div><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0"><div class="flex flex-row max-w-none"><div class="flex justify-center"><svg class="rtl:mr-0 flex-shrink-0 h-6 mr-2 mt-1 rtl:ml-2 text-primary w-6" data-icon="tabler:chevrons-right" height="1em" width="1em" viewBox="0 0 24 24"><use href="#ai:tabler:chevrons-right"></use></svg></div><div class="mt-0.5"><h3 class="font-bold text-xl">Where are you based?</h3><p class="text-muted mt-3">EllanTech Limited is based in the Isle of Man and works with distributed teams.</p></div></div></div></div></div></section><section class="relative not-prose scroll-mt-[72px]" id="contact"><div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true"><div class="absolute inset-0"></div></div><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 intersect-quarter intersect-no-queue relative mx-auto px-4 lg:py-20 md:px-6 md:py-16 py-12 text-default max-w-6xl"><div class="text-center max-w-3xl dark:border dark:border-slate-600 dark:shadow-none mx-auto p-6 rounded-md shadow-xl"><div class="text-center md:mx-auto mb-0 md:mb-0"><h2 class="font-bold font-heading leading-tighter tracking-tighter text-heading md:text-4xl mb-4 text-4xl">Ready to get unstuck?</h2><p class="text-muted text-xl mt-4 dark:text-slate-400">Send your context and we will propose a clear, low-friction next step.</p></div><div class="flex flex-col gap-4 flex-nowrap m-auto max-w-xs sm:flex-row sm:justify-center sm:max-w-md mt-6"><div class="flex w-full sm:w-auto"><a class="w-full sm:mb-0 btn-primary" href="mailto:info@ellantech.com?subject=Engineering%20Diagnostic%20Request">Request a diagnostic</a></div><div class="flex w-full sm:w-auto"><a class="w-full sm:mb-0 btn-secondary" href="mailto:info@ellantech.com?subject=Project%20context%20for%20EllanTech">Tell us what you're building</a></div></div></div></div></section></main><footer class="relative not-prose border-gray-200 border-t dark:border-slate-800"><div class="absolute inset-0 pointer-events-none dark:bg-dark" aria-hidden="true"></div><div class="intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 intersect-quarter intersect-no-queue relative mx-auto px-4 max-w-7xl dark:text-slate-300 sm:px-6"><div class="gap-4 grid gap-y-8 grid-cols-12 md:py-12 py-8 sm:gap-8"><div class="col-span-12 lg:col-span-4"><div class="mb-2"><a class="items-center inline-flex" href="/"><img alt="" aria-hidden="true" class="dark:brightness-0 dark:invert object-contain h-8 md:h-7 md:w-7 w-8" decoding="async" height="310" loading="lazy" src="/_astro/ellantech-logo.9E8P8aKe.png" width="288"> <span class="font-bold text-xl dark:text-white ml-2 text-gray-900">EllanTech</span></a></div><p class="text-muted text-sm max-w-sm mb-4">Senior engineering consulting for mobile excellence, faster delivery, and safer AI workflows.</p><div class="flex flex-wrap gap-1 text-muted text-sm"><a class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition" href="mailto:info@ellantech.com">Email us</a> · <a class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition" href="https://x.com/ellantech" rel="noopener noreferrer" target="_blank">Follow us on X</a> · <a class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition" href="https://github.com/ellantech" rel="noopener noreferrer" target="_blank">GitHub</a></div></div><div class="col-span-6 lg:col-span-2 md:col-span-3"><div class="mb-2 dark:text-gray-300 font-medium">Company</div><ul class="text-sm"><li class="mb-2"><a class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition" href="/#services">Services</a></li><li class="mb-2"><a class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition" href="/#engagements">Engagements</a></li><li class="mb-2"><a class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition" href="/#faqs">FAQs</a></li></ul></div></div><div class="flex flex-col gap-4 md:flex-row md:items-center md:justify-between md:py-8 py-6"><ul class="flex flex-wrap gap-2 md:mb-0 md:order-1"><li><a class="text-muted dark:text-gray-400 dark:focus:ring-gray-700 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 hover:bg-gray-100 inline-flex items-center p-2.5 rounded-lg text-sm" href="mailto:info@ellantech.com" aria-label="Email EllanTech"><svg class="h-5 w-5" data-icon="tabler:mail" height="1em" width="1em"><symbol id="ai:tabler:mail" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M3 7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><path d="m3 7l9 6l9-6"/></g></symbol><use href="#ai:tabler:mail"></use></svg> <span class="sr-only">Email</span></a></li><li><a class="text-muted dark:text-gray-400 dark:focus:ring-gray-700 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 hover:bg-gray-100 inline-flex items-center p-2.5 rounded-lg text-sm" href="https://x.com/ellantech" rel="noopener noreferrer" target="_blank" aria-label="EllanTech on X"><svg class="h-5 w-5" data-icon="tabler:brand-x" height="1em" width="1em"><symbol id="ai:tabler:brand-x" viewBox="0 0 24 24"><path d="m4 4l11.733 16H20L8.267 4zm0 16l6.768-6.768m2.46-2.46L20 4" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></symbol><use href="#ai:tabler:brand-x"></use></svg> <span class="sr-only">X</span></a></li><li><a class="text-muted dark:text-gray-400 dark:focus:ring-gray-700 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 hover:bg-gray-100 inline-flex items-center p-2.5 rounded-lg text-sm" href="https://github.com/ellantech" rel="noopener noreferrer" target="_blank" aria-label="EllanTech on GitHub"><svg class="h-5 w-5" data-icon="tabler:brand-github" height="1em" width="1em"><symbol id="ai:tabler:brand-github" viewBox="0 0 24 24"><path d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2c2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2a4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6c-.6.6-.6 1.2-.5 2V21" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></symbol><use href="#ai:tabler:brand-github"></use></svg> <span class="sr-only">GitHub</span></a></li></ul><div class="dark:text-muted text-sm">© EllanTech Limited. All rights reserved.</div></div></div></footer><script>!function(){const e="system";if(window.basic_script)return;function t(e){"dark"===e?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}window.basic_script=!0;const a=function(){e&&e.endsWith(":only")||(localStorage.theme,0)?t(e.replace(":only","")):"dark"===localStorage.theme||!("theme"in localStorage)&&window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):t("light")};function d(e,t,a){const d="string"==typeof e?document.querySelectorAll(e):e;d&&d.length&&d.forEach((e=>{e.addEventListener(t,(t=>a(t,e)),!1)}))}a();const o=function(){let t=window.scrollY,a=!0;d("#header nav","click",(function(){document.querySelector("[data-aw-toggle-menu]")?.classList.remove("expanded"),document.body.classList.remove("overflow-hidden"),document.getElementById("header")?.classList.remove("h-screen"),document.getElementById("header")?.classList.remove("expanded"),document.getElementById("header")?.classList.remove("bg-page"),document.querySelector("#header nav")?.classList.add("hidden"),document.querySelector("#header > div > div:last-child")?.classList.add("hidden")})),d("[data-aw-toggle-menu]","click",(function(e,t){t.classList.toggle("expanded"),document.body.classList.toggle("overflow-hidden"),document.getElementById("header")?.classList.toggle("h-screen"),document.getElementById("header")?.classList.toggle("expanded"),document.getElementById("header")?.classList.toggle("bg-page"),document.querySelector("#header nav")?.classList.toggle("hidden"),document.querySelector("#header > div > div:last-child")?.classList.toggle("hidden")})),d("[data-aw-toggle-color-scheme]","click",(function(){e.endsWith(":only")||(Observer.removeAnimationDelay(),document.documentElement.classList.toggle("dark"),localStorage.theme=document.documentElement.classList.contains("dark")?"dark":"light")})),d("[data-aw-social-share]","click",(function(e,t){const a=t.getAttribute("data-aw-social-share"),d=encodeURIComponent(t.getAttribute("data-aw-url")),o=encodeURIComponent(t.getAttribute("data-aw-text"));let n;switch(a){case"facebook":n=`https://www.facebook.com/sharer.php?u=${d}`;break;case"twitter":n=`https://twitter.com/intent/tweet?url=${d}&text=${o}`;break;case"linkedin":n=`https://www.linkedin.com/shareArticle?mini=true&url=${d}&title=${o}`;break;case"whatsapp":n=`https://wa.me/?text=${o}%20${d}`;break;case"mail":n=`mailto:?subject=%22${o}%22&body=${o}%20${d}`;break;default:return}const c=document.createElement("a");c.target="_blank",c.href=n,c.click()}));function o(){const e=document.querySelector("#header[data-aw-sticky-header]");e&&(t>60&&!e.classList.contains("scroll")?e.classList.add("scroll"):t<=60&&e.classList.contains("scroll")&&e.classList.remove("scroll"),a=!1)}window.matchMedia("(max-width: 767px)").addEventListener("change",(function(){document.querySelector("[data-aw-toggle-menu]")?.classList.remove("expanded"),document.body.classList.remove("overflow-hidden"),document.getElementById("header")?.classList.remove("h-screen"),document.getElementById("header")?.classList.remove("expanded"),document.getElementById("header")?.classList.remove("bg-page"),document.querySelector("#header nav")?.classList.add("hidden"),document.querySelector("#header > div > div:last-child")?.classList.add("hidden")})),o(),d([document],"scroll",(function(){t=window.scrollY,a||(window.requestAnimationFrame((()=>{o()})),a=!0)}))},n=function(){document.documentElement.classList.add("motion-safe:scroll-smooth");const e=document.querySelector("[data-aw-toggle-menu]");e&&e.classList.remove("expanded"),document.body.classList.remove("overflow-hidden"),document.getElementById("header")?.classList.remove("h-screen"),document.getElementById("header")?.classList.remove("expanded"),document.querySelector("#header nav")?.classList.add("hidden")};window.onload=o,window.onpageshow=n,document.addEventListener("astro:after-swap",(()=>{a(),o(),n()}))}()</script><script>const Observer={observer:null,delayBetweenAnimations:100,animationCounter:0,elements:null,start(){this.elements=Array.from(document.querySelectorAll(['[class*=" intersect:"]','[class*=":intersect:"]','[class^="intersect:"]','[class="intersect"]','[class*=" intersect "]','[class^="intersect "]','[class$=" intersect"]'].join(",")));this.elements.forEach((t=>{var e;t.setAttribute("no-intersect",""),t._intersectionThreshold=(e=t).classList.contains("intersect-full")?.99:e.classList.contains("intersect-half")?.5:e.classList.contains("intersect-quarter")?.25:0}));this.observer=new IntersectionObserver((t=>{t.forEach((t=>{requestAnimationFrame((()=>{const e=t.target,s=t.intersectionRatio,n=e._intersectionThreshold;if(e.classList.contains("intersect-no-queue"))t.isIntersecting?(e.removeAttribute("no-intersect"),e.classList.contains("intersect-once")&&this.observer.unobserve(e)):e.setAttribute("no-intersect","");else if(s>=n){if(!e.hasAttribute("data-animated")){e.removeAttribute("no-intersect"),e.setAttribute("data-animated","true");const t=this.animationCounter*this.delayBetweenAnimations;this.animationCounter++,e.style.transitionDelay=`${t}ms`,e.style.animationDelay=`${t}ms`,e.classList.contains("intersect-once")&&this.observer.unobserve(e)}}else e.setAttribute("no-intersect",""),e.removeAttribute("data-animated"),e.style.transitionDelay="",e.style.animationDelay="",this.animationCounter=0}))}))}).bind(this),{threshold:[0,.25,.5,.99]}),this.elements.forEach((t=>{this.observer.observe(t)}))},removeAnimationDelay(){this.elements.forEach((t=>{"true"===t.getAttribute("data-animated")&&(t.style.transitionDelay="",t.style.animationDelay="")}))}};Observer.start(),document.addEventListener("astro:after-swap",(()=>{Observer.start()}))</script></body></html>