Help
RSS
API
Feed
Maltego
Contact
Domain > aerialnest.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-12-09
18.164.154.100
(
ClassC
)
2026-02-16
108.157.142.55
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyServer: CloudFrontDate: Mon, 16 Feb 2026 17:41:24 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveLocation: https://aerialnest.com/X-Cache: Redirect from cloudfrontVia: 1.1 fd2382b29f3607836ef700a58a02d290.cloudfront.net (CloudFront)X-Amz-Cf-Pop: MCI50-P1X-Amz-Cf-Id: ArjRumHwIoJOvRsYMxbg1dOFVuz4Qn-pVan_iQCG4Kw8GWrSuyUIsQ html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>CloudFront/center>/body>/html>
Port 443
HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 39945Connection: keep-aliveLast-Modified: Wed, 08 Oct 2025 01:50:04 GMTServer: AmazonS3Date: Mon, 16 Feb 2026 17:16:57 GMTETag: 061f99f6dfe9384a05b6b17e42e3b0d6X-Cache: Hit from cloudfrontVia: 1.1 b0a64e9cc5e3b7be7927374083991434.cloudfront.net (CloudFront)X-Amz-Cf-Pop: MCI50-P1X-Amz-Cf-Id: N3RH7ad37--FfbjrHhYYSQM_RMQlXxiOv-AQTyx_9x7KX39EJ5XYCgAge: 1468 !DOCTYPE html>html langen>head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1.0> !-- Primary Meta Tags --> title>Aerial Nest - Secure Family Document Management | Coming Spring 2025/title> meta nametitle contentAerial Nest - Secure Family Document Management | Coming Spring 2025> meta namedescription contentAerial Nest helps families organize, protect, and share important documents with bank-level security. Join our waitlist for early access to the platform launching Spring 2025.> meta namekeywords contentfamily document management, secure document storage, legacy planning, family document hub, digital document organizer, estate planning documents, family planning software> meta nameauthor contentAerial Nest> meta namerobots contentindex, follow> link relcanonical hrefhttps://aerialnest.com/> !-- Open Graph / Facebook --> meta propertyog:type contentwebsite> meta propertyog:url contenthttps://aerialnest.com/> meta propertyog:title contentAerial Nest - Secure Family Document Management> meta propertyog:description contentLike birds carefully building their nest, we help you create a place where your familys future can flourish. Join our waitlist for early access launching Spring 2025.> meta propertyog:image contenthttps://aerialnest.com/og-image.jpg> meta propertyog:site_name contentAerial Nest> meta propertyog:locale contenten_US> !-- Twitter --> meta propertytwitter:card contentsummary_large_image> meta propertytwitter:url contenthttps://aerialnest.com/> meta propertytwitter:title contentAerial Nest - Secure Family Document Management> meta propertytwitter:description contentLike birds carefully building their nest, we help you create a place where your familys future can flourish. Join our waitlist for early access.> meta propertytwitter:image contenthttps://aerialnest.com/og-image.jpg> !-- Favicon --> link relicon typeimage/svg+xml hreffavicon.svg> link relapple-touch-icon hreffavicon.svg> !-- Security Meta Tags --> meta http-equivX-Content-Type-Options contentnosniff> meta http-equivX-Frame-Options contentDENY> meta http-equivX-XSS-Protection content1; modeblock> meta namereferrer contentstrict-origin-when-cross-origin> meta http-equivPermissions-Policy contentgeolocation(), microphone(), camera()> !-- Structured Data (JSON-LD) --> script typeapplication/ld+json> { @context: https://schema.org, @type: SoftwareApplication, name: Aerial Nest, applicationCategory: BusinessApplication, operatingSystem: Web, offers: { @type: Offer, availability: https://schema.org/PreOrder, availabilityStarts: 2025-03-01 }, description: Secure family document management platform with bank-level encryption, designed for thoughtful legacy planning and compassionate family coordination., url: https://aerialnest.com, logo: https://aerialnest.com/favicon.svg, sameAs: https://www.instagram.com/weareaerialnest/, https://www.tiktok.com/@weareaerialnest, https://www.facebook.com/weareaerialnest, https://www.linkedin.com/company/aerialnest, https://www.youtube.com/@weareaerialnest , aggregateRating: { @type: AggregateRating, ratingValue: 5, ratingCount: 1, bestRating: 5, worstRating: 1 }, provider: { @type: Organization, name: Aerial Nest, url: https://aerialnest.com, logo: https://aerialnest.com/favicon.svg, sameAs: https://www.instagram.com/weareaerialnest/, https://www.tiktok.com/@weareaerialnest, https://www.facebook.com/weareaerialnest, https://www.linkedin.com/company/aerialnest, https://www.youtube.com/@weareaerialnest , contactPoint: { @type: ContactPoint, email: hello@aerialnest.com, contactType: Customer Service } } } /script> !-- Google Fonts --> link relpreconnect hrefhttps://fonts.googleapis.com> link relpreconnect hrefhttps://fonts.gstatic.com crossorigin> link hrefhttps://fonts.googleapis.com/css2?familyCrimson+Text:ital,wght@0,400;0,600;0,700;1,400&familyNunito+Sans:ital,wght@0,200..1000;1,200..1000&displayswap relstylesheet> style> /* Global CSS Design System */ @custom-variant dark (&:is(.dark *)); :root { --font-size: 16px; --background: #F0EEDC; --foreground: #2D4A45; --card: #ffffff; --card-foreground: #2D4A45; --popover: #ffffff; --popover-foreground: #2D4A45; --primary: #4A6B61; --primary-foreground: #F0EEDC; --secondary: #E8F0ED; --secondary-foreground: #2D4A45; --muted: #A3B9A2; --muted-foreground: #5A7B71; --accent: #B7D4A3; --accent-foreground: #2D4A45; --destructive: #d4183d; --destructive-foreground: #ffffff; --border: rgba(163, 185, 162, 0.3); --input: transparent; --input-background: #ffffff; --switch-background: #A3B9A2; --font-weight-medium: 500; --font-weight-normal: 400; --ring: #4A6B61; --chart-1: oklch(0.646 0.222 41.116); --chart-2: oklch(0.6 0.118 184.704); --chart-3: oklch(0.398 0.07 227.392); --chart-4: oklch(0.828 0.189 84.429); --chart-5: oklch(0.769 0.188 70.08); --radius: 0.625rem; --sidebar: oklch(0.985 0 0); --sidebar-foreground: oklch(0.145 0 0); --sidebar-primary: #4A6B61; --sidebar-primary-foreground: #F0EEDC; --sidebar-accent: #E8F0ED; --sidebar-accent-foreground: #2D4A45; --sidebar-border: rgba(163, 185, 162, 0.3); --sidebar-ring: #4A6B61; /* Aerial Nest Brand Colors */ --deep-forest: #4A6B61; --ancient-pine: #2D4A45; --sage-grove: #5A7B71; --misty-leaf-green: #B7D4A3; --filtered-sunlight: #F0EEDC; --water-reflection-teal: #3B6C63; --soft-sage: #A3B9A2; --gentle-breeze: #E8F0ED; } .dark { --background: oklch(0.145 0 0); --foreground: oklch(0.985 0 0); --card: oklch(0.145 0 0); --card-foreground: oklch(0.985 0 0); --popover: oklch(0.145 0 0); --popover-foreground: oklch(0.985 0 0); --primary: oklch(0.985 0 0); --primary-foreground: oklch(0.205 0 0); --secondary: oklch(0.269 0 0); --secondary-foreground: oklch(0.985 0 0); --muted: oklch(0.269 0 0); --muted-foreground: oklch(0.708 0 0); --accent: oklch(0.269 0 0); --accent-foreground: oklch(0.985 0 0); --destructive: oklch(0.396 0.141 25.723); --destructive-foreground: oklch(0.637 0.237 25.331); --border: oklch(0.269 0 0); --input: oklch(0.269 0 0); --ring: oklch(0.439 0 0); --font-weight-medium: 500; --font-weight-normal: 400; --chart-1: oklch(0.488 0.243 264.376); --chart-2: oklch(0.696 0.17 162.48); --chart-3: oklch(0.769 0.188 70.08); --chart-4: oklch(0.627 0.265 303.9); --chart-5: oklch(0.645 0.246 16.439); --sidebar: oklch(0.205 0 0); --sidebar-foreground: oklch(0.985 0 0); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.269 0 0); --sidebar-accent-foreground: oklch(0.985 0 0); --sidebar-border: oklch(0.269 0 0); --sidebar-ring: oklch(0.439 0 0); } @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --color-popover: var(--popover); --color-popover-foreground: var(--popover-foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-secondary: var(--secondary); --color-secondary-foreground: var(--secondary-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-destructive: var(--destructive); --color-destructive-foreground: var(--destructive-foreground); --color-border: var(--border); --color-input: var(--input); --color-input-background: var(--input-background); --color-switch-background: var(--switch-background); --color-ring: var(--ring); --color-chart-1: var(--chart-1); --color-chart-2: var(--chart-2); --color-chart-3: var(--chart-3); --color-chart-4: var(--chart-4); --color-chart-5: var(--chart-5); --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --color-sidebar: var(--sidebar); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-border: var(--sidebar-border); --color-sidebar-ring: var(--sidebar-ring); } @layer base { * { border-color: var(--border); outline-color: var(--ring); outline-opacity: 0.5; } body { background-color: var(--background); color: var(--foreground); } } /* Base typography */ @layer base { :where(:not(:has(class* text-), :not(:has(class^text-)))) { h1 { font-family: Crimson Text, serif; font-size: 2rem; font-weight: 600; line-height: 1.4; } h2 { font-family: Crimson Text, serif; font-size: 1.5rem; font-weight: 600; line-height: 1.4; } h3 { font-family: Crimson Text, serif; font-size: 1.25rem; font-weight: 600; line-height: 1.4; } h4 { font-family: Nunito Sans, sans-serif; font-size: 1rem; font-weight: var(--font-weight-medium); line-height: 1.5; } p { font-family: Nunito Sans, sans-serif; font-size: 1rem; font-weight: var(--font-weight-normal); line-height: 1.6; } label { font-family: Nunito Sans, sans-serif; font-size: 1rem; font-weight: var(--font-weight-medium); line-height: 1.5; } button { font-family: Nunito Sans, sans-serif; font-size: 1rem; font-weight: var(--font-weight-medium); line-height: 1.5; } input { font-family: Nunito Sans, sans-serif; font-size: 1rem; font-weight: var(--font-weight-normal); line-height: 1.5; } } } html { font-size: var(--font-size); } /* Custom slow pulse animation for coming soon badge */ @keyframes slow-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } } .animate-slow-pulse { animation: slow-pulse 3s ease-in-out infinite; } /* Legacy styles - now using CSS variables */ * { margin: 0; padding: 0; box-sizing: border-box; } body { min-height: 100vh; display: flex; flex-direction: column; position: relative; /* Gradient background from Figma design */ background: linear-gradient(to bottom right, var(--filtered-sunlight), var(--gentle-breeze), var(--misty-leaf-green)); } /* Background image overlay */ body::before { content: ; position: fixed; inset: 0; opacity: 0.2; background-size: cover; background-position: center; background-repeat: no-repeat; background-image: url(https://d1fmwg5et12531.cloudfront.net/forest-background.jpg); z-index: 0; pointer-events: none; } /* Ensure all content is above the background */ body > * { position: relative; z-index: 10; } .container { max-width: 1200px; margin: 0 auto; padding: 0 20px; flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; } .header { text-align: center; margin-bottom: 60px; } .logo { font-size: 3.5rem; font-weight: 700; color: var(--ancient-pine); margin-bottom: 20px; display: flex; align-items: center; justify-content: center; gap: 15px; font-family: Crimson Text, serif; } .logo-icon { width: 60px; height: 60px; background: linear-gradient(135deg, var(--ancient-pine), var(--deep-forest)); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 2rem; color: var(--filtered-sunlight); } .tagline { font-size: 1.4rem; color: var(--sage-grove); font-style: italic; max-width: 600px; margin: 0 auto; font-family: Nunito Sans, sans-serif; } .main-content { text-align: center; margin-bottom: 60px; } .title { font-size: 3rem; font-weight: 700; color: var(--ancient-pine); margin-bottom: 30px; font-family: Crimson Text, serif; } .subtitle { font-size: 1.3rem; color: var(--sage-grove); margin-bottom: 40px; max-width: 700px; margin-left: auto; margin-right: auto; font-family: Nunito Sans, sans-serif; } .features { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 30px; margin: 50px 0; max-width: 800px; } .feature { background: var(--card); padding: 30px 20px; border-radius: var(--radius-lg); box-shadow: 0 4px 20px var(--border); text-align: center; transition: transform 0.3s ease, box-shadow 0.3s ease; border: 1px solid var(--border); } .feature:hover { transform: translateY(-5px); box-shadow: 0 8px 30px var(--border); } .feature-icon { margin-bottom: 18px; } .icon-badge { width: 56px; height: 56px; border-radius: 50%; background: var(--gentle-breeze); display: inline-flex; align-items: center; justify-content: center; color: var(--ancient-pine); box-shadow: 0 2px 8px var(--border) inset; } .feature-title { font-size: 1.2rem; font-weight: 600; color: var(--ancient-pine); margin-bottom: 10px; font-family: Crimson Text, serif; } .feature-description { color: var(--sage-grove); font-size: 0.95rem; font-family: Nunito Sans, sans-serif; } .email-signup { background: var(--card); padding: 40px; border-radius: var(--radius-xl); box-shadow: 0 8px 40px var(--border); max-width: 500px; width: 100%; margin: 0 auto; border: 2px solid var(--border); } .email-signup h3 { font-size: 1.8rem; color: var(--ancient-pine); margin-bottom: 15px; font-family: Crimson Text, serif; } .email-signup p { color: var(--sage-grove); margin-bottom: 30px; font-family: Nunito Sans, sans-serif; } .form-group { margin-bottom: 20px; } .form-input { width: 100%; padding: 15px 20px; border: 2px solid var(--border); border-radius: var(--radius-lg); font-size: 1rem; transition: border-color 0.3s ease; background: var(--input-background); color: var(--foreground); font-family: Nunito Sans, sans-serif; } .form-input:focus { outline: none; border-color: var(--primary); background: var(--card); box-shadow: 0 0 0 3px var(--border); } .btn { background: linear-gradient(135deg, var(--primary), var(--ancient-pine)); color: var(--primary-foreground); border: none; padding: 15px 30px; border-radius: var(--radius-lg); font-size: 1rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; font-family: Nunito Sans, sans-serif; width: 100%; } .btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px var(--border); } .btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; } .loading { display: inline-block; width: 20px; height: 20px; border: 2px solid #ffffff; border-radius: 50%; border-top-color: transparent; animation: spin 1s ease-in-out infinite; } @keyframes spin { to { transform: rotate(360deg); } } .success-message { background: var(--gentle-breeze); color: var(--ancient-pine); padding: 15px; border-radius: var(--radius-lg); margin-top: 20px; text-align: center; font-family: Nunito Sans, sans-serif; } .error-message { background: var(--destructive); color: var(--destructive-foreground); padding: 15px; border-radius: var(--radius-lg); margin-top: 20px; text-align: center; font-family: Nunito Sans, sans-serif; } .footer { text-align: center; padding: 40px 20px; color: var(--sage-grove); border-top: 1px solid var(--border); margin-top: auto; font-family: Nunito Sans, sans-serif; } .footer p { margin-bottom: 10px; } .footer a { color: var(--ancient-pine); text-decoration: none; } .footer a:hover { text-decoration: underline; } .socials { margin-top: 12px; display: flex; gap: 16px; justify-content: center; align-items: center; } .socials a { display: inline-flex; width: 28px; height: 28px; color: var(--ancient-pine); opacity: 0.9; transition: transform 0.2s ease, opacity 0.2s ease; } .socials a:hover { opacity: 1; transform: translateY(-1px); } @media (max-width: 768px) { .logo { font-size: 2.5rem; } .title { font-size: 2.2rem; } .subtitle { font-size: 1.1rem; } .features { grid-template-columns: 1fr; gap: 20px; } .email-signup { padding: 30px 20px; } } /style>/head>body> div classcontainer> header classheader> div classlogo> div classlogo-icon>img srcfavicon.svg altAerial Nest width36 height36 styledisplay:inline-block; />/div> Aerial Nest /div> p classtagline>Like birds carefully building their nest, we help you create a place where your familys future can flourish./p> /header> main classmain-content> h1 classtitle>Coming Spring 2025/h1> p classsubtitle>Were building something special for families who believe in thoughtful, compassionate planning for lifes most important moments./p> div classfeatures> div classfeature> div classfeature-icon>div classicon-badge> svg width28 height28 viewBox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg aria-hiddentrue> path dM12 2.2L4 5.7V11.2C4 16.12 7.4 20.58 12 21.8C16.6 20.58 20 16.12 20 11.2V5.7L12 2.2Z strokecurrentColor stroke-width1.8 stroke-linecapround stroke-linejoinround/> path dM9.2 12.2L11.1 14.1L14.8 10.4 strokecurrentColor stroke-width1.8 stroke-linecapround stroke-linejoinround/> /svg> /div>/div> h3 classfeature-title>Bank-Level Security/h3> p classfeature-description>Your documents are protected with enterprise-grade encryption/p> /div> div classfeature> div classfeature-icon>div classicon-badge> svg width28 height28 viewBox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg aria-hiddentrue> path dM6 6C6 4.9 5.1 4 4 4C2.9 4 2 4.9 2 6C2 7.1 2.9 8 4 8C5.1 8 6 7.1 6 6Z fillcurrentColor/> path dM14 4C12.9 4 12 4.9 12 6C12 7.1 12.9 8 14 8C15.1 8 16 7.1 16 6C16 4.9 15.1 4 14 4Z fillcurrentColor/> path dM20 8C18.9 8 18 8.9 18 10C18 11.1 18.9 12 20 12C21.1 12 22 11.1 22 10C22 8.9 21.1 8 20 8Z fillcurrentColor/> path dM8 12L10 16L8 20 strokecurrentColor stroke-width1.8 stroke-linecapround stroke-linejoinround/> path dM12 4L14 8L12 12L10 8L12 4Z strokecurrentColor stroke-width1.8 stroke-linecapround stroke-linejoinround/> path dM16 12L18 16L16 20 strokecurrentColor stroke-width1.8 stroke-linecapround stroke-linejoinround/> /svg> /div>/div> h3 classfeature-title>Family-Focused/h3> p classfeature-description>Designed specifically for families and their unique needs/p> /div> div classfeature> div classfeature-icon>div classicon-badge> svg width28 height28 viewBox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg aria-hiddentrue> circle cx12 cy12 r9.2 strokecurrentColor stroke-width1.8 stroke-linecapround stroke-linejoinround/> path dM8.5 9.5L12 12.5L15.5 9.5 strokecurrentColor stroke-width1.8 stroke-linecapround stroke-linejoinround/> path dM12 6.8V12.4L15.7 14.2 strokecurrentColor stroke-width1.8 stroke-linecapround stroke-linejoinround/> /svg> /div>/div> h3 classfeature-title>Compassionate Design/h3> p classfeature-description>Built with empathy for lifes most important moments/p> /div> /div> div classemail-signup> h3>Get Early Access/h3> p>Be among the first to experience Aerial Nest when we launch./p> form idemailForm> div classform-group> input typeemail idemailInput classform-input placeholderEnter your email address required > /div> button typesubmit idsubmitBtn classbtn> span idbtnText>Get Early Access/span> div idbtnLoading classloading styledisplay: none;>/div> /button> /form> div idsuccessMessage classsuccess-message styledisplay: none;> strong>Thank you!/strong> Well notify you when Aerial Nest launches. /div> div iderrorMessage classerror-message styledisplay: none;> strong>Error:/strong> span iderrorText>/span> /div> /div> /main> /div> footer classfooter> p>© 2025 Aerial Nest. All rights reserved./p> p>Questions? a hrefmailto:hello@aerialnest.com>hello@aerialnest.com/a>/p> div classsocials aria-labelSocial media links> a hrefhttps://www.instagram.com/weareaerialnest/ target_blank relnoopener aria-labelAerial Nest on Instagram> svg viewBox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg aria-hiddentrue>rect x3 y3 width18 height18 rx5 strokecurrentColor stroke-width1.6/>circle cx12 cy12 r4 strokecurrentColor stroke-width1.6/>circle cx17.5 cy6.5 r1.2 fillcurrentColor/>/svg> /a> a hrefhttps://www.tiktok.com/@weareaerialnest target_blank relnoopener aria-labelAerial Nest on TikTok> svg viewBox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg aria-hiddentrue>path dM19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-5.2 1.74 2.89 2.89 0 0 1 2.31-4.64 2.93 2.93 0 0 1 .88.13V9.4a6.84 6.84 0 0 0-1-.05A6.33 6.33 0 0 0 5 20.1a6.34 6.34 0 0 0 10.86-4.43v-7a8.16 8.16 0 0 0 4.77 1.52v-3.4a4.85 4.85 0 0 1-1-.1z fillcurrentColor/>/svg> /a> a hrefhttps://www.facebook.com/weareaerialnest target_blank relnoopener aria-labelAerial Nest on Facebook> svg viewBox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg aria-hiddentrue>path dM24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z fillcurrentColor/>/svg> /a> a hrefhttps://www.linkedin.com/company/aerialnest target_blank relnoopener aria-labelAerial Nest on LinkedIn> svg viewBox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg aria-hiddentrue>path dM4.98 3.5C4.98 4.6 4.09 5.5 2.99 5.5C1.89 5.5 1 4.6 1 3.5C1 2.4 1.89 1.5 2.99 1.5C4.09 1.5 4.98 2.4 4.98 3.5Z fillcurrentColor/>path dM1.5 8H4.5V22H1.5V8Z fillcurrentColor/>path dM8 8H11V9.8C11.6 8.7 13 8 14.6 8C18 8 19 10.2 19 13.3V22H16V14.3C16 12.6 15.6 11.5 14.2 11.5C12.8 11.5 12 12.6 12 14.3V22H9V8H8Z fillcurrentColor/>/svg> /a> a hrefhttps://www.youtube.com/@weareaerialnest target_blank relnoopener aria-labelAerial Nest on YouTube> svg viewBox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg aria-hiddentrue>path dM23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z fillcurrentColor/>/svg> /a> /div> /footer> script> // Email signup functionality const API_ENDPOINT https://xpinivvsw8.execute-api.us-east-1.amazonaws.com/prod/api/email-signup; const emailForm document.getElementById(emailForm); const emailInput document.getElementById(emailInput); const submitBtn document.getElementById(submitBtn); const btnText document.getElementById(btnText); const btnLoading document.getElementById(btnLoading); const successMessage document.getElementById(successMessage); const errorMessage document.getElementById(errorMessage); const errorText document.getElementById(errorText); // Analytics: Track page load time for engagement metrics const pageLoadTime Date.now(); function showLoading() { submitBtn.disabled true; btnText.style.display none; btnLoading.style.display inline-block; } function hideLoading() { submitBtn.disabled false; btnText.style.display inline; btnLoading.style.display none; } function showSuccess() { successMessage.style.display block; errorMessage.style.display none; emailInput.value ; } function showError(message) { errorText.textContent message; errorMessage.style.display block; successMessage.style.display none; } function hideMessages() { successMessage.style.display none; errorMessage.style.display none; } function validateEmail(email) { const emailRegex /^^\s@+@^\s@+\.^\s@+$/; return emailRegex.test(email); } // Security: Basic bot detection function isBot() { // Check for common bot user agents const userAgent navigator.userAgent.toLowerCase(); const botPatterns bot, crawler, spider, scraper, curl, wget, python, java, http, request, scrapy ; return botPatterns.some(pattern > userAgent.includes(pattern)); } // Security: Simple honeypot field (hidden from users) function addHoneypot() { const honeypot document.createElement(input); honeypot.type text; honeypot.name website; honeypot.style.display none; honeypot.tabIndex -1; honeypot.autocomplete off; emailForm.appendChild(honeypot); } // Analytics: Capture marketing and engagement data function captureAnalytics() { const urlParams new URLSearchParams(window.location.search); // Detect device type const isMobile /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); const isTablet /iPad|Android(?!.*Mobile)/i.test(navigator.userAgent); let deviceType desktop; if (isMobile) deviceType mobile; if (isTablet) deviceType tablet; return { // UTM Parameters (campaign tracking) utm_source: urlParams.get(utm_source) || null, utm_medium: urlParams.get(utm_medium) || null, utm_campaign: urlParams.get(utm_campaign) || null, utm_term: urlParams.get(utm_term) || null, utm_content: urlParams.get(utm_content) || null, // Referrer (where they came from) referrer_url: document.referrer || null, // Device & screen info device_type: deviceType, screen_width: window.screen.width, screen_height: window.screen.height, viewport_width: window.innerWidth, viewport_height: window.innerHeight, // Engagement timing (seconds on page before signup) time_on_page: Math.floor((Date.now() - pageLoadTime) / 1000), // Browser info (already captured via user agent, but useful for validation) language: navigator.language || navigator.userLanguage, timezone: Intl.DateTimeFormat().resolvedOptions().timeZone }; } emailForm.addEventListener(submit, async (e) > { e.preventDefault(); const email emailInput.value.trim(); // Security: Basic bot detection if (isBot()) { showError(Automated requests are not allowed); return; } // Security: Check honeypot field const honeypotValue emailForm.querySelector(inputnamewebsite)?.value; if (honeypotValue) { showError(Automated requests are not allowed); return; } if (!email) { showError(Please enter your email address); return; } if (!validateEmail(email)) { showError(Please enter a valid email address); return; } hideMessages(); showLoading(); try { // Capture analytics data const analyticsData captureAnalytics(); const response await fetch(API_ENDPOINT, { method: POST, headers: { Content-Type: application/json, }, body: JSON.stringify({ email: email, source: coming-soon-page, analytics: analyticsData }) }); const data await response.json(); if (data.success) { showSuccess(); console.log(Email signup successful:, data); } else { showError(data.message || Something went wrong. Please try again.); } } catch (error) { console.error(Email submission error:, error); showError(Something went wrong. Please try again.); } finally { hideLoading(); } }); // Clear error message when user starts typing emailInput.addEventListener(input, () > { if (errorMessage.style.display block) { hideMessages(); } }); // Security: Initialize honeypot and bot detection addHoneypot(); // Image fallback functionality (converted from React component) const ERROR_IMG_SRC data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBvcGFjaXR5PSIuMyIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIzLjciPjxyZWN0IHg9IjE2IiB5PSIxNiIgd2lkdGg9IjU2IiBoZWlnaHQ9IjU2IiByeD0iNiIvPjxwYXRoIGQ9Im0xNiA1OCAxNi0xOCAzMiAzMiIvPjxjaXJjbGUgY3g9IjUzIiBjeT0iMzUiIHI9IjciLz48L3N2Zz4KCg; function createImageWithFallback(src, alt, className, style) { const container document.createElement(div); const img document.createElement(img); // Set up the image img.src src; img.alt alt; img.className className || ; if (style) { Object.assign(img.style, style); } // Handle image load error img.onerror function() { console.log(Image failed to load:, src); // Replace with fallback image this.src ERROR_IMG_SRC; this.alt Error loading image; this.setAttribute(data-original-url, src); // Add error styling this.style.opacity 0.3; this.style.filter grayscale(100%); }; container.appendChild(img); return container; } // Utility function to replace existing images with fallback version function enhanceImagesWithFallback() { const images document.querySelectorAll(img:not(data-fallback-enhanced)); images.forEach(img > { // Mark as enhanced to avoid double-processing img.setAttribute(data-fallback-enhanced, true); // Set up error handling for existing images img.onerror function() { console.log(Image failed to load:, this.src); this.src ERROR_IMG_SRC; this.alt Error loading image; this.setAttribute(data-original-url, this.src); this.style.opacity 0.3; this.style.filter grayscale(100%); }; }); } // Initialize image fallback enhancement enhanceImagesWithFallback(); /script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]