Timely updates
On shipping content the way you ship code, and on building Contentcron itself.
- programmatic-seo-works-until-your-product-needs-explaining.mdx
Programmatic SEO works until your product needs explaining
Programmatic SEO for SaaS captures demand that already has a name. If your product needs explaining first, the template breaks. Here's what to publish instead.
strategy1,705 words6 min read - refresh-the-decayed-post-before-you-write-a-new-one.mdx
Content refresh strategy: fix the decayed post before you write a new one
Most blogs publish new posts while the old ones quietly bleed clicks. Here's how to spot decay in Search Console, decide whether today's slot goes to a refresh or a new post, and ship the fix as a diff instead of a date bump.
craft1,790 words7 min read - how-often-should-a-startup-publish-blog-posts.mdx
How often should a startup publish blog posts? One a day, not fifty on Tuesday
Google has said publishing frequency isn't a ranking factor, which makes cadence an operations problem instead of an SEO one. Here's why one reviewed article a day beats fifty dropped on a Tuesday, and what daily cost and returned for us.
content1,645 words6 min read - write-the-comparison-page-without-naming-the-competitor.mdx
Write the comparison page without naming the competitor
How to write a comparison page that names the mechanism instead of the company, sources every claim, and lives in your repo where the diff shows exactly what changed.
seo1,775 words7 min read - find-decayed-posts-search-console-api.mdx
Find your decayed posts with 40 lines of Search Console API
Two searchanalytics.query calls, grouped by page, sorted by click delta. The script, the quota traps, and how to tell real decay from seasonality.
process1,747 words7 min read - ai-content-detector-false-positives.mdx
AI content detector false positives, and why we ignore them
Detectors flag the US Constitution and 61.3% of human-written TOEFL essays. What an AI content detector false positive actually measures, why the number moves for free, and what we check instead.
craft1,600 words6 min read - charts-that-cite-their-sources-in-mdx.mdx
Charts that cite their sources, in MDX
Three ways to add charts and diagrams to an MDX blog (SVG, Mermaid, stat callout), all rendered at build time. And one rule: no source, no figure.
craft1,675 words6 min read - astro-vs-next-js-for-a-blog-that-s-mostly-posts.mdx
Astro vs Next.js for a blog that's mostly posts
Both render Markdown. Only one of them has an opinion about your frontmatter. How to pick Astro or Next.js for a blog by what else lives in the repo.
engineering1,304 words5 min read - generate-llms-txt-from-your-content-collection-at-build-time.mdx
Generate llms.txt from your content collection at build time
Your frontmatter already has the title, description and tags. Generate llms.txt in the build step instead of crawling your own site. Route handlers for Astro, Next.js, Hugo and Eleventy, plus the evidence on whether anything reads it.
craft2,086 words8 min read - contentlayer-is-dead-heres-the-migration-that-doesnt-touch-your-mdx.mdx
Contentlayer is dead. Here's the migration that doesn't touch your MDX.
The README says unmaintained, your Next 15 install throws a peer-dep error, and every replacement reads the exact same files you already have. A loader swap, with the lines that change.
engineering1,568 words6 min read - what-breaks-when-claude-code-writes-a-post-every-day.mdx
You can already write blog posts with Claude Code. Here's what breaks when you do it every day.
The terminal demo works on run one. This is the list of things that quietly fail between run one and run thirty: cron attribution, tool grants, CLAUDE.md drift, topic memory, and figures nobody can source.
craft1,475 words6 min read - migrate-headless-cms-to-mdx-without-breaking-a-url.mdx
Migrate a headless CMS to MDX without breaking a URL
Export is the easy half. How to move a headless CMS blog to MDX with a verified redirect map, 308s that survive Google, and a diff you can review line by line.
process1,968 words7 min read - your-markdown-repo-is-already-the-best-thing-you-can-hand-an-answer-engine.mdx
Your markdown repo is already the best thing you can hand an answer engine
97% of llms.txt files get zero requests. Here's who actually fetches the ones that do, what changed in the v2 spec, and why generating llms.txt for a markdown blog is a build step you already have most of.
craft1,650 words6 min read - getting-started-with-velite.mdx
Getting started with Velite
Velite compiles your content folder into a typed module your app can import. Here's the config that works, the Turbopack caveat every tutorial still gets wrong, and how to turn strict mode into a merge gate for content PRs.
workflow1,641 words6 min read - screenshots-in-your-docs-are-lying.mdx
Screenshots in your docs are lying
Capture was never the hard part. Here's how to keep documentation screenshots up to date automatically — detecting drift, shooting behind a login, and pixel-diffing so only real UI changes land in the repo.
craft1,479 words6 min read - git-cms-shortlist-decap-sveltia-keystatic-tinacms.mdx
Decap vs Sveltia vs Keystatic vs Tina: the git CMS pick
Four git CMSs graded on what they do to your repo — the shape of the commit, frontmatter fidelity, the auth path your non-technical editor has to walk, and maintenance signals that aren't star counts. With dates, issue counts, and sources.
tooling1,914 words7 min read - your-cms-cant-take-a-pull-request.mdx
Your CMS can't take a pull request
The git-based CMS vs headless CMS argument is always about where the bytes live. It should be about what a human looks at before content goes live, and a pull request is four features a database CMS would have to build.
craft1,475 words6 min read - review-content-the-way-you-review-code.mdx
Review content the way you review code
Your content lives in a git repo, but the review ritual didn't come with it. Pull request size limits, a response-time rule, CODEOWNERS on content/**, prose linting in CI, and the three things a linter will never catch.
process1,572 words6 min read - does-google-penalize-ai-content.mdx
Does Google penalize AI content? Our first eight weeks of Search Console
No AI penalty exists. Scaled content abuse does, and it arrives as a notice in Search Console. Here's the unedited report for a blog written end to end by Contentcron, 318 clicks and 43,627 impressions in eight weeks, plus what that data can and can't prove.
seo1,576 words6 min read - introducing-contentcron.mdx
Introducing Contentcron
An AI writer that lives in your repo. It learns your voice from your site, writes an article a day, ships each one as a PR, and illustrates them with real screenshots of your product and figures that cite their sources.
launch1,127 words4 min read
every post here arrived as a pull request
Your blog could ship this way too.
Connect a repo, review the brand profile, approve a topic. Tomorrow there’s a PR waiting. First article free.