PageSourceSearch

https://compilo.ai/Product

html compilo.ai collected 2026-10-05 14:06:07 UTC 18,548 bytes, 410 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3 <head>
4  
4<script>
5   (function () {
6  var proto = XMLHttpRequest.prototype;
7  var open = proto.open, setRequestHeader = proto.setRequestHeader, send = proto.send;
8  var TOKEN_KEY = 'base44_access_token';
9  var storedTokenHeader = function () {
10    try { return 'Bearer ' + localStorage.getItem(TOKEN_KEY); } catch (e) { return null; }
11  };
12  var forgetStoredToken = function () {
13    try { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem('token'); } catch (e) {}
14  };
15
16  proto.open = function (method, url) {
17    this.__b44IsAuthCheck = /\/entities\/User\/me(\?|$)/.test(url);
18    return open.apply(this, arguments);
19  };
20
21  proto.setRequestHeader = function (name, value) {
22    if (this.__b44IsAuthCheck && name.toLowerCase() === 'authorization' && value === storedTokenHeader()) {
23      this.__b44SentToken = value;
24    }
25    return setRequestHeader.call(this, name, value);
26  };
27
28  proto.send = function () {
29    this.addEventListener('loadend', function () {
30      var rejectedTokenStillStored = this.status === 401 && this.__b44SentToken === storedTokenHeader();
31      if (rejectedTokenStillStored) forgetStoredToken();
32    });
33    return send.apply(this, arguments);
34  };
35})();
36  </script>
36
37  <meta charset="utf-8"/>
38  <link href="https://media.base44.com/images/public/68ecf4db11684411d719d34a/2827bd0fc_compiloicon.png" rel="icon" type="image/png"/>
39  <link href="https://media.base44.com/images/public/68ecf4db11684411d719d34a/2827bd0fc_compiloicon.png" rel="apple-touch-icon"/>
40  <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
41  <link href="/manifest.json" rel="manifest"/>
42  <!-- Security meta-headers (client-side enforcement) -->
43  <meta content="nosniff" http-equiv="X-Content-Type-Options"/>
44  <meta content="SAMEORIGIN" http-equiv="X-Frame-Options"/>
45  <meta content="strict-origin-when-cross-origin" http-equiv="Referrer-Policy"/>
46  <meta content="camera=(), microphone=(), geolocation=(), payment=()" http-equiv="Permissions-Policy"/>
47  <meta content="default-src 'self' https:; script-src 'self' 'unsafe-inline' https://www.googletagmanager.com https://www.google-analytics.com https://media.base44.com https://sc.lfeeder.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https:; connect-src 'self' https:; frame-src 'none'; object-src 'none'; base-uri 'self'; form-action 'self';" http-equiv="Content-Security-Policy"/>
48  <!-- Google Search Console Verification (verified) -->
49  <meta content="ymlvH0wSZqr-H02mCy3NMA3Lt9WXfD-G2LpKu_nDPkQ" name="google-site-verification"/>
50  <!-- Bing Webmaster Tools Verification — SAFE LOCATION for the owner's token.
51         To verify: 1) sign in to Bing Webmaster Tools, 2) add property compilo.ai,
52         3) choose "Meta Tag" verification, 4) copy the content value,
53         5) uncomment the line below and paste the token between the quotes.
54         Do NOT commit a placeholder/fake token. -->
55  <!-- <meta name="msvalidate.01" content="PASTE_BING_VERIFICATION_TOKEN_HERE" /> -->
56  <!-- Primary SEO — brand identity from src/lib/brand.js (canonical: Compilo.ai) -->
57  <title>
58   En / En Product | Compilo.ai
59  </title>
60  <meta content="En / En Product on Compilo.ai. Compilo." name="description"/>
61  <meta content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" name="robots"/>
62  <meta content="Compilo.ai" name="author"/>
63  <!-- Open Graph -->
64  <meta content="website" property="og:type"/>
65  <meta content="Compilo.ai" property="og:site_name"/>
66  <meta content="En / En Product | Compilo.ai" property="og:title"/>
67  <meta content="En / En Product on Compilo.ai. Compilo." property="og:description"/>
68  <meta content="https://compilo.ai/Product" property="og:url"/>
69  <meta content="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/render/image/public/base44-prod/public/68ecf4db11684411d719d34a/cb9b62df9_compilofaviconiconlogo.jpg?width=1200&amp;height=630&amp;resize=contain" property="og:image"/>
70  <meta content="en_GB" property="og:locale"/>
71  <!-- Additional legitimacy signals for web filters -->
72  <meta content="sv_SE" property="og:locale:alternate"/>
73  <meta content="https://compilo.ai/about" property="og:see_also"/>
74  <meta content="https://compilo.ai/security" property="og:see_also"/>
75  <meta content="https://compilo.ai/trust" property="og:see_also"/>
76  <meta content="Business Software, Compliance, Cybersecurity" name="category"/>
77  <meta content="Business/Software/Compliance" name="classification"/>
78  <meta content="Europe" name="coverage"/>
79  <meta content="Tech Brows AB, org. 559434-1967, Stockholm, Sweden" name="owner"/>
80  <meta content="[email protected]" name="reply-to"/>
81  <meta content="general" name="rating"/>
82  <!-- Twitter -->
83  <meta content="summary_large_image" name="twitter:card"/>
84  <meta content="En / En Product | Compilo.ai" name="twitter:title"/>
85  <meta content="En / En Product on Compilo.ai. Compilo." name="twitter:description"/>
86  <meta content="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/render/image/public/base44-prod/public/68ecf4db11684411d719d34a/cb9b62df9_compilofaviconiconlogo.jpg?width=1200&amp;height=630&amp;resize=contain" name="twitter:image"/>
87  <!-- Structured Data: Organization + WebSite (@graph with stable @id references) -->
88  
88<script type="application/ld+json">
89   {
90      "@context": "https://schema.org",
91      "@graph": [
92        {
93          "@id": "https://compilo.ai/#organization",
94          "@type": "Organization",
95          "name": "Compilo.ai",
96          "legalName": "Tech Brows AB",
97          "url": "https://compilo.ai",
98          "slogan": "Company control. Powered by AI.",
99          "logo": {
100            "@type": "ImageObject",
101            "url": "https://media.base44.com/images/public/68ecf4db11684411d719d34a/dad82ab23_compilologgaSTORSLOGANiconeller.png"
102          },
103          "email": "[email protected]",
104          "description": "Compilo.ai helps organisations perform and maintain compliance work across GDPR, NIS 2, the EU AI Act, ISO 27001 and broader GRC.",
105          "foundingDate": "2025",
106          "foundingLocation": "Stockholm, Sweden",
107          "areaServed": "EU",
108          "knowsAbout": ["GDPR", "NIS2", "AI Act", "GRC", "ISO 27001", "Compliance automation"],
109          "sameAs": ["https://www.linkedin.com/company/109693142"],
110          "address": {
111            "@type": "PostalAddress",
112            "streetAddress": "Motalavägen 15",
113            "addressLocality": "Stockholm",
114            "addressCountry": "SE"
115          },
116          "contactPoint": {
117            "@type": "ContactPoint",
118            "contactType": "sales",
119            "email": "[email protected]",
120            "areaServed": "EU"
121          }
122        },
123        {
124          "@id": "https://compilo.ai/#website",
125          "@type": "WebSite",
126          "name": "Compilo.ai",
127          "url": "https://compilo.ai",
128          "inLanguage": ["en", "sv"],
129          "publisher": { "@id": "https://compilo.ai/#organization" }
130        }
131      ]
132    }
133  </script>
133
134  <!-- Google Tag Manager -->
135  
135<script>
136   (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
137    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
138    j=d.createElement(s),dl=l!='data-layer'?'&l='+l:'';j.async=true;j.src=
139    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
140    })(window,document,'script','dataLayer','GTM-N85H7G9M');
141  </script>
141
142  <!-- End Google Tag Manager -->
143  <!-- Google tag (gtag.js) — Google Analytics -->
vendor: 69 bytes, lines 143-144
143
144  <script async="" src="https://www.googletagmanager.com/gtag/js?id=
144G-NK95PD2HWD
vendor: 17 bytes, lines 144-146
144">
145  </script>
146  
146<script>
147   
vendor: 145 bytes, lines 147-150
147window.dataLayer = window.dataLayer || [];
148      function gtag(){dataLayer.push(arguments);}
149      gtag('js', new Date());
150      gtag('config', '
150G-NK95PD2HWD
vendor: 6 bytes, lines 150-151
150');
151  
151</script>
151
152  <!-- End Google tag (gtag.js) -->
153  <!-- LeadFeeder -->
154  
154<script>
155   (function(ss,ex){ window.ldfdr=window.ldfdr||function(){(ldfdr._q=ldfdr._q||[]).push([].slice.call(arguments));}; (function(d,s){ fs=d.getElementsByTagName(s)[0]; function ce(src){ var cs=d.createElement(s); cs.src=src; cs.async=1; fs.parentNode.insertBefore(cs,fs); }; ce('https://sc.lfeeder.com/lftracker_v1_'+ss+(ex?'_'+ex:'')+'.js'); })(document,'script'); })('3P1w24dwEDz7mY5n');
156  </script>
156
157  <!-- End LeadFeeder -->
158  
158<script crossorigin="" src="/assets/index-Bjvscozi.js" type="module">
159  </script>
159
160  <link crossorigin="" href="/assets/index-UAi22YRu.css" rel="stylesheet"/>
161  <meta content="https://compilo.ai/Product" name="twitter:url"/>
162  
162<script>
163   (function () {
164  var titles = {"/login": "Login | Compilo.ai", "/register": "Register | Compilo.ai", "/forgot-password": "Forgot Password | Compilo.ai", "/reset-password": "Reset Password | Compilo.ai", "/": "Compilo.ai", "/sv": "Compilo.ai", "/no": "Compilo.ai", "/da": "Compilo.ai", "/fi": "Compilo.ai", "/villkor": "Villkor | Compilo.ai", "/dpa": "DPA | Compilo.ai", "/terms": "Terms | Compilo.ai", "/disclaimer": "Disclaimer | Compilo.ai", "/nda": "NDA | Compilo.ai", "/privacy-policy": "Privacy Policy | Compilo.ai", "/about": "About | Compilo.ai", "/contact": "Contact | Compilo.ai", "/investors": "Investors | Compilo.ai", "/try-for-free": "Try For Free | Compilo.ai", "/book-demo": "Book Demo | Compilo.ai", "/product": "En / En Product | Compilo.ai", "/nis2": "En / En Product | Compilo.ai", "/gdpr": "En / En Product | Compilo.ai", "/security": "En / Trust / En Trust And Security | Compilo.ai", "/en/product": "En / En Product | Compilo.ai", "/en/nis2-software": "En / En Product | Compilo.ai", "/en/gdpr-software": "En / En Product | Compilo.ai", "/en/trust-and-security": "En / Trust / En Trust And Security | Compilo.ai", "/crm": "CRM | Compilo.ai", "/crm-dashboard": "CRM Dashboard | Compilo.ai", "/crmdashboard": "CRM Dashboard | Compilo.ai", "/entitymaster": "Admin / Entity Master | Compilo.ai", "/entity-master": "Admin / Entity Master | Compilo.ai", "/crmstats": "CRM Stats | Compilo.ai", "/crm-stats": "CRM Stats | Compilo.ai", "/utmstats": "Utm Stats | Compilo.ai", "/utm-stats": "Utm Stats | Compilo.ai", "/vad-ar-compilo": "Vad Ar Compilo | Compilo.ai", "/blog": "Gone410 | Compilo.ai", "/home": "Compilo.ai"};
165  // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind
166  // (old Safari fails to PARSE a lookbehind, taking the whole script down).
167  var dashed = function (s) {
168    return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2");
169  };
170  var decode = function (s) {
171    // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a
172    // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title.
173    try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; }
174  };
175  var segments = function (path) { return path.split("/").filter(Boolean).map(decode); };
176  var norm = function (path) {
177    var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); });
178    return parts.length ? "/" + parts.join("/") : "/";
179  };
180  var lastPath = location.pathname, written = document.title, on = true;
181  var sync = function () {
182    // Path only: a hash/query change is the same page, and the SDK strips its own auth
183    // params with replaceState -- neither must clobber a server-rendered title in place.
184    if (!on || location.pathname === lastPath) return;
185    lastPath = location.pathname;
186    if (document.title !== written) { on = false; return; }
187    // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the
188    // map cannot carry, and writing a placeholder there is destructive, not merely vague: the
189    // prerender worker runs no setUserAgent, so its capture browser reads as human and executes
190    // this script, and coordinator.js's settle wait explicitly tolerates a full navigation --
191    // a redirect landing on an unmapped path would bake the placeholder into the stored
192    // snapshot. Leaving the title alone degrades to today's behavior instead.
193    // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up
194    // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the
195    // dashes there, and the client cannot tell the two apart. The map emits every reachable
196    // shape per segment instead (_client_url_variants).
197    var title = titles[norm(location.pathname)];
198    if (title === undefined) return;
199    document.title = title;
200    // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so
201    // keeping the assigned string would make the next sync() read our own write as the app's.
202    written = document.title;
203  };
204  var wrap = function (fn) {
205    // The history entry is already pushed by the time sync() runs, so a throw here would
206    // surface inside the host app's router and break navigation. This is injected into apps
207    // we cannot test, so it swallows rather than trusting the trace.
208    return function () {
209      var r = fn.apply(this, arguments);
210      try { sync(); } catch (e) {}
211      return r;
212    };
213  };
214  history.pushState = wrap(history.pushState);
215  history.replaceState = wrap(history.replaceState);
216  window.addEventListener("popstate", sync);
217})();
218  </script>
218
219  <meta content="yes" name="mobile-web-app-capable"/>
220  <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
221  <meta content="Compilo.ai" name="apple-mobile-web-app-title"/>
222  <link href="https://compilo.ai/Product" rel="canonical"/>
223  
223<script data-seo-source="builder" type="application/ld+json">
224   {"name": "Compilo.ai", "@context": "https://schema.org", "@type": "WebSite", "url": "https://compilo.ai"}
225  </script>
225
226  
226<script data-seo-source="builder" type="application/ld+json">
227   {"name": "Compilo.ai", "logo": "https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/68ecf4db11684411d719d34a/cb9b62df9_compilofaviconiconlogo.jpg", "@context": "https://schema.org", "@type": "Organization", "url": "https://compilo.ai"}
228  </script>
228
229  
229<script data-seo-source="builder" type="application/ld+json">
230   {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://compilo.ai/"}, {"@type": "ListItem", "position": 2, "name": "En / En Product", "item": "https://compilo.ai/Product"}]}
231  </script>
231
232 </head>
233 <body>
234  <!-- Google Tag Manager (noscript) -->
235  <noscript>
236   <iframe height="0" src="https://www.googletagmanager.com/ns.html?id=GTM-N85H7G9M" style="display:none;visibility:hidden" width="0">
237   </iframe>
238  </noscript>
239  <!-- End Google Tag Manager (noscript) -->
240  <div id="root">
241   <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;">
242    <main>
243     <header>
244      <h1>
245       En / En Product | Compilo.ai
246      </h1>
247      <p>
248       En / En Product on Compilo.ai. Compilo.
249      </p>
250     </header>
251     <nav aria-label="Pages">
252      <h2>
253       Pages
254      </h2>
255      <ul>
256       <li>
257        <a href="/">
258         Home
259        </a>
260       </li>
261       <li>
262        <a href="/login">
263         Login
264        </a>
265        — Login on Compilo.ai. Compilo.
266       </li>
267       <li>
268        <a href="/register">
269         Register
270        </a>
271        — Register on Compilo.ai. Compilo.
272       </li>
273       <li>
274        <a href="/forgot-password">
275         Forgot Password
276        </a>
277        — Forgot Password on Compilo.ai. Compilo.
278       </li>
279       <li>
280        <a href="/reset-password">
281         Reset Password
282        </a>
283        — Reset Password on Compilo.ai. Compilo.
284       </li>
285       <li>
286        <a href="/Villkor">
287         Villkor
288        </a>
289        — Villkor on Compilo.ai. Compilo.
290       </li>
291       <li>
292        <a href="/dpa">
293         DPA
294        </a>
295        — DPA on Compilo.ai. Compilo.
296       </li>
297       <li>
298        <a href="/terms">
299         Terms
300        </a>
301        — Terms on Compilo.ai. Compilo.
302       </li>
303       <li>
304        <a href="/disclaimer">
305         Disclaimer
306        </a>
307        — Disclaimer on Compilo.ai. Compilo.
308       </li>
309       <li>
310        <a href="/nda">
311         NDA
312        </a>
313        — NDA on Compilo.ai. Compilo.
314       </li>
315       <li>
316        <a href="/privacy-policy">
317         Privacy Policy
318        </a>
319        — Privacy Policy on Compilo.ai. Compilo.
320       </li>
321       <li>
322        <a href="/about">
323         About
324        </a>
325        — About on Compilo.ai. Compilo.
326       </li>
327       <li>
328        <a href="/contact">
329         Contact
330        </a>
331        — Contact on Compilo.ai. Compilo.
332       </li>
333       <li>
334        <a href="/investors">
335         Investors
336        </a>
337        — Investors on Compilo.ai. Compilo.
338       </li>
339       <li>
340        <a href="/try-for-free">
341         Try For Free
342        </a>
343        — Try For Free on Compilo.ai. Compilo.
344       </li>
345       <li>
346        <a href="/book-demo">
347         Book Demo
348        </a>
349        — Book Demo on Compilo.ai. Compilo.
350       </li>
351       <li>
352        <a href="/Product">
353         En Product
354        </a>
355        — En / En Product on Compilo.ai. Compilo.
356       </li>
357       <li>
358        <a href="/security">
359         En Trust And Security
360        </a>
361        — En / Trust / En Trust And Security on Compilo.ai. Compilo.
362       </li>
363       <li>
364        <a href="/CRM">
365         CRM
366        </a>
367        — CRM on Compilo.ai. Compilo.
368       </li>
369       <li>
370        <a href="/CRMDashboard">
371         CRM Dashboard
372        </a>
373        — CRM Dashboard on Compilo.ai. Compilo.
374       </li>
375       <li>
376        <a href="/EntityMaster">
377         Entity Master
378        </a>
379        — Admin / Entity Master on Compilo.ai. Compilo.
380       </li>
381       <li>
382        <a href="/CRMStats">
383         CRM Stats
384        </a>
385        — CRM Stats on Compilo.ai. Compilo.
386       </li>
387       <li>
388        <a href="/UtmStats">
389         Utm Stats
390        </a>
391       </li>
392       <li>
393        <a href="/Vad-ar-compilo">
394         Vad Ar Compilo
395        </a>
396        — Vad Ar Compilo on Compilo.ai. Compilo.
397       </li>
398       <li>
399        <a href="/blog">
400         Gone410
401        </a>
402        — Gone410 on Compilo.ai. Compilo.
403       </li>
404      </ul>
405     </nav>
406    </main>
407   </div>
408  </div>
409 </body>
410</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.