The content engine for blogs that live in Git.

Put your static blog on auto-pilot. Contentcron learns your voice, researches topics, creates relevant screnshots and figures, and writes an article a day. Each one arrives as a PR against your repo.

Works with
  • Next.js
  • Astro
  • Hugo
  • Gatsby
  • Eleventy
  • MDX
  • Markdown
  • Decap CMS
  • Sveltia
  • TinaCMS
  • Keystatic
  • CloudCannon
  • Front Matter
Mock of a Contentcron pull request in a browser window: the article arrives as a PR, a reviewer comments, and the bot pushes a revision commit.
github.com

content: add “10 ways to ship faster” via Contentcron #142

Opencontentcron[bot] wants to merge 2 commits intomain fromcontentcron/10-ways-to-ship-faster
Conversation2Commits2Files changed1
content/blog/10-ways-to-ship-faster.mdx+118 −0
@@ -0,0 +1,118 @@
---
title: “10 ways to ship faster”
date: 2026-07-29
---
Shipping speed is a habit, not a heroic sprint…
sam-kcommented · 09:14
shorten the intro, add a comparison table
contentcron[bot]replied · 09:16
Done. Cut the intro to two sentences and added a comparison table under “Pick your bottleneck.”
revise: shorten intro, add comparison tablea3f9c12

Writing you’d put your name on.
Delivered to your repo, on auto-pilot.

Contentcron isn’t a prompt box. Articles are researched against live search results, written in the voice it learned from your own site, and revised from a single PR comment. Switch on auto-post and the entire loop runs while you sleep.

grounded: web + repo

Drafts that don't read like AI. Every article is grounded before a word is written: live web search, the brand profile learned from your site, the posts already in your repo. It argues with specifics instead of padding to length.

Why your Postgres queries fall off a cliff at 40 GB

1,840 words · 7 sources · voice: matched

postgresql.orgpganalyze.comyour archive

It isn’t the row count. It’s the morning your working set stops fitting in shared_buffers, and every index scan starts paying for a disk read it used to get free.

You can watch it happen: the buffer cache hit ratio slips under 99%, p99 latency doubles in a week, and nothing in your query plans changed at all.

comment → commit

One comment is a whole revision. Reply on the PR the way you'd reply to a colleague (“cut this, add a table, use our real numbers”) and the rewrite lands as a commit on the same branch, usually inside a minute.

postgres-40gb.mdx · line 12

In today’s fast-moving world of databases, performance has never been more important for modern teams.

cut this opener, lead with the 40 GB number

revise: lead with the 40 GB number1m 04s

add a comparison table under “Pick your bottleneck”

loop: closed

Auto-post runs it without you. Approve a month of topics once, then let Contentcron write, open, and merge on its own schedule. You wake up to a post that's live and a diff that shows exactly what shipped.

publish_mode: auto_mergeon
next runtomorrow, 06:00 UTC
  • Jul 31postgres-40gb.mdxmerged
  • Jul 30agent-observability.mdxmerged
  • Jul 29ship-faster-habits.mdxmerged
  • Jul 28sqlite-in-prod.mdxmerged
  • Jul 27cutting-ci-minutes.mdxmerged

Zero to 43,627 search impressions in its first eight weeks.

Grepture is another product I build, and Contentcron the engine that powered its blog from day one. This is its real Search Console report.

I built Contentcron because I wanted a blog that compounds without me. It does.

— Ben, builds Grepture and Contentcron

The real Google Search Console performance report for grepture.com: 318 total clicks, 43,627 total impressions, daily impressions climbing from near zero in early May to about 1,800 a day by late June. Rebuilt in the site’s design, with a toggle to view the original screenshot.
search.google.com
sc-domain:grepture.comPerformance · Web Search
Total clicks

318

Total impressions

43,627

Impressions / day

Built for blogs that are codebases.

Connect a repo and it works like a content engineer on staff: learns your voice, finds the gaps your competitors missed, and ships every single day without a meeting.

brand_profile: voice + facts

Your voice, not a house style.

Before a word gets written, the crawl reads your site and your best posts and builds a brand profile: tone, vocabulary, the company facts that must stay true. Approve it once, and every draft after that argues like your team wrote it.

tonevocabularycompany factsdo's / don'ts

research: web_search

Topics that can actually rank.

Research runs on live web search: what competitors rank for, where your archive is thin, which queries you can realistically win. Topics arrive scored with the rationale attached; approve, reject, or add your own.

pgvector-vs-pineconescore 92
mcp-server-auth-patternsscore 88
json-in-postgrescovered · skip

content/blog/*.mdx

PRs that merge clean.

It infers your frontmatter from the posts already in the folder: field names, date formats, slug style. New articles match byte for byte.

publish_mode: draft_first

Autonomy you dial in.

Hold every article as a draft you approve, open PRs for review, or push straight to main. Each project gets exactly the trust you give it.

cadence: 1/day

A drumbeat, not a dump.

One article a day, every day. Archives compound on consistency, and nobody has to review forty posts in one sitting.

model: per project

Flagship where it pays.

Run the best Claude model on the blog that earns revenue, a faster one where possible.

Relevant screenshots and figures that stay current.

Contentcron takes screenshots of your product and does research around your most relevant topics to create charts, to embed them both in your articles. We automatically update this library and you can add what you consider important.

capture: pixel-diffed

Shots stock and refresh themselves. Point it at your product once: it signs in, walks the nav, and tags a library by feature. Every shot is re-taken on a schedule and re-uploaded only when the UI actually changed, so the same URL stays right in every article at once.

figures: sourced

Figures are researched, never invented. Charts, diagrams, and stat callouts come from a research pass with real web search. A chart that cannot cite a source is rejected, not shipped; the writer returns nothing before it returns a made-up number.

embed: by topic

The writer places both. Drafts pull the asset that fits the topic straight from the library. When an article needs one that does not exist yet, it files a request, the asset is captured or researched, and it lands on the next pass.

A draft article as placeholder text, with the embedded asset mid-body cycling through the kinds the engine produces: a real researched bar chart with its source caption, a product screenshot kept current by pixel diffing, and a Mermaid architecture diagram.
slow-hiring-loses-candidates.mdx
Bar chart the engine produced: share of candidates who disengage as employers go slow or silent. 42% at slow interview scheduling, 49% when feeling strung along, 62% after two weeks of no reply, 77% after three

Source: Cronofy, 2024; Robert Half, 2021

Review it like code. Because it is.

No dashboard round-trips, no “request changes” form. Leave a PR comment the way you already do in review, and Contentcron rewrites the article, commits to the same branch, and replies with what changed. Line comments anchor the revision to the exact passage. Your team never leaves GitHub.

github.com
PR #147 · conversation3 revisions
  • mira this claims we support SSO - we don't yet, cut it

    revise: remove SSO claimf21c0da
  • dev-jon code sample uses the old client, use createClient()

    revise: update sample to createClient()9b04e11
  • mira closing is weak. end on the migration checklist

    revise: end on migration checklistc7a3f52

Meet your new content pipeline.

Not a dashboard you drive: a pipeline that runs while you sleep. One cron tick in, one pull request out, every morning.

  1. Crawl

    Reads your site and existing posts to learn voice, facts, and format.

    128 pages · voice profile built

  2. Research

    Proposes topics from real web search: competitors, gaps, your archive.

    3 topics · 7 sources

  3. Write

    Drafts the full article in your voice: MDX, frontmatter included.

    1,840 words · 9 min read

  4. Pull request

    Commits to a branch and opens the PR against your blog.

    contentcron/10-ways-to-ship-faster

  5. Comment, revise

    You review like code. Comments come back as revision commits.

    2 comments → 2 commits

0 6 * * *

Runs again tomorrow.

Your next post is a pull request away.

Connect a repo, review the brand profile, approve a topic. Tomorrow there’s a PR waiting. Your first article is free, no card required.