devlogMaxxing
Skill63 starsChanged yesterdayMITView on GitHub
Write a devlog page on log's site (log.listeningkit.com/devlog/<slug>) that tells matt's own story about a tool or a competitor, ranks on Google for the keyword people search, and gets cited by ChatGPT, Perplexity and Google's AI answers. The worked example is /devlog/xreacher-alternative. Use when matt asks for "a devlog", "a page like the Xreacher one", "an <x> alternative page", "a vs page", or to turn something he tried into a page.
- Commits and pushes
In this repository82 other files it gives its agents.
- AGENTS.mdAGENTS.md
- log-discord-channel-replySkill
- log-discord-forum-postsSkill
- log-discord-group-chat-readSkill
- log-discord-meme-replySkill
- log-discord-server-replySkill
- log-discord-server-searchSkill
- log-facebook-groupsSkill
- log-facebook-marketplace-listingsSkill
- log-inbox-boss-maxxingSkill
- log-inbox-governor-resetSkill
- log-inbox-reactionsSkill
- log-inbox-rea-looksmaxxingSkill
- log-inbox-scope-ajobSkill
- log-inbox-show-meSkill
- log-inbox-sign-inSkill
- log-inbox-triageSkill
- log-inbox-voice-noteSkill
- log-instagram-dm-replySkill
- log-instagram-new-platformSkill
- log-linkedin-networkSkill
- log-linkedin-postsSkill
- log-reddit-contributor-maxxingSkill
- log-slack-dm-replySkill
- log-twitter-affiliate-marketingSkill
- log-twitter-collab-maxxingSkill
- log-twitter-dm-inboxSkill
- log-twitter-engagement-repliesSkill
- log-twitter-engager-dmsSkill
- log-twitter-followersSkill
- log-twitter-follow-upsSkill
- log-twitter-get-the-actionSkill
- log-twitter-manager-maxxingSkill
- log-twitter-network-maxingSkill
- log-twitter-niche-map-regionSkill
- log-twitter-notificationsSkill
- log-twitter-recruitingSkill
- log-twitter-reply-guy-funnelSkill
- log-twitter-topic-repliesSkill
- log-twitter-who-needs-youSkill
- log-web-competitor-trafficSkill
- accountToDryRunSkill
- adsPowerSkill
- agentHooksSkill
- callTimingSkill
- captureRuleSkill
- commitLogSkill
- consoleSkill
- conversationsSkill
- discordServersSkill
- facebookFlowsSkill
- facebookInspectSkill
- facebookWarmupSkill
- flowSkill
- governorSkill
- hostSkill
- humanMouseSkill
- inspectSkill
- instagramSkill
- knowledgeBaseSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. About 0 are common, 6 are distinctive, and 9 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 34
Calm, not noisy: No hand-drawn arrows. No dashed highlights in paragraphs (dashed links are fine).
- Distinctive: line 63
Put the evidence in the section where it happens:
- Very specific: line 80
Read the competitor's ranked keywords: RESEARCH/LOG_COMPETITORS_SITES_*/rankedKeywords/ (allKeywords.tsv, <domain>.json).
- Very specific: line 83
Find what gets cited right now: Ask the BHW MCP (bhwSearch, bhwThread) for threads from the last three months on AI citations, alternative …
- Distinctive: line 92
Use the thread's own URL, not a search, so nothing is highlighted.
- Very specific: line 96
Add the article to devlog/articles.json:
- Very specific: line 105
Write devlog/<Name>Page.tsx, starting from the Xreacher page.
- Very specific: line 107
Add the route /devlog/<slug> in App.tsx and a line in public/sitemap.xml.
- Very specific: line 109
Make its share card: Run C:\Python312\python.exe site/apps/web/scripts/ogCards.py <slug>.
- Very specific: line 117
Check it locally: run npx vite build in site/apps/web, then node site/scripts/prerenderPages.mjs, then read the title, the og tags and the …
- Distinctive: line 121
Check that every docs link answers 200 on log.listeningkit.com.
- Very specific: line 123
Run npx tsc --noEmit --skipLibCheck in site/apps/web.
- Distinctive: line 125
Read the title and the JSON-LD types from the page.
- Very specific: line 126
Ship it: Commit as matt (GIT_CONFIG_COUNT=0) with the day's log entry (rule 5), push, and add it to the PR or open one (gh pr create).
- Distinctive: line 132
Every number has its source in the outline.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
devlogMaxxing
A devlog is a blog post in matt's voice: what he was looking for, what he tried, what it cost, why it didn't work, and what he built instead. It reads like a story, not a marketing page. It ranks on one keyword and is shaped so AI answers can quote it.
The worked example is /devlog/xreacher-alternative:
- the page:
site/apps/web/src/landing/devlog/XreacherAlternativePage.tsx - its play data:
devlog/xreacherAlternative.ts - the shared story parts:
site/apps/web/src/landing/story/StorySections.tsxandstory.css - the list of every devlog:
site/apps/web/src/landing/devlog/articles.json(articles.tsreads it). The/devlogpage, the share cards and the prerender all come from it - the research and outline:
~/.buzz/PLANS/LOG_XREACHER_ALTERNATIVE_PAGE_OUTLINE_2026_11_09.md
Hard boundaries
- matt's story, his facts. The story comes from what matt said and from evidence: his email, the tool's own pricing page, his account's dashboard. Be honest: if it might work now, say so ("it probably works now, but back when I used it, it didn't"). Never invent a number, a quote or a result.
- Never name the account vendors. Show the research on what accounts cost ("public listings put fresh accounts at $5 to $20"), never who sells them.
- The whop pages' rules, not new looks. Receipts and comparisons follow
~/.buzz/REPOS/whop/pages/src/dataBrokering.html(.receipt,.rLine,.cmp,.cmpRow). They're already ported asReceiptandCompareTable(.lk-storyinstory.css): plain type on the page, no card, Schoolbell lines, dashed dividers, numbers as blue sticker words. Use them. Never draw a card of your own. - Calm, not noisy. No hand-drawn arrows. No dashed highlights in paragraphs (dashed links are fine). Stickers on one to three words only. Punch lines are muted grey.
- Not on a devlog page:
- the "log runs the whole play" box (
HowItWorks) - the Step 1/2/3 cards (
ThreeSteps) - the phone stepper (
PlatformScroll) - the "More plays to run" cards
- the "log runs the whole play" box (
- Through log only for anything sent or read on an account (rule 163). Research uses treg's TinyFish (free) and the BHW MCP. Nothing paid without matt (rule 41).
The page, top to bottom
Hero (blue, clouds, dither fade). The H1 holds the keyword in a story line ("The Xreacher alternative / I built because it didn't work."). Under the H1, the byline:
- matt's photo (
/images/mattlistening.webp) in a small circle with a white ring - "By Matthew Don"
- "Published
<date>" in a<time>tag
On the right: one handwritten line, one plain line, and the "Set up log" and "Read what happened" buttons.
- matt's photo (
- Kicker: one handwritten question with a sticker word.
- The short version (
#F3F8FFbox): four bullets. They give the cost of theirs, the cost of log, what happened to matt, and the verdict line ("If you want to<job>, log is the<keyword>to try first."). - Story sections (
StorySection: a title, a muted punch line, then paragraphs): looking for it, trying it (with the screenshot), the price, accounts, proxies, building our own, why it's fast, and owning your stuff. Put the evidence in the section where it happens:StoryImage: a screenshot of matt's email or dashboard, with a dated captionReceipt: their plans, their add-ons, what we pay, speed numbersCompareTable: them against log, row by row
- A call to action inside the story (
StoryCta), at least twice: after the "it didn't work" section and at the end. It shows the agent window typing the play and a "Set up log, it's free" button. - FAQ (
StoryFaq): six or seven questions in the words people type into AI tools ("What is the best<x>alternative?", "How much does<x>cost?", "Is log free?"). Each is a real H3, answered under it in less than 300 characters. - The landing's marketing section (
<Control />, as on the home page), then the copy-the-prompt block (PromptCta), then the footer.
Steps
- Find the keyword.
- Read the competitor's ranked keywords:
RESEARCH/LOG_COMPETITORS_SITES_*/rankedKeywords/(allKeywords.tsv,<domain>.json). If they aren't there, get them from treg (ask matt before a paid endpoint). - Fetch their own pages' titles and headings with treg
tinyfish.web.fetch(POST,{"urls":[...]}, free), and note what they carry that we don't: a FAQ, a comparison table, "best for" lines, their wording. - Pick one main keyword ("
<x>alternative") and three to five supporting ones from their relevant terms ("automate twitter messages", "best cold DM tools").
- Read the competitor's ranked keywords:
- Find what gets cited right now. Ask the BHW MCP (
bhwSearch,bhwThread) for threads from the last three months on AI citations, alternative pages and comparison pages. Keep only what a thread says, with its title, date and link. Write it into the outline. Collect the evidence.
- matt's emails, found in Gmail through Aside by searching the tool's name, then read and dated.
- The tool's pricing page.
- Our own numbers, from rules, docs and RESEARCH.
- Market prices from a TinyFish search, with no vendor named.
Screenshot one proof, such as the signup email:
- Close any open menu first.
- Use the thread's own URL, not a search, so nothing is highlighted.
- Crop it with ffmpeg into
site/apps/web/public/images/devlog/<name>.webp.
- Write the outline to
~/.buzz/PLANS/LOG_<TOPIC>_PAGE_OUTLINE_<date>.md. It holds the keywords with their volumes, what their pages carry, the BHW list, what the page will have, and what's left. - Build the page.
- Add the article to
devlog/articles.json:slugtitle(the keyword and the year)headlinedescriptionsummarypublishedandpublishedLabelauthorcard:lead,name(shown in capitals as a white sticker) andpitch(HTML, where a span with classudraws the dashed underline)
- Write
devlog/<Name>Page.tsx, starting from the Xreacher page. Export its story component and its schema (articleSchema(article, faq)), and read its title, description and dates fromarticleOf(slug). - Register the story in
BODIESindevlog/prerender.tsx. - Add the route
/devlog/<slug>inApp.tsxand a line inpublic/sitemap.xml. - The
/devloglist picks the article up by itself.
- Add the article to
- Make its share card. Run
C:\Python312\python.exe site/apps/web/scripts/ogCards.py <slug>. It fillsscripts/ogCard.html(the member sites' card: blue gradient, hand-drawn frame, matt's photo, the card text, the byline), renders it in Chrome at 1200×630 and writespublic/og/devlog/<slug>.png. Look at the PNG before committing it. Rendered for crawlers and social previews. The site build (
site/scripts/build-site.mjs) runssite/scripts/prerenderPages.mjsafter the web build:- It renders every devlog's story to HTML with React on the server.
- It writes
dist/devlog/<slug>.htmlanddist/devlog.html, each with its own title, description, canonical link, OG and Twitter tags (the share card as the image), the JSON-LD (id="devlog-schema", so the page doesn't add it twice), and the whole article inside#root. vercel.jsonsends/devlogand/devlog/:slugto those files before the app's catch-all.
The platform pages (
/twitter,/discord,/slack,/instagram,/reddit) go through the same build, fromlanding/useCases/sharePages.json. Each gets its own title, description and card: the platform's logo on a white tile with no photo, rendered by the sameogCards.pyintopublic/og/pages/<slug>.png. They carry the tags only, and the app still renders their content. A new platform page is one entry there, plus a rewrite invercel.json(the build refuses a page with no rewrite).Check it locally: run
npx vite buildinsite/apps/web, thennode site/scripts/prerenderPages.mjs, then read the title, the og tags and the text indist/devlog/<slug>.html.- Link it in.
- Link to the platform page (
/twitter…) where the copy names the platform. - Link to the docs (
/docs/<tab>/<page>, for examplegetStarted/mcp,howItWorks/liveInbox,howItWorks/proxies,platforms/x,howItWorks/specs/voiceGate) where the copy names how log does it. - Check that every docs link answers 200 on log.listeningkit.com.
- Link to the platform page (
- Check it.
- Run
npx tsc --noEmit --skipLibCheckinsite/apps/web. - Open it on the local dev server in Aside at 1440 and 390 wide, with nothing scrolling sideways.
- Read the title and the JSON-LD types from the page.
- Run
- Ship it. Commit as matt (
GIT_CONFIG_COUNT=0) with the day's log entry (rule 5), push, and add it to the PR or open one (gh pr create).
Done when
- The page is live at
/devlog/<slug>. - The keyword is in the title, the H1, the short version, the FAQ and the copy.
- Every number has its source in the outline.
- The byline shows matt's photo and the date.
- The page is on
/devlog. - Its share card is in
public/og/devlog/. - The prerendered HTML carries its own tags and the full text.
- The FAQ and the article schema load.
- It reads cleanly at desktop and phone widths.
- The outline lists what's left, above all getting named on the "best
<x>alternatives" pages that AI answers already cite. That is the citation tracker's job.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

