November 202610 added · 5 updated▶
- Added
Published the third article in the IP infrastructure series. Azure publishes 108,967,860 IPv4 addresses across 46,992 CIDRs, while BGP across all six Microsoft cloud ASNs shows 82.4 million. The 26.5M gap looks like private ExpressRoute routing, not missing ASNs. Same live pipeline as the AWS and GCP pieces.
- Added
GCP publishes 19.4M IPv4; BGP via all five ASNs shows 55.9M. AS396982 routes 51.7M that most tools miss entirely.
- Updatedimprove readability and paragraph structure
- Added
Converts plain-text body sources section to structured frontmatter sources with groups and URLs, matching the playwright-statistics pattern.
- Added
Rearranging article for better readability and deleting some obvious repetitions. Moves takeaways to sidebar. Fixes void-element regex in mdx-heading-id Vite plugin to skip already-self-closing tags.
- Added
Added two new IP infrastructure articles with live-generated data: AWS holds 188.7M published IPv4 addresses but routes 244.1M via BGP — the 55.5M gap is what most detection pipelines miss. Also published the companion piece on total IPv4/IPv6 address space, RIR allocation, CGNAT, and proxy pool quality. Both cross-link to each other.
- Added
Published a breakdown of Playwright adoption numbers across testing, automation, and scraping communities. Covers what 141M weekly npm downloads, 99,500 GitHub stars, and four conflicting company-count estimates (4,484 vs 47,694) actually measure — and what none of them can tell you about scraping use specifically. Includes npm screenshot, bar charts, and 10 data tables.
- Updated
Refined the changelog page with per-entry expand/collapse — clicking the ▶ on any entry reveals the full description without cluttering the default view. Month headings rebuilt as clean bold titles (no card border). Fixed a browser shadow DOM issue that was pushing subject lines below the badge row. Descriptions now show only the first paragraph of the commit body, HTML tags stripped. Commit convention updated to past tense throughout.
- Added
Rebuilt the changelog page from a flat list into a month accordion — current month open by default, older months collapsed. Each entry now shows the commit body as a description paragraph below the subject line, with inline markdown links rendering as HTML. Chips changed to Added / Updated / Improved using existing badge tokens.
- Updatedcontent edits across research articles and session docs
- Addedpublish benchmark is a photograph article
- Addedadd callout component suite — Note, Tip, Warning, Highlight, Quote, PS
- Updatedadd Now under About Me dropdown in nav
- Updatedupdate /now page with github link, crypto side gig, ai visibility maps
- Addedadd /now page with current projects and cross-link from about-me
October 20266 added · 4 updated▶
- Added
Replace hardcoded researchLog with getCollection('research') sorted by latest updates_log date (top 7), so new posts show on home without a code edit. Add "See all posts →" link under the column pointing to /blog/.
- Updated
Old section 4 (cost comparison) and section 5 (why this exists) collapsed into one section titled "Why I built this." Opens on the SEO hypothesis-testing argument: every current SERP checker is a monitoring tool, not a research assistant. Then the measurable reasons: a concrete per-query cost table against Whatsmyserp, SerpRobot, SerpWatch, Ahrefs, and Serper.dev with their respective caps and upfront commitments, and the customizability point about vendor-decided data shapes. Closes with three "what this unlocks" paragraphs. Research section renumbered 5, FAQ renumbered 6.
- Updated
Reframed section 1 from quickstart-feel to setup-feel: Docker and Python as two labeled setup paths, then a dedicated "Pick your engine, pick your proxy" subsection. Clarified the ambiguous Bing-no-proxy claim: Bing works on local IP for low volume from your box's country, but any geo override (US Bing from Europe) or production scale needs a proxy, same as Google. The setup is the same move for both: paste credentials, change the dropdown.
- Updated
Install & Links widget was eating screen above-the-fold. Moved it below Changelog so the hero stats + research + tags + TOC land first. Replaced the plain ul link list with a 2-column mono grid at fs-xs, underlined, matching the License/Status footer style.
- Updated
Section 1 is now the quickstart + user flow (merges old sections 3 and 6). Section 2 is What it does. Section 3 is What's included (engines + proxy table). Section 4 is Why it costs less. Section 5 is Why this exists. Section 6 is the research journey. FAQ moves to section 7 and absorbs the four "what it does not do" items as proper Q&A.
- Added
Lead the page with SEO-hypothesis-testing as the thing a rank tracker is for; cost structure is the supporting arg. Converted "What it does" to a feature grid with available / coming-soon markers (adds AI Overview, keyword data, MCP, Claude-queryable DB). Simplified engines into one table and inlined the Decodo proxy cost (replaces the Section 9 placeholder). Rewrote "How it works" as the actual user flow (experienced vs new). Simplified the cost comparison. Deleted the dedicated More-Tools section; moved to sidebar as plain tags under "Other open source tools" (title links to /opensource/).
- Added
New opensource content collection + /opensource/ directory + /open-serp-checker/ landing page. Reframes the pitch around the unavoidable cost of rank tracking (proxies or compute) rather than engine or feature differentiation. Hero + why + 7-post research anchor + Docker quickstart + engines table + cost-structure comparison + proxy report card placeholder + planned siblings + FAQ. New OpenSourcePage component, dispatcher branch, nav entry, scope grammar, site-check coverage.
- Added
A connected set of seven research posts on self-scraping Google SERPs: one hub covering the final working stack (Camoufox + minted identity + parked tab on Decodo rotating, 20/20 pass at parity with Serper) and six lesson posts documenting the measurements that got there — the curl_cffi dead end, the two-layer block, the honest 44% baseline, the humanize A/B that didn't help, the pool burn that reframed everything, and the parked-tab mechanism change.
- Added
Add a reusable sidebar block for connected post sets. The widget renders a "Final" item (hub, soft-accent tint) above a numbered "Lessons I Learned In The Process" . Current-page detection comes from Astro.url.pathname: the hub block always shows, and the matching lesson picks up an is-current class for bold + left accent border.
- Addedadd favicon set and web manifest
September 202620 added · 6 updated▶
- Addedadd /blog/ directory page with derived tag badges
- Updatedslim nav, rename about-me and testing-methodology pages
- Addedmove content pages to root urls with unified slug dispatcher
- Addedhomepage 2-col activity, sitemap, seo meta, robots and 404
- Addedinitial draft
- Addedinitial 2026 deep dive
- Addednew
- Addedfirst cut
- Addedinitial cut
- Addedai bots pass search crawlers
- Addedinitial 2026 deep dive
- Addedadd research collection route components and sidebar widgets
- Updated
leaderboard heading to lead with the 24-hour testing effort, replace the verbose table-foot line with "Ran on Sep 15-16, 2026", and add the author byline next to the story section heading.
- Updateddrop report cards, add details column to leaderboard
- Updatedmerge latest-report, add coming-soon, drop follow and plan
- Updatednav dropdown, homepage reorder, wording touchups
- Addedadd affiliate-disclosure page with provider table
- Addedadd tests, use-cases, best, about, methodology, roadmap
- Updatedadd residential reports section to homepage
- Addedinitial residential review
- Addedinitial residential review
- Addedinitial residential review
- Addedinitial residential review
- Addedinitial residential review
- Addedinitial residential review
- Addedinitial astro scaffold