Moderne
| Moderne | |
| 分类 | Developer Tools |
|---|---|
| 定价 | Paid |
| 评分 | ★4.84/5 |
| 官网 | 访问 → |
Moderne 官网公开资料
Moderne 当前在本站归入 Developer Tools。本次访问 moderne.ai 返回状态码 200,官网页面标题为“, og:image to the branded sitewide card (brand/og-default.png). og:type stays per-template (article on content pages; absent elsewhere = website by default). --> { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://moderne.ai/#organization", "name": "Moderne", "url": "https://moderne.ai", "logo": { "@type": "ImageObject", "url": "https://moderne.ai/brand/moderne-logo.svg" }, "founders": [ { "@type": "Person", "name": "Jonathan Schneider" }, { "@type": "Person", "name": "Olga Kundzich" } ], "address": { "@type": "PostalAddress", "addressLocality": "Miami", "addressRegion": "FL", "addressCountry": "US" }, "sameAs": [ "https://www.linkedin.com/company/moderneinc/", "https://twitter.com/moderneinc", "https://www.youtube.com/@Moderne-and-OpenRewrite", "https://www.g2.com/products/moderne-moderne/reviews", "https://www.gartner.com/reviews/market/ai-augmented-code-modernization-tools/vendor/moderne" ] }, { "@type": "WebSite", "@id": "https://moderne.ai/#website", "url": "https://moderne.ai", "name": "Moderne", "publisher": { "@id": "https://moderne.ai/#organization" } } ] } ONLY on non-production hostnames, so production (moderne.ai / www.moderne.ai) stays fully indexable with no manual switch at cutover. Mirrors the analytics host-gate below. Runs synchronously in before crawlers parse the page. --> (function () { var h = location.hostname; var isProd = h === "moderne.ai" || h === "www.moderne.ai"; if (isProd) return; var m = document.createElement("meta"); m.name = "robots"; m.content = "noindex,nofollow"; document.head.appendChild(m); })(); copy keeps fonts working with JS disabled. --> with ab-nav-v1 / ab-nav-v2 for the variant CSS in base.css (control carries no class), and pushes the bucket into the dataLayer so GTM tags can segment by it. Runs inline in so the variant paints on the first frame — no flicker. Stores only the variant name (no ID, no tracking data), so it runs regardless of consent. Measurement goes straight to Usermaven, no GTM config needed: the official Usermaven queue-stub is defined here (same shape the GTM-loaded snippet uses, which respects an existing stub), so the track calls below buffer in window.usermavenQ until the SDK loads post-consent and never send if the visitor doesn't consent. Three events, all carrying ab_nav: ab_bucket - exposure, fired on every pageview ab_nav_cta_click - click on the nav demo button itself; high-volume proxy metric so the test reads out fast while submits mature ab_form_submit - fired on the same .cf-submit / .lf-submit buttons the pinned Usermaven conversion goals already watch (those autocaptured clicks can't carry custom props, hence this parallel tagged event) The dataLayer push stays as a free hook should GA4 segmentation ever be wanted. QA: ?ab-nav=control|v1|v2 forces and persists a bucket; ?ab-nav=off clears it (re-randomized on the same load). Remove this block and the ab-nav rules in base.css when the test concludes. --> (function () { var KEY = "mdrn-ab-nav", BUCKETS = ["control", "v1", "v2"], b = null; try { var q = new URLSearchParams(location.search).get("ab-nav"); if (q === "off") localStorage.removeItem(KEY); else if (BUCKETS.indexOf(q) > -1) localStorage.setItem(KEY, q); b = localStorage.getItem(KEY); if (BUCKETS.indexOf(b) control */ if (b !== "control") document.documentElement.classList.add("ab-nav-" + b); window.dataLayer = window.dataLayer || []; window.dataLayer.push({ event: "ab_bucket", ab_nav: b }); window.usermaven = window.usermaven || function () { (window.usermavenQ = window.usermavenQ || []).push(arguments); }; window.usermaven("track", "ab_bucket", { ab_nav: b, path: location.pathname }); document.addEventListener("click", function (e) { var t = e.target; if (!t || !t.closest) return; if (t.closest(".nav-cta")) { window.usermaven("track", "ab_nav_cta_click", { ab_nav: b, path: location.pathname }); return; } var btn = t.closest(".cf-submit,.lf-submit"); if (!btn) return; window.usermaven("track", "ab_form_submit", { ab_nav: b, form: btn.classList.contains("cf-submit") ? "cf" : "lf", path: location.pathname }); }, true); })(); OneTrust/CookiePro banner -> GTM. OneTrust renders the GDPR banner and flips the consent signals on accept; GA4 and any other tags (Usermaven, reo.dev, LinkedIn, ...) fire inside the GTM container, gated by those signals. Skipped on localhost so dev traffic stays out of analytics. --> (function () { var h = location.hostname; if (h === "localhost" || h === "127.0.0.1" || h === "0.0.0.0" || h === "::1" || h === "" || /\.local$/.test(h)) return; // Google Consent Mode v2 — deny all storage until the user consents via OneTrust. window.dataLayer = window.dataLayer || []; // Expose gtag on window: the GTM "CookiePro Consent Failsafe" tag calls // gtag("consent","update",…) and bails on `typeof gtag !== "function"`, so it // must be reachable globally or Consent Mode never leaves the denied default // (which silently blocks remarketing, Google Ads conversions, and GA4). window.gtag = window.gtag || function gtag() { dataLayer.push(arguments); }; gtag("consent", "default", { ad_storage: "denied", ad_user_data: "denied", ad_personalization: "denied", analytics_storage: "denied", functionality_storage: "denied", personalization_storage: "denied", security_storage: "denied" }); window.OptanonWrapper = function () {}; // OneTrust / CookiePro consent banner (pushes consent updates back into the dataLayer). var ot = document.createElement("script"); ot.src = "https://cookie-cdn.cookiepro.com/scripttemplates/otSDKStub.js"; ot.type = "text/javascript"; ot.charset = "UTF-8"; ot.setAttribute("data-domain-script", "0190cb61-822b-7b15-8cbc-563a8320e82a"); document.head.appendChild(ot); // Google Tag Manager — container holds GA4 and the rest of the marketing tags. (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ "gtm.start": new Date().getTime(), event: "gtm.js" }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s); var dl = l != "dataLayer" ? "&l=" + l : ""; j.async = true; j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl; f.parentNode.insertBefore(j, f); })(window, document, "script", "dataLayer", "GTM-5P4GJBQ"); })(); Moderne: your codebase has a genome”。
官网公开摘要
Moderne sequences your codebase into a genome, then finds and edits out each defect across every service at once. Run by agents, validated by your engineers.
Moderne 使用边界
这份 Moderne 记录于 2026-08-28 核对,引用地址为 moderne.ai;公开摘要用于保留一手资料依据,不把目录旧摘要扩展为未公开的功能、价格或服务承诺。
Moderne 的站内定价标签为“Paid”,该标签只用于目录筛选,不作为当前价格事实;数据处理、计费和可用范围应以 moderne.ai 当前页面及实际账号为准。