{
    "$schema": "https://ui.shadcn.com/schema/registry-item.json",
    "name": "blog",
    "type": "registry:block",
    "title": "Blog page",
    "description": "A marketing blog index composed from site-header, a hero with a tab bar, category filter chips, the blog-grid article cards, a newsletter section and site-footer.",
    "registryDependencies": [
        "tokens",
        "site-header",
        "blog-grid",
        "newsletter",
        "field",
        "site-footer",
        "button"
    ],
    "meta": {
        "category": "Blocks",
        "layout": "screen"
    },
    "files": [
        {
            "path": "blocks/blog.html",
            "type": "registry:file",
            "target": "blocks/blog.html",
            "content": "<!-- Blog page block\n     A marketing blog index composed from site-header, a hero with a tab bar,\n     a category filter chip row, the blog-grid article cards, a newsletter\n     section and site-footer. Marketing theme. -->\n\n<div style=\"min-height: 100%; background: var(--dp-bg);\">\n  <header class=\"dp-site-header\">\n    <nav class=\"dp-site-nav\" aria-label=\"Primary\">\n      <a class=\"dp-site-logo\" href=\"/\" aria-label=\"Dataprovider.com\">\n        <svg viewBox=\"0 0 294 82\" role=\"img\" aria-label=\"Dataprovider.com\"><g fill=\"currentColor\"><path d=\"M121.52.73h7.79c2.98.04 7.48.1 10.6 2.88 2.53 2.29 3.5 5.72 3.5 9.14 0 2.11-.31 3.67-.62 4.71-2.25 7.55-9.08 7.69-11.64 7.72h-9.63zm6.17 5.16v14.37h1.87c3.26-.07 7.76-.24 7.76-7.27 0-1.7-.17-3.39-1.28-4.92-1.66-2.22-4.02-2.18-5.89-2.18zM157.17.73l9.01 24.45h-6.51l-1.21-3.91h-9.01l-1.21 3.91h-6.51L150.8.73zm-3.29 5.82c-.31 1.25-.66 2.53-1 3.78-.52 1.84-1.45 4.71-2.01 6.55h6.2zM162.08.7h18.84v4.85h-6.34v19.64h-6.13V5.55h-6.37zM192.16.73l9.01 24.45h-6.51l-1.21-3.91h-9.01l-1.21 3.91h-6.51L185.79.73zm-3.29 5.82c-.31 1.25-.66 2.53-1 3.78-.52 1.84-1.45 4.71-2.01 6.55h6.2zM121.52 28.82h9.84c4.02 0 7.59 0 9.73 3.08.94 1.39 1.39 3.36 1.39 5.02 0 1.35-.28 2.67-.83 3.81-2.11 4.36-6.62 4.47-9.94 4.54h-4.05v8h-6.13V28.82zm6.13 4.51v7.41h3.67c2.29 0 5.06-.07 5.06-3.84 0-3.57-3.08-3.57-4.85-3.57zM143.84 28.82h11.01c2.56.04 5.75.07 8 2.49 1.14 1.28 1.94 3.22 1.94 5.44 0 4.92-3.36 6.13-5.02 6.75l5.65 9.77h-6.75l-4.85-8.73h-3.84v8.73h-6.13V28.82zm6.13 4.57v6.62h5.06c.87-.03 3.67-.1 3.67-3.36 0-3.12-2.25-3.22-3.53-3.26zM177.79 53.97c-7.76 0-12.16-5.96-12.16-13.02 0-6.62 4.19-12.88 12.05-12.88 1.45 0 2.98.21 4.47.73 7.48 2.6 7.97 10.74 7.97 12.4 0 4.23-1.94 8.04-4.64 10.22-2.39 1.96-5.17 2.55-7.69 2.55m4.22-19.02c-1.04-1.11-2.63-1.8-4.3-1.8-3.71 0-6.06 3.26-6.06 7.69 0 5.82 3.26 7.97 6.13 7.97 2.91 0 6.03-2.08 6.2-7.2.11-2.57-.58-5.17-1.97-6.66M204.9 28.82h6.51l-8.49 24.45h-6.23l-8.38-24.45h6.51l5.06 17.39zM218.22 28.82v24.45h-6.1V28.82zM220.82 28.82h7.79c2.98.04 7.48.1 10.6 2.88 2.53 2.29 3.5 5.72 3.5 9.14 0 2.11-.31 3.67-.62 4.71-2.25 7.55-9.08 7.69-11.64 7.72h-9.63zm6.17 5.16v14.37h1.87c3.26-.07 7.76-.24 7.76-7.27 0-1.7-.17-3.4-1.28-4.92-1.66-2.22-4.02-2.18-5.89-2.18zM244.28 28.82h18.08v4.75h-11.98V38h11.19v4.64h-11.19v5.82h13.06v4.81h-19.15zM265.05 28.82h11.01c2.56.04 5.75.07 8 2.49 1.14 1.28 1.94 3.22 1.94 5.44 0 4.92-3.36 6.13-5.02 6.75l5.65 9.77h-6.75l-4.85-8.73h-3.84v8.73h-6.13V28.82zm6.13 4.57v6.62h5.06c.87-.03 3.67-.1 3.67-3.36 0-3.12-2.25-3.22-3.53-3.26zM287.75 47.49h5.47v5.78h-5.47zM142.79 75.21c-.9 1.42-1.77 2.81-3.71 4.16-1.04.73-3.43 2.15-6.82 2.15-6.48 0-11.71-4.71-11.71-12.99 0-7.24 4.92-12.95 11.85-12.95 2.81 0 5.3.97 7.14 2.42 1.7 1.35 2.49 2.7 3.19 3.91l-4.85 2.42c-.35-.8-.76-1.63-1.84-2.53-1.18-.94-2.36-1.21-3.36-1.21-3.95 0-6.03 3.67-6.03 7.76 0 5.37 2.74 8.04 6.03 8.04 3.19 0 4.47-2.22 5.3-3.64z\"></path><path d=\"M154.48 81.48c-7.76 0-12.16-5.96-12.16-13.02 0-6.62 4.19-12.88 12.05-12.88 1.45 0 2.98.21 4.47.73 7.48 2.6 7.97 10.74 7.97 12.4 0 4.23-1.94 8.04-4.64 10.22-2.39 1.97-5.16 2.55-7.69 2.55m4.22-19.01c-1.04-1.11-2.63-1.8-4.3-1.8-3.71 0-6.06 3.26-6.06 7.69 0 5.82 3.26 7.97 6.13 7.97 2.91 0 6.03-2.08 6.2-7.2.11-2.57-.58-5.17-1.97-6.66M195.27 56.34v24.45h-5.85l.38-17.42.07-2.46-.21.87c-.31 1.39-.35 1.56-.62 2.6l-4.61 16.42h-5.26l-4.43-15.73-1.07-4.36c.1 1.94.1 2.36.21 4.68l.31 15.41h-5.92V56.35h8.94l3.74 13.72.87 3.91c.35-1.7.38-1.87.66-3.01l3.91-14.62h8.88z\"></path><circle cx=\"77.71\" cy=\"71.82\" r=\"9.55\"></circle><path d=\"M34.86.72c5.16 0 9.96.82 14.41 2.47s8.3 4.11 11.55 7.4 5.79 7.4 7.62 12.33 2.75 10.73 2.75 17.38c0 5.83-.75 11.21-2.24 16.15q-2.25 7.395-6.78 12.78c-3.03 3.59-6.8 6.41-11.33 8.46-4.52 2.06-9.85 3.08-15.98 3.08H.33V.72z\"></path></g></svg>\n      </a>\n      <ul class=\"dp-site-menu\">\n        <li><button type=\"button\">Our data <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"></path></svg></button></li>\n        <li><button type=\"button\">Data Access <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"></path></svg></button></li>\n        <li><button type=\"button\">Use Cases <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"></path></svg></button></li>\n        <li><a href=\"/blog/\">Blog</a></li>\n        <li><a href=\"/about/\">Company</a></li>\n      </ul>\n      <div class=\"dp-site-actions\">\n        <a class=\"dp-site-login\" href=\"#\">Log in</a>\n        <a class=\"dp-btn\" data-variant=\"cta\" href=\"/contact/\">Contact</a>\n      </div>\n    </nav>\n  </header>\n\n  <main>\n    <!-- Hero with tabs -->\n    <section class=\"dp-blog-hero\">\n      <h1 class=\"dp-blog-hero-title\">Web data insights that drive action</h1>\n      <p class=\"dp-blog-hero-sub\">Articles, research and product news from the team structuring the web.</p>\n      <div class=\"dp-blog-tabs\">\n        <a class=\"dp-blog-tab\" href=\"/blog/\" aria-current=\"true\">Articles</a>\n        <a class=\"dp-blog-tab\" href=\"/blog/videos/\">Videos</a>\n        <a class=\"dp-blog-tab\" href=\"/blog/press/\">Press</a>\n      </div>\n    </section>\n\n    <!-- Category filters -->\n    <nav class=\"dp-blog-filters\" aria-label=\"Filter by topic\">\n      <a class=\"dp-blog-chip\" href=\"/blog/\" aria-current=\"true\">All</a>\n      <a class=\"dp-blog-chip\" href=\"/blog/asset-management/\">Asset Management</a>\n      <a class=\"dp-blog-chip\" href=\"/blog/brand-protection/\">Brand Protection</a>\n      <a class=\"dp-blog-chip\" href=\"/blog/business-information/\">Business Information</a>\n      <a class=\"dp-blog-chip\" href=\"/blog/domains/\">Domains</a>\n      <a class=\"dp-blog-chip\" href=\"/blog/public-sector/\">Public Sector</a>\n      <a class=\"dp-blog-chip\" href=\"/blog/security/\">Security</a>\n      <a class=\"dp-blog-chip\" href=\"/blog/tech/\">Tech</a>\n    </nav>\n\n    <!-- Article grid -->\n    <section class=\"dp-blog-grid\">\n      <a class=\"dp-blog-card\" href=\"/blog/saas-to-ai-transition/\">\n        <div class=\"dp-blog-card-media\" data-tint=\"a\" aria-hidden=\"true\"><span class=\"dp-blog-card-time\">6 min</span></div>\n        <div class=\"dp-blog-card-body\">\n          <h3 class=\"dp-blog-card-title\">Reading the SaaS to AI transition through web data</h3>\n          <p class=\"dp-blog-card-meta\"><span class=\"dp-blog-card-author\">Mathijs Baas</span><span class=\"dp-blog-card-date\">29 days ago</span></p>\n        </div>\n      </a>\n      <a class=\"dp-blog-card\" href=\"/blog/getting-started-mcp/\">\n        <div class=\"dp-blog-card-media\" data-tint=\"b\" aria-hidden=\"true\"><span class=\"dp-blog-card-time\">5 min</span></div>\n        <div class=\"dp-blog-card-body\">\n          <h3 class=\"dp-blog-card-title\">Getting started with the Dataprovider MCP: let AI query 350 million domains for you</h3>\n          <p class=\"dp-blog-card-meta\"><span class=\"dp-blog-card-author\">Gijs Barends</span><span class=\"dp-blog-card-date\">2 months ago</span></p>\n        </div>\n      </a>\n      <a class=\"dp-blog-card\" href=\"/blog/cloudflare-hosting/\">\n        <div class=\"dp-blog-card-media\" data-tint=\"c\" aria-hidden=\"true\"><span class=\"dp-blog-card-time\">6 min</span></div>\n        <div class=\"dp-blog-card-body\">\n          <h3 class=\"dp-blog-card-title\">Cloudflare hides the hosting company. We found it anyway.</h3>\n          <p class=\"dp-blog-card-meta\"><span class=\"dp-blog-card-author\">Christian Branbergen</span><span class=\"dp-blog-card-date\">3 months ago</span></p>\n        </div>\n      </a>\n      <a class=\"dp-blog-card\" href=\"/blog/hidden-prompts-html/\">\n        <div class=\"dp-blog-card-media\" data-tint=\"d\" aria-hidden=\"true\"><span class=\"dp-blog-card-time\">5 min</span></div>\n        <div class=\"dp-blog-card-body\">\n          <h3 class=\"dp-blog-card-title\">Hidden prompts in HTML: the invisible threat exploiting AI browsers</h3>\n          <p class=\"dp-blog-card-meta\"><span class=\"dp-blog-card-author\">Lucia Baldassini</span><span class=\"dp-blog-card-date\">6 months ago</span></p>\n        </div>\n      </a>\n      <a class=\"dp-blog-card\" href=\"/blog/billion-records-ai-navigator/\">\n        <div class=\"dp-blog-card-media\" data-tint=\"e\" aria-hidden=\"true\"><span class=\"dp-blog-card-time\">5 min</span></div>\n        <div class=\"dp-blog-card-body\">\n          <h3 class=\"dp-blog-card-title\">How we talk to a billion records with our AI Navigator</h3>\n          <p class=\"dp-blog-card-meta\"><span class=\"dp-blog-card-author\">Tim Kreutz</span><span class=\"dp-blog-card-date\">7 months ago</span></p>\n        </div>\n      </a>\n      <a class=\"dp-blog-card\" href=\"/blog/websites-per-capita/\">\n        <div class=\"dp-blog-card-media\" data-tint=\"a\" aria-hidden=\"true\"><span class=\"dp-blog-card-time\">5 min</span></div>\n        <div class=\"dp-blog-card-body\">\n          <h3 class=\"dp-blog-card-title\">Websites per capita: how many websites does each EU country have per 1,000 inhabitants?</h3>\n          <p class=\"dp-blog-card-meta\"><span class=\"dp-blog-card-author\">Gijs Barends</span><span class=\"dp-blog-card-date\">8 months ago</span></p>\n        </div>\n      </a>\n    </section>\n\n    <!-- Newsletter -->\n    <section class=\"dp-newsletter\">\n      <div class=\"dp-newsletter-body\">\n        <p class=\"dp-newsletter-eyebrow\">Newsletter</p>\n        <h2 class=\"dp-newsletter-title\">Subscribe to get monthly <span class=\"light\">web data insights</span></h2>\n        <p class=\"dp-newsletter-expect\">What can you expect?</p>\n        <ul class=\"dp-newsletter-list\">\n          <li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"></path></svg> The latest tech news</li>\n          <li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"></path></svg> Exclusive insights from data experts</li>\n          <li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"></path></svg> One email a month, no spam</li>\n        </ul>\n      </div>\n      <form class=\"dp-newsletter-form\" action=\"#\" method=\"post\">\n        <div class=\"dp-field\">\n          <label class=\"dp-field-label\" for=\"bnl-first\">First name</label>\n          <input class=\"dp-field-input\" id=\"bnl-first\" name=\"first_name\" type=\"text\" autocomplete=\"given-name\">\n        </div>\n        <div class=\"dp-field\">\n          <label class=\"dp-field-label\" for=\"bnl-last\">Last name</label>\n          <input class=\"dp-field-input\" id=\"bnl-last\" name=\"last_name\" type=\"text\" autocomplete=\"family-name\">\n        </div>\n        <div class=\"dp-field\">\n          <label class=\"dp-field-label\" for=\"bnl-email\">Email</label>\n          <input class=\"dp-field-input\" id=\"bnl-email\" name=\"email\" type=\"email\" autocomplete=\"email\">\n        </div>\n        <button class=\"dp-btn\" data-variant=\"cta\" type=\"submit\">Subscribe</button>\n      </form>\n    </section>\n  </main>\n\n  <footer class=\"dp-site-footer\">\n    <div class=\"dp-footer-inner\">\n      <div class=\"dp-footer-cols\">\n        <div class=\"dp-footer-col\">\n          <h4>Our data</h4>\n          <ul>\n            <li><a href=\"/our-data/domain/\">Domain</a></li>\n            <li><a href=\"/our-data/business/\">Business</a></li>\n            <li><a href=\"/our-data/technology/\">Technology detection</a></li>\n            <li><a href=\"/our-data/risk/\">Risk</a></li>\n          </ul>\n        </div>\n        <div class=\"dp-footer-col\">\n          <h4>Data Access</h4>\n          <ul>\n            <li><a href=\"/data-access/search-engine/\">Search engine</a></li>\n            <li><a href=\"/data-access/ai-navigator-mcp/\">AI navigator + MCP</a></li>\n            <li><a href=\"/data-access/dashboards/\">Dashboards</a></li>\n            <li><a href=\"/recipes/\">Recipes</a></li>\n          </ul>\n        </div>\n        <div class=\"dp-footer-col\">\n          <h4>Use Cases</h4>\n          <ul>\n            <li><a href=\"/cases/assets/\">Asset management</a></li>\n            <li><a href=\"/cases/brand-protection/\">Online brand protection</a></li>\n            <li><a href=\"/cases/business-information/\">Business information</a></li>\n            <li><a href=\"/cases/public/\">Public sector</a></li>\n          </ul>\n        </div>\n        <div class=\"dp-footer-col\">\n          <h4>Company</h4>\n          <ul>\n            <li><a href=\"/about/\">About us</a></li>\n            <li><a href=\"/contact/\">Contact</a></li>\n            <li><a href=\"/crawler/\">Crawler</a></li>\n          </ul>\n        </div>\n      </div>\n      <div class=\"dp-footer-mcp\">\n        <div class=\"dp-footer-mcp-head\">MCP <span class=\"dp-footer-new\">New</span></div>\n        <div class=\"dp-footer-mcp-card\">\n          <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\" style=\"color: var(--dp-navy);\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle></svg>\n          <span class=\"dp-footer-mcp-label\"><small>MCP available on</small><b>ChatGPT</b></span>\n        </div>\n        <div class=\"dp-footer-mcp-card\">\n          <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\" style=\"color: #d97757;\"><path d=\"M12 2v20M2 12h20M5 5l14 14M19 5 5 19\"></path></svg>\n          <span class=\"dp-footer-mcp-label\"><small>MCP available on</small><b>Claude</b></span>\n        </div>\n      </div>\n    </div>\n  </footer>\n</div>\n"
        },
        {
            "path": "blocks/blog.css",
            "type": "registry:file",
            "target": "blocks/blog.css",
            "content": "/* Blog page\n   Page-specific styles for the blog hero, its tab bar and the category filter\n   chips. The article grid and newsletter use their own component CSS. Colour\n   and type from tokens.css (marketing theme). */\n\n.dp-blog-hero {\n  max-width: 72rem;\n  margin: 0 auto;\n  padding: var(--dp-space-12) var(--dp-space-6) var(--dp-space-6);\n}\n\n.dp-blog-hero-title {\n  margin: 0 0 var(--dp-space-4);\n  font-size: var(--dp-text-5xl);\n  line-height: var(--dp-leading-tight);\n  font-weight: var(--dp-weight-bold);\n  color: var(--dp-navy);\n}\n\n.dp-blog-hero-sub {\n  max-width: 44ch;\n  margin: 0 0 var(--dp-space-8);\n  font-size: var(--dp-text-lg);\n  color: var(--dp-text-muted);\n}\n\n.dp-blog-tabs {\n  display: flex;\n  gap: var(--dp-space-6);\n  border-bottom: 1px solid var(--dp-border);\n}\n\n.dp-blog-tab {\n  padding: 0 0 var(--dp-space-3);\n  margin-bottom: -1px;\n  font-size: var(--dp-text-base);\n  font-weight: var(--dp-weight-bold);\n  color: var(--dp-text-muted);\n  text-decoration: none;\n  border-bottom: 2px solid transparent;\n}\n\n.dp-blog-tab[aria-current=\"true\"] {\n  color: var(--dp-navy);\n  border-bottom-color: var(--dp-navy);\n}\n\n.dp-blog-filters {\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--dp-space-2);\n  max-width: 72rem;\n  margin: 0 auto;\n  padding: var(--dp-space-6) var(--dp-space-6) 0;\n}\n\n.dp-blog-chip {\n  padding: var(--dp-space-2) var(--dp-space-4);\n  font-size: var(--dp-text-sm);\n  font-weight: var(--dp-weight-bold);\n  color: var(--dp-text-muted);\n  background: var(--dp-surface);\n  border: 1px solid var(--dp-border);\n  border-radius: var(--dp-radius-full);\n  text-decoration: none;\n  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;\n}\n\n.dp-blog-chip:hover { border-color: var(--dp-border-strong); color: var(--dp-navy); }\n\n.dp-blog-chip[aria-current=\"true\"] {\n  color: var(--dp-surface);\n  background: var(--dp-navy);\n  border-color: var(--dp-navy);\n}\n"
        }
    ]
}
