Most AI writing knows nothing about your product. It invents things you don’t do, and you find out once the post is live. blogwriter reads yours first: what you sell, how you sound, and the claims you never make. Then it holds every post to that.
In brief
Topic: best gym management software in India — what actually makes one "the best" Audience: owners still on a paper register, an Excel sheet, or a personal WhatsApp number Target keyword: best gym management software india
Out best-gym-management-software-india.md
If you’ve searched “best gym management software in India”, you’ve already found five lists that rank the same handful of names, usually with a star rating and a “starts from” price. None of them tell you what to actually check before you hand over a year’s subscription.
Three lines in. 1,349 researched words out, every figure traced to a source.
It reads the whole thing and writes the brief every later post gets held against. Correct any part by hand — your version survives the next refresh.
A real one — read from thegympilot.com, 22 pages of it.
You edit the post as a reader sees it, not as markdown. Click a paragraph and it becomes editable where it sits. Click a picture and you get the brief that drew it — because nobody wants to edit a filename.
Click a paragraph
Most owners are still chasing dues one message at a time. It works until the register has ninety names in it, and then it quietly stops working.
Esc to cancel · click away to keep · undo point saved
Click a picture
paper register → one dashboard
What it should show
Reader’s question/Research/Draft/AI-tell lint/Prove every figure/Diagrams/Interlink/Publish
Orange is model judgment. The rest is code — the model never does arithmetic, and code never decides how something reads.
git add -A. Only the post and its own assets are staged.Only the interface is ours. No API key — it runs on the Claude you are already signed into, and your drafts and tokens never leave the machine.
$ git clone https://github.com/buffetmusk/blogwriter
$ cd blogwriter && npm install -g .
$ blogwriter serve
engine listening on http://localhost:4321
Then open the app. The engine binds to 127.0.0.1 only, and answers a fixed list of origins.
Writing runs on your machine and the Claude you already pay for, so writing stays free. Images get generated and hosted by us, and that is the part you pay for.