1<!DOCTYPE html><html lang="en" data-theme="dark" data-theme-choice="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="Content-Security-Policy" content="default-src 'self'; base-uri 'self'; object-src 'none'; form-action 'self'; script-src 'self' 'unsafe-inline' https://apis.google.com https://www.gstatic.com https://ssl.gstatic.com https://www.googletagmanager.com https://*.googletagmanager.com https://*.google-analytics.com https://*.analytics.google.com https://static.hj.contentsquare.net https://*.contentsquare.net https://*.hotjar.com https://www.clarity.ms https://*.clarity.ms https://static.cloudflareinsights.com https://cloudflareinsights.com https://www.google.com/recaptcha/; style-src 'self' 'unsafe-inline'; font-src 'self' data:; img-src 'self' data: blob: https://cdn-prod.envless.cloud https://envless-prod.appspot.com https://www.googletagmanager.com https://*.googletagmanager.com https://*.google-analytics.com https://*.analytics.google.com https://static.hj.contentsquare.net https://*.contentsquare.net https://*.hotjar.com https://www.clarity.ms https://*.clarity.ms https://c.bing.com https://lh3.googleusercontent.com https://avatars.githubusercontent.com https://apis.google.com https://www.gstatic.com https://ssl.gstatic.com https://www.google.com; connect-src 'self' https://api.envless.cloud https://cdn-prod.envless.cloud https://auth.envless.cloud https://envless-prod.appspot.com https://envless-prod.firebaseapp.com https://envless-prod.web.app https://identitytoolkit.googleapis.com https://securetoken.googleapis.com https://www.googleapis.com https://firebasestorage.googleapis.com https://www.googletagmanager.com https://*.googletagmanager.com https://*.google-analytics.com https://*.analytics.google.com https://www.google.com https://static.hj.contentsquare.net https://*.contentsquare.net https://*.hotjar.com https://www.clarity.ms https://*.clarity.ms https://*.hotjar.io wss://*.hotjar.com https://static.cloudflareinsights.com https://cloudflareinsights.com https://api.github.com; frame-src 'self' https://auth.envless.cloud https://envless-prod.firebaseapp.com https://envless-prod.web.app https://apis.google.com https://accounts.google.com https://www.google.com https://*.hotjar.com; worker-src 'self' blob:; media-src 'self' blob: data:; manifest-src 'self'"/><link rel="preconnect" href="https://api.envless.cloud" crossorigin=""/><link rel="preconnect" href="https://auth.envless.cloud" crossorigin=""/><link rel="preconnect" href="https://identitytoolkit.googleapis.com" crossorigin=""/><link rel="preconnect" href="https://securetoken.googleapis.com" crossorigin=""/><meta name="referrer" content="strict-origin-when-cross-origin"/><link rel="icon" href="/favicon.ico"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/><link rel="manifest" href="/site.webmanifest"/><meta name="theme-color" content="#0e0e0e"/><meta name="description" content="End-to-end encrypted environment variable and secrets management for developers and teams."/><meta property="og:type" content="website"/><meta property="og:site_name" content="Envless"/><meta property="og:title" content="Envless"/><meta property="og:description" content="End-to-end encrypted environment variable and secrets management for developers and teams."/><meta property="og:image" content="https://envless.cloud/og/default.png"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:image" content="https://envless.cloud/og/default.png"/><meta name="robots" content="noindex, nofollow"/><link rel="preload" href="/assets/dm-sans-latin.Bf69Tn_J.woff2" as="font" type="font/woff2" crossorigin=""/><title>Envless</title><link rel="modulepreload" href="/assets/manifest-d6df01b4.js"/><link rel="modulepreload" href="/assets/entry.client-BQQSpmpp.js"/><link rel="modulepreload" href="/assets/jsx-runtime.u17CrQMm.js"/><link rel="modulepreload" href="/assets/chunk-BV7QT456.BQ71lt_D.js"/><link rel="modulepreload" href="/assets/index.CqF9FHED.js"/><link rel="modulepreload" href="/assets/loadBlogModule.BLPQ9h9z.js"/><link rel="modulepreload" href="/assets/posts.BFXTTV5i.js"/><link rel="modulepreload" href="/assets/RouteParam.BGKHcA7c.js"/><link rel="modulepreload" href="/assets/loadDocsModule.CroOVxD0.js"/><link rel="modulepreload" href="/assets/preload-helper.HAdMZFT3.js"/><link rel="modulepreload" href="/assets/jwt-generator.DZpDpWmD.js"/><link rel="modulepreload" href="/assets/schemas.DIe0OIrp.js"/><link rel="modulepreload" href="/assets/root-BzN_0XdP.js"/><link rel="modulepreload" href="/assets/theme.DGKosm2U.js"/><link rel="modulepreload" href="/assets/resolvePageMeta.C0UOSZlq.js"/><link rel="modulepreload" href="/assets/seo.DRFtizGJ.js"/><link rel="modulepreload" href="/assets/session-replay.D-oy3Zil.js"/><link rel="modulepreload" href="/assets/ExternalLinks.DYQ1kwe5.js"/><link rel="modulepreload" href="/assets/session.DC8WxWZ2.js"/><link rel="modulepreload" href="/assets/animate.8bTpExtZ.js"/><link rel="modulepreload" href="/assets/pricing._R-DLwkp.js"/><link rel="modulepreload" href="/assets/DashboardShell.BuCMsFtk.js"/>
1<script> 2 ;(function () { 3 var STORAGE_KEY = 'theme' 4 var ATTRIBUTE = 'data-theme' 5 var CHOICE_ATTRIBUTE = 'data-theme-choice' 6 var DEFAULT_THEME = 'system' 7 var THEMES = { light: 'light', dark: 'dark', system: 'system' } 8 var THEME_COLORS = { light: '#eeeeee', dark: '#0e0e0e' } 9 var QUERY = '(prefers-color-scheme: dark)' 10 11 var Choice = function () { 12 var stored = null 13 14 try { 15 stored = localStorage.getItem(STORAGE_KEY) 16 } catch (error) {} 17 18 return THEMES[stored] || DEFAULT_THEME 19 } 20 21 var Resolve = function (choice) { 22 if (choice === THEMES.system) return window.matchMedia(QUERY).matches ? THEMES.dark : THEMES.light 23 24 return choice 25 } 26 27 var Paint = function (root) { 28 var choice = Choice() 29 var theme = Resolve(choice) 30 31 root.setAttribute(ATTRIBUTE, theme) 32 root.setAttribute(CHOICE_ATTRIBUTE, choice) 33 root.style.colorScheme = theme 34 35 var meta = root.querySelector('meta[name="theme-color"]') 36 37 if (meta) meta.setAttribute('content', THEME_COLORS[theme]) 38 } 39 40 Paint(document.documentElement) 41 })() 42</script>
42<script> 43 document.addEventListener('dragstart', function (event) { 44 var el = event.target 45 if (el && el.closest && el.closest('img, a')) event.preventDefault() 46 }) 47</script>
47<script> 48 (function () { 49 var GA_ID = "G-GCQTS927CB" 50 var REDACTED_PARAMS = ["workspace-invite","token","oobCode","apiKey","email","email-change-token","session"] 51 var script = document.createElement('script') 52 53 script.async = true 54 script.src = 'https://www.googletagmanager.com/gtag/js?id=' + GA_ID 55 document.head.appendChild(script) 56 57 var pageLocation = window.location.pathname 58 59 try { 60 var url = new URL(window.location.href) 61 REDACTED_PARAMS.forEach(function (param) { url.searchParams.delete(param) }) 62 url.hash = '' 63 pageLocation = url.toString() 64 } catch (error) {} 65 66 window.dataLayer = window.dataLayer || [] 67 window.gtag = function () { window.dataLayer.push(arguments) } 68 window.gtag('js', new Date()) 69 window.gtag('config', GA_ID, { page_location: pageLocation }) 70 })() 71</script>
71<script> 72 (function () { 73 var HOTJAR_ID = "6717660" 74 var CLARITY_ID = "wvi00rs8qy" 75 var EVENTS = ['pointerdown', 'keydown', 'touchstart', 'scroll'] 76 var fired = false 77 78 var Load = function () { 79 if (fired) return 80 fired = true 81 82 EVENTS.forEach(function (event) { window.removeEventListener(event, Load) }) 83 84 ;(function (c, s, q, u, a, r, e) { 85 c.hj = c.hj || function () { (c.hj.q = c.hj.q || []).push(arguments) } 86 c._hjSettings = { hjid: a } 87 r = s.getElementsByTagName('head')[0] 88 e = s.createElement('script') 89 e.async = true 90 e.src = q + c._hjSettings.hjid + u 91 r.appendChild(e) 92 })(window, document, 'https://static.hj.contentsquare.net/c/csq-', '.js', HOTJAR_ID) 93 94 ;(function (c, l, a, r, i, t, y) { 95 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments) } 96 t = l.createElement(r); t.async = 1; t.src = 'https://www.clarity.ms/tag/' + i 97 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y) 98 })(window, document, 'clarity', 'script', CLARITY_ID) 99 } 100 101 EVENTS.forEach(function (event) { window.addEventListener(event, Load, { passive: true, once: true }) }) 102 103 if ('requestIdleCallback' in window) requestIdleCallback(Load, { timeout: 5000 }) 104 else setTimeout(Load, 4000) 105 })() 106</script>
106</head><body><style>html{--loader-bg:#0e0e0e} html[data-theme='light']{--loader-bg:#eeeeee} #initial-loader{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;overflow:hidden;background-color:var(--loader-bg);} #initial-loader .loader-icon{position:relative;width:28px;height:28px;} #initial-loader .loader-arc{animation:envless-draw 300ms ease-in-out 1 forwards;} @keyframes envless-draw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}</style><div id="initial-loader"><svg class="loader-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 87 87" fill="none"><defs><linearGradient id="envless_loader_gradient" x1="31.3059" y1="38.0401" x2="83.5634" y2="88.5051" gradientUnits="userSpaceOnUse"><stop stop-color="#CDF850"></stop><stop offset="0.682299" stop-color="#49F639"></stop></linearGradient><clipPath id="envless_loader_clip"><path d="M64.6944 43.1296C64.6944 55.014 55.014 64.6944 43.1296 64.6944C31.1971 64.6944 21.5648 55.062 21.5648 43.1296C21.5648 31.1971 31.1971 21.5648 43.1296 21.5648C55.062 21.5648 64.6944 31.1971 64.6944 43.1296H86.259C86.259 19.3124 66.9467 0 43.1296 0C19.3124 0 0 19.3124 0 43.1296C0 66.9467 19.3124 86.2591 43.1296 86.2591C50.9887 86.2591 58.3687 84.1506 64.6944 80.5084V43.1296Z"></path></clipPath><mask id="envless_loader_mask" maskUnits="userSpaceOnUse" x="0" y="0" width="87" height="87"><g clip-path="url(#envless_loader_clip)"><path class="loader-arc" d="M64.6944 80.5084 C58.3687 84.1506 50.9887 86.2591 43.1296 86.2591 C19.3124 86.2591 0 66.9467 0 43.1296 C0 19.3124 19.3124 0 43.1296 0 C66.9467 0 86.259 19.3124 86.259 43.1296 H64.6944" fill="none" stroke="white" stroke-width="60" stroke-linecap="round" stroke-linejoin="round" pathLength="100" stroke-dasharray="100 100" stroke-dashoffset="100"></path></g></mask></defs><path d="M64.6944 43.1296C64.6944 55.014 55.014 64.6944 43.1296 64.6944C31.1971 64.6944 21.5648 55.062 21.5648 43.1296C21.5648 31.1971 31.1971 21.5648 43.1296 21.5648C55.062 21.5648 64.6944 31.1971 64.6944 43.1296H86.259C86.259 19.3124 66.9467 0 43.1296 0C19.3124 0 0 19.3124 0 43.1296C0 66.9467 19.3124 86.2591 43.1296 86.2591C50.9887 86.2591 58.3687 84.1506 64.6944 80.5084V43.1296Z" fill="url(#envless_loader_gradient)" mask="url(#envless_loader_mask)"></path></svg></div>
106<script>window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false,"v8_passThroughRequests":true,"v8_trailingSlashAwareDataRequests":true,"unstable_previewServerPrerendering":false,"v8_middleware":true,"v8_splitRouteModules":true,"v8_viteEnvironmentApi":true},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":true};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script>
106<script type="module" async="">import "/assets/manifest-d6df01b4.js"; 107import * as route0 from "/assets/root-BzN_0XdP.js"; 108 109 window.__reactRouterRouteModules = {"root":route0}; 110 111import("/assets/entry.client-BQQSpmpp.js");</script>
111<!--$-->
111<script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_3\":-5,\"_4\":-5},\"loaderData\",{},\"actionData\",\"errors\"]\n");</script>
111<!--$-->
111<script>window.__reactRouterContext.streamController.close();</script>
111<!--/$--><!--/$-->
111<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"6af6c408db6d483596eb9722b3533454","r":1,"spa":2}' crossorigin="anonymous"></script>
111 112</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.