{
  "name": "Negency Lab",
  "url": "https://negency-lab-pilot.pages.dev/",
  "description": "Independent English tutorials on free developer tools, static hosting, DNS, and AdSense-ready site hygiene.",
  "organization": {
    "name": "Negency Lab",
    "url": "https://negency-lab-pilot.pages.dev/",
    "email": "bravemanhuang2025@gmail.com",
    "founder": "William HUANG",
    "sameAs": [],
    "notAffiliatedWith": [
      "Cloudflare",
      "Google",
      "GitHub",
      "Netlify",
      "DNSHE"
    ]
  },
  "updated": "2026-10-01",
  "agentDocs": {
    "llmsTxt": "https://negency-lab-pilot.pages.dev/llms.txt",
    "forAgents": "https://negency-lab-pilot.pages.dev/for-agents.md",
    "sitemap": "https://negency-lab-pilot.pages.dev/sitemap.xml",
    "robots": "https://negency-lab-pilot.pages.dev/robots.txt"
  },
  "monetizationNote": "AI crawlers do not generate AdSense revenue. Humans do. This file is for citeability and discovery only.",
  "articles": [
    {
      "slug": "adsense-ready-privacy-policy-for-dev-sites",
      "title": "Build a Privacy Policy Page That Helps AdSense Review (Without Lawyer Cosplay)",
      "description": "What a small developer site should disclose: analytics, ads, cookies, contact, and EU/US basics—written for AdSense-ready static sites.",
      "url": "https://negency-lab-pilot.pages.dev/articles/adsense-ready-privacy-policy-for-dev-sites.html",
      "datePublished": "2026-10-01",
      "dateModified": "2026-10-01",
      "answer": "A small developer site seeking AdSense should publish a readable Privacy page covering what data you collect, cookies/ads/analytics vendors, contact email, and basic EU/US notes—without fake legalese. Pair it with About and Contact pages.",
      "faqs": [
        {
          "q": "Do I need a privacy policy before AdSense?",
          "a": "Yes—publish clear Privacy, About, and Contact pages before or during review."
        },
        {
          "q": "What must a small static site disclose?",
          "a": "Ads/analytics cookies if used, contact email, what personal data you collect (often little), and that third-party vendors may set cookies."
        }
      ]
    },
    {
      "slug": "cloudflare-pages-vs-github-pages-vs-netlify-2026",
      "title": "Cloudflare Pages vs GitHub Pages vs Netlify Free: Which Host Fits a Small Dev Site in 2026?",
      "description": "Practical comparison of free static hosts for developer blogs—limits, deploy workflows, custom domains, and AdSense-ready pilots.",
      "url": "https://negency-lab-pilot.pages.dev/articles/cloudflare-pages-vs-github-pages-vs-netlify-2026.html",
      "datePublished": "2026-10-01",
      "dateModified": "2026-10-01",
      "answer": "For a small English developer how-to site in 2026, Cloudflare Pages is the best default when you need CLI/direct upload without Git; GitHub Pages wins if docs already live in a public repo; Netlify free fits teams already standardized on its preview UX. Host choice does not approve AdSense—content and ownership pages do.",
      "faqs": [
        {
          "q": "Which free static host is best for a solo AdSense pilot in 2026?",
          "a": "Cloudflare Pages is usually the best fit for CLI deploys and a clean pages.dev URL; pick GitHub Pages if your source of truth is already a public GitHub repo."
        },
        {
          "q": "Can I use Cloudflare Pages without connecting GitHub?",
          "a": "Yes. Use Wrangler direct upload (wrangler pages deploy) to publish a folder of static files."
        },
        {
          "q": "Does the host decide AdSense approval?",
          "a": "No. Google reviews content quality, ownership pages, and policy—not which CDN you use."
        }
      ]
    },
    {
      "slug": "deploy-static-site-cloudflare-pages-wrangler",
      "title": "Deploy a Static Site to Cloudflare Pages with Wrangler (No Git Required)",
      "description": "Create a Pages project, deploy from the CLI with Wrangler, verify pages.dev, and prepare a later CNAME custom domain.",
      "url": "https://negency-lab-pilot.pages.dev/articles/deploy-static-site-cloudflare-pages-wrangler.html",
      "datePublished": "2026-10-01",
      "dateModified": "2026-10-01",
      "answer": "Deploy static HTML to Cloudflare Pages without Git by creating an API token with Pages Edit, then running npx wrangler pages deploy . --project-name=<name> from the folder that contains index.html. You get a live *.pages.dev URL; add a custom domain via CNAME later.",
      "faqs": [
        {
          "q": "How do I deploy Cloudflare Pages without Git?",
          "a": "Use Wrangler direct upload: wrangler pages deploy <folder> --project-name=<project>."
        },
        {
          "q": "What Node version does Wrangler 4 need?",
          "a": "As of 2026, Wrangler 4.x typically expects Node.js 22+. Check with npx wrangler --version."
        },
        {
          "q": "Where should I store the Cloudflare API token?",
          "a": "Outside the web root in a private secrets file—never in HTML, Git, or screenshots."
        }
      ]
    },
    {
      "slug": "free-local-first-dev-tools-2026",
      "title": "Local-First Developer Tooling: Free Alternatives Worth Using in 2026",
      "description": "A practical tour of free local-first tools for coding, notes, HTTP debugging, and static site work—without locking your pilot into paid SaaS.",
      "url": "https://negency-lab-pilot.pages.dev/articles/free-local-first-dev-tools-2026.html",
      "datePublished": "2026-10-01",
      "dateModified": "2026-10-01",
      "answer": "In 2026, a local-first free toolchain for pilots often includes a solid editor, local notes, HTTP debugging (e.g. curl/Insomnia-class tools), Git, and a static host CLI—avoid locking a side project into paid SaaS before you have traffic.",
      "faqs": [
        {
          "q": "What is local-first tooling?",
          "a": "Prefer apps and workflows that keep source and data on your machine, with optional sync—useful for pilots and agent build boxes."
        }
      ]
    },
    {
      "slug": "free-subdomains-cname-dnshe-without-changing-ns",
      "title": "Free Subdomains and CNAME: Point a DNSHE Hostname at Cloudflare Pages Without Changing NS",
      "description": "How to attach a free subdomain like wei-huang.ccwu.cc to Cloudflare Pages using CNAME only—why keeping DNSHE nameservers matters.",
      "url": "https://negency-lab-pilot.pages.dev/articles/free-subdomains-cname-dnshe-without-changing-ns.html",
      "datePublished": "2026-10-01",
      "dateModified": "2026-10-01",
      "answer": "Point a free DNSHE subdomain at Cloudflare Pages with a CNAME to yourproject.pages.dev while leaving DNSHE nameservers unchanged. Changing NS on some free providers can forfeit the domain—prefer CNAME-only.",
      "faqs": [
        {
          "q": "Can I use a free subdomain with Cloudflare Pages without changing nameservers?",
          "a": "Yes—create a CNAME from your hostname to <project>.pages.dev and keep the free provider NS intact."
        },
        {
          "q": "Why not change NS to Cloudflare?",
          "a": "Some free subdomain services cancel the domain if you move nameservers; CNAME avoids that risk."
        }
      ]
    },
    {
      "slug": "github-actions-static-deploy-minimal",
      "title": "Minimal GitHub Actions for Static Sites (When You Outgrow Manual Wrangler)",
      "description": "A minimal CI pattern to build and deploy static sites—secrets hygiene, Node setup, and when manual Wrangler is still better.",
      "url": "https://negency-lab-pilot.pages.dev/articles/github-actions-static-deploy-minimal.html",
      "datePublished": "2026-10-01",
      "dateModified": "2026-10-01",
      "answer": "When you outgrow manual Wrangler, a minimal GitHub Actions workflow checks out the repo, sets up Node, authenticates with Cloudflare secrets stored in repo settings, and runs wrangler pages deploy on the publish folder. Keep tokens out of YAML plaintext.",
      "faqs": [
        {
          "q": "When should I move from manual Wrangler to Actions?",
          "a": "When deploys are frequent enough that secrets-in-shell becomes error-prone, or collaborators need a shared pipeline."
        },
        {
          "q": "Where do Cloudflare tokens go in Actions?",
          "a": "Repository Secrets (or Environments)—never committed in the workflow file."
        }
      ]
    },
    {
      "slug": "robots-txt-sitemap-small-dev-blog",
      "title": "robots.txt and sitemap.xml for a Small Developer Blog (That Search Engines Can Use)",
      "description": "Practical robots.txt and XML sitemap setup for static developer sites—what to allow, what to omit, and how to keep the sitemap honest.",
      "url": "https://negency-lab-pilot.pages.dev/articles/robots-txt-sitemap-small-dev-blog.html",
      "datePublished": "2026-10-01",
      "dateModified": "2026-10-01",
      "answer": "For a small static developer blog, allow crawlers to / , list every public HTML URL in sitemap.xml with honest lastmod dates, and link the sitemap from robots.txt. Omit private, duplicate, and placeholder junk from the sitemap.",
      "faqs": [
        {
          "q": "What should robots.txt contain on a small blog?",
          "a": "User-agent: * Allow: / plus a Sitemap: line pointing at your XML sitemap."
        },
        {
          "q": "Should every file be in the sitemap?",
          "a": "No—only canonical public pages you want indexed; keep lastmod honest."
        }
      ]
    },
    {
      "slug": "security-headers-https-static-hosts",
      "title": "HTTPS and Security Headers on Free Static Hosts: A Practical Baseline",
      "description": "Set a sensible header baseline for static developer sites on Cloudflare Pages and similar hosts—HTTPS, referrer policy, and what not to break.",
      "url": "https://negency-lab-pilot.pages.dev/articles/security-headers-https-static-hosts.html",
      "datePublished": "2026-10-01",
      "dateModified": "2026-10-01",
      "answer": "On Cloudflare Pages, ship HTTPS by default and add a _headers file with nosniff, a strict referrer policy, frame denial, and a tight Permissions-Policy. Avoid a broken CSP that blocks AdSense or CSS until you can test thoroughly.",
      "faqs": [
        {
          "q": "How do I set security headers on Cloudflare Pages?",
          "a": "Add a _headers file in the publish directory with paths and header lines Pages understands."
        },
        {
          "q": "Should I enable a strict CSP on day one?",
          "a": "Start with safer baseline headers; add CSP after testing ads, analytics, and scripts."
        }
      ]
    },
    {
      "slug": "write-adsense-safe-technical-tutorials",
      "title": "How to Write AdSense-Safe Technical Tutorials Without Thin Content",
      "description": "Content patterns that pass basic quality smell tests: depth, originality, navigation, and niches that fit developer how-tos.",
      "url": "https://negency-lab-pilot.pages.dev/articles/write-adsense-safe-technical-tutorials.html",
      "datePublished": "2026-10-01",
      "dateModified": "2026-10-01",
      "answer": "AdSense-safe technical tutorials need original depth, clear navigation, About/Privacy/Contact, and niches that solve real setup problems—not thin keyword doorways or invented publisher IDs. Write end-to-end how-tos with working commands and failure modes.",
      "faqs": [
        {
          "q": "What content patterns fail AdSense review?",
          "a": "Thin spun lists, doorway pages, missing ownership pages, and policy-violating niches."
        },
        {
          "q": "How long should a how-to be?",
          "a": "Long enough to complete the task with commands and troubleshooting—typically hundreds of useful words, not padded fluff."
        }
      ]
    }
  ]
}
