Changelog
Only changes worth noticing: what became easier to find, understand, use, or trust, and why I changed it.
This is not a mirror of the Git history. A renamed file is not an update. Neither is a cleaner build script, unless it changes something you can see, use, find, or trust.
The entries below keep the consequence and drop the maintenance log.
The first 30 days page says what it means
The page describing what happens in month one of an engagement was written in vague, passive language that named categories instead of things. It now uses plain sentences and lists, and states plainly that in two of four engagements the finding was that the problem was not marketing.
- Easier to skim: The metrics, targeting changes and day-30 deliverables are lists now, not paragraphs to read through.
- Clearer answers: The questions at the bottom match what people actually ask, so both readers and AI assistants get a direct answer.
Pages inside consulting now show where they sit
A page filed under consulting was showing as though it sat directly under the home page, both in the trail at the top and in the structured data search engines read. It now shows the full path, and the first 30 days page is linked from the footer.
- Knowing where you are: The trail at the top of a consulting page now names the section it belongs to instead of skipping it.
- Correct in search: Search engines read the same corrected path, so results can show the section rather than a page floating on its own.
The consulting work now names its clients and shows the first month
Four consulting engagements that were listed only by country and funding stage are now named, with what the work was in each. A new page walks through what actually happens in the first 30 days of an engagement, drawn from those same four rather than from a generic process.
- Checkable claims: Named clients can be verified. A geography and a funding stage cannot.
- Fewer questions before a call: What the first month involves is now readable in advance instead of being the first thing a call has to cover.
- Honest about the order: The page says the audit comes before the strategy, including where that meant telling a client their problem was not marketing.
The uses page now shows what each tool is, and links to it
Every tool on /uses-this/ now carries its own logo and its own link, so you can see and reach the thing being described instead of reading a name. The tools I ran at my last job moved into a separate section, because a page called uses this should not quietly claim a stack I no longer pay for.
- Faster scanning: Each row leads with the tool's logo, so you can find the one you came for without reading every line.
- Every tool is reachable: All 39 entries link to the product, including each name inside rows that list several.
- Honest about the stack: Tools from my last role are listed as tools I have run, not tools I use today.
The homepage now gives visitors three plain next steps
Hiring managers, consulting buyers, and people ready to talk no longer have to unpack one crowded paragraph. Each path now gets its own short line and direct link, without phrases like full record or how engagements run.
- Faster choice: Visitors can choose full-time work, consulting, or a call without reading a combined pitch.
- More human copy: Generic link labels were replaced with direct language that matches the rest of the site.
The 9.09% essay now follows the actual mistake
The essay no longer mixes a small sample, a duplicate issue bug, and page-level analytics into competing stories. It now follows one clear mistake from a single dead-click session to an unjustified UX recommendation, with a sharper title to match.
- Clear argument: The post now explains exactly how a correct percentage became a bad recommendation.
- Better title: The new title uses the same concrete contrast as the site's older essays.
Changelog navigation now looks like the rest of the site
The boxed month filter is gone. Changelog browsing now uses plain underlined controls, while thin rules separate navigation and every update. The same month selection, URL state, keyboard behavior, and no-JavaScript fallback remain intact without introducing a separate visual language.
- Simpler controls: Month browsing now looks like ordinary site navigation instead of a form panel.
- Clear separation: Thin rules make each update easier to distinguish while scanning.
- Mobile fit: The underlined controls stay on one row, retain 44px targets, and fit at 320px.
Changelog now stays current and browses cleanly by month
The stale automation no longer depends on retired GitHub Models. Verified commit metadata now updates the public record during deployment, while month-and-year controls let readers move through releases without scrolling through the complete chronology.
- Reliable updates: Deployment no longer silently keeps old data when a model endpoint disappears.
- Month browsing: Newer, older, and month-and-year controls make long history easier to scan.
- Mobile fit: Controls use 44px targets, fit at 320px, and preserve the full list when JavaScript is unavailable.
Work pages now put each claim in the right place
The homepage now leads with team scope and category creation at GTM Buddy, while the full Work page carries sourced pipeline and budget details. Freshworks keeps the absolute ARR private and states $0 in paid media. Vymo’s 4x ARR growth is clearly company context rather than a personal revenue claim.
- Cleaner attribution: Pipeline is labelled sourced, while company growth is no longer written like one person caused it.
- Public boundaries: Freshworks keeps the absolute figure off the site without hiding the outcome.
- Right level: The homepage stays concise, while Work carries the detailed operating record.
The 9.09% essay now explains what the denominator means
The essay about Lazarus Pit no longer treats one changed recommendation out of eleven like a grand success rate. It now says plainly that eleven sessions are too small for precision, links the tool being discussed, and keeps the useful point: disagreement between agents exposed a flaw in the review loop.
- Clear denominator: The essay explains the sample behind 9.09% instead of asking the percentage to sound meaningful.
- Useful context: Lazarus Pit is linked where the experiment first appears.
- Human voice: The rewrite drops decorative phrasing and states what the experiment did and did not prove.
Rainmaker setup now starts with one command and informed consent
Rainmaker’s page now leads with a skill-first setup, points installation at the npm package, and explains when provider access costs money or uses quota. Readers can install the tool without reverse-engineering the repository, bring their own model, and know that paid or quota-backed providers will not be activated without consent.
- Start faster: The documented install path begins with one command instead of repository archaeology.
- Choose providers: The guide separates the core workflow from optional model and crawl providers.
- Control spend: Paid or quota-backed services require explicit consent before activation.
Code blocks now copy in one tap
Code examples now get a small Copy button without changing the underlying text or requiring a framework. The control stays visible on touch devices, gives keyboard users a clear focus target, and reports when copying succeeds. Selecting the code manually still works when JavaScript or clipboard access is unavailable.
- Copy faster: Commands and examples can move to the clipboard with one tap.
- Works on touch: The control remains visible on phones where hover does not exist.
- Keeps fallback: Code stays selectable when scripting or clipboard access is unavailable.
Rainmaker now clarifies its role as both SEO and AEO agent
The Rainmaker side project page and listings now describe the tool as an open-source SEO and AEO agent, not just a search system. This change clarifies its purpose for visitors seeking agents that handle both search engine and answer engine optimization, preventing confusion about its scope and use cases.
- Clear positioning: Rainmaker’s page and directory entry now state it is for both SEO and AEO, so visitors know what problems it solves.
- Find the right tool: The updated description helps visitors searching for answer engine optimization agents discover Rainmaker without guessing.
- Accurate summaries: Meta descriptions and intros now match the tool’s actual job, reducing ambiguity for new readers.
Rainmaker skill tree diagram now shows the missing Ground phase
The Rainmaker side project page updates its skill tree diagram to include the Ground phase, which was previously absent. The diagram and description now clarify all six phases and their roles, so visitors can understand how context is written and used in the system. This prevents confusion about the skill tree’s structure and sequence.
- Understand system flow: The diagram now shows how the Ground phase writes context for other skills.
- Find missing phase: Visitors can see all six phases, not just five, and follow the job sequence accurately.
- Clearer onboarding: The skill tree explanation matches the actual implementation, reducing onboarding guesswork.
Rainmaker side project now public with full landing page
Rainmaker, an open-source search system that ranks findings by distance to revenue, now has a public landing page and repository. The page explains the job to be done, onboarding steps, skill tree, and how Rainmaker differs from typical SEO tools. Visitors can see diagrams, example prompts, and clear answers about usage, licensing, and requirements.
- Understand the tool: The landing page explains what Rainmaker is for, how it works, and who should use it.
- Find the repository: A public GitHub link lets visitors access the code, specification, and license directly.
- See onboarding steps: Diagrams and prompts clarify the workflow, skill tree, and how Rainmaker fits different site types.
Letterboxd icon now recognizable in monochrome
The Letterboxd social icon on the homepage now uses its rounded badge form, making the logo readable at small sizes without relying on color. This change prevents the icon from appearing as three generic dots and matches the handling of other social icons. Visitors can identify and access the Letterboxd profile more easily.
- Clear iconography: The Letterboxd logo is visually distinct and recognizable even in monochrome.
- Consistent navigation: Social icons now follow a uniform style, helping visitors find profiles without confusion.
- Accessible design: The icon remains legible at small sizes, supporting users on various devices.
Cursor profile now visible among homepage social icons
The homepage adds a Cursor.com profile link alongside LinkedIn, Twitter, GitHub, and Letterboxd, using a matching icon and accessible label. This makes the full set of public profiles discoverable from the main page, so visitors can find and connect through Cursor without guessing or hunting for the handle.
- Find all profiles: Cursor joins the homepage social row, so every public profile is visible in one place.
- Accessible navigation: Each icon uses a clear label and title, helping screen readers and keyboard users.
- Consistent design: The icon row stays uniform, with no extra boxes or external-arrow marks.
New pages now auto-appear in MCP feed for AI access
Pages with titles and directory-style URLs are now included in the MCP feed by default, unless intentionally hidden or flagged out. This removes the need to manually add a flag for every new page, making AI-powered tools and clients reliably see fresh content without extra setup. Posts remain automatically included.
- Find new pages: AI tools and clients can read new pages as soon as they are published, without waiting for manual flags.
- Less setup friction: Site editors no longer need to remember or add a special flag for every new page.
- Trust feed completeness: The feed stays in sync with the sitemap and build checks, so visitors can trust that all public content is accessible.
MCP page now explains how the server stays current
The MCP section adds a clear explanation of how its server stays up to date: it reads a build-time feed refreshed every five minutes, and deploys fail if any public page is missing from that feed. Tool descriptions are also corrected to match the current site structure and search behavior. This helps visitors trust the freshness and completeness of AI-powered access.
- Understand freshness: Visitors can see exactly how the server stays current and why new pages cannot quietly go unreadable.
- Trust AI access: The mechanism is explained, so readers know agents see what humans see, with no hidden gaps.
- Correct tool info: Descriptions now match the actual site pages and search ranking, avoiding confusion from outdated labels.
Listing pages in MCP feed now flagged for search weighting
The site’s API feed now marks homepage, blog, and tag archive listing pages with a 'listing' flag. This helps clients and tools distinguish between generated listings and original essays, so full-text search and ranking can treat them appropriately. The change prevents listings from outranking actual content based on excerpt matches alone.
- Clearer search results: Listings and essays are now differentiated, so search tools can rank pages more accurately.
- Machine-readable structure: API clients can detect listing pages and adjust their behavior without guessing from content.
Consulting now explains solo, AI-native work under one page
The consulting section now merges all previous service pages into a single, clearly positioned offering. The site drops references to Grow & Close and clarifies that consulting is solo and AI-native, with strategy and execution handled by one person. This helps visitors understand the engagement shape and find the right page without guessing between options.
- Find the right page: Consulting, product marketing, and AI marketing now live under one URL with redirects from the old pages.
- Clear engagement shape: The site explains that consulting is solo and agentic, not an agency or studio.
- Footer stays simple: Footer links now point only to consulting, work, and booking a call, reducing confusion.
MCP feed now exposes readable page slugs and listing content
The site’s API feed now uses readable page slugs and names the homepage 'home'. Listing pages like blog and tag archives now expose their intros and post lists, so AI clients and tools can read and summarize them. This prevents empty content and makes navigation and discovery easier for machine readers.
- Machine-readable navigation: Home, blog, and tag pages now have clear slugs and content for AI clients.
- Listing content included: Listing pages expose intros and post summaries instead of empty bodies.
Consultation booking intent tracked as a key event
Booking a consultation via Cal.com now triggers a stable custom event in Google Analytics. This lets site owners reliably measure consultation intent and treat it as a key event, improving insight into visitor actions without affecting site performance or usability.
- Reliable analytics: Cal.com booking clicks are tracked with a dedicated event name for consultation intent.
- QA coverage: Site QA checks that booking events are emitted, preventing silent analytics failures.
Private side quests now have public landing pages and clear labels
Lazarus Pit, previously undocumented, now has a landing page explaining its self-healing UX agent, pipeline, and public issue output. All side quests are labelled Public or Private everywhere, so visitors can tell which projects are accessible and which are documented but not open source. Private quests link only to on-site pages, never to inaccessible repositories.
- Find hidden projects: Lazarus Pit is now documented with a clear explanation and public output links.
- Know project access: Every side quest is labelled Public or Private on both the homepage and side-quests page.
- Avoid dead links: Private projects link only to their landing pages, not to inaccessible repositories.
Footer links now use plain language and cover privacy, contact, and disclaimers
The footer now uses descriptive labels for tools, gear, and side projects, replacing jargon and project names with clear explanations. It also adds direct links to privacy, contact, and disclaimer pages, so visitors can find essential information and reach out without hunting through menus or guessing terminology.
- Find essentials fast: Privacy, contact, and disclaimer links are now visible in the footer.
- Clear tool names: Side projects and gear are labeled in plain English, not just project titles.
Images now preload for faster page loads on key pages
The site now preloads hero and featured images on the homepage and other important pages. This reduces the time visitors wait for visuals to appear, especially on slower connections or when landing directly on a major section. The change helps the site feel more responsive without adding complexity.
- Quicker visuals: Hero and featured images load sooner, so pages appear complete faster.
- Better first impression: Landing pages no longer show empty spaces while images download.
Visitor changelog now updates itself after every deploy
The site now synthesizes and publishes a visitor-facing changelog automatically after each deployment. This removes manual steps and ensures that site updates are recorded promptly and accurately, so visitors can trust the changelog to reflect what actually changed and why it matters.
- Changelog stays fresh: Site updates are recorded immediately after each deploy, reducing stale or missing entries.
- Trustable history: Visitors can rely on the changelog for a clear, accurate record of changes that affect their experience.
- Less manual friction: Maintainers no longer need to manually update the changelog, lowering the risk of omissions.
Side projects now explain the payoff before sending you to the code
Interview Recon, Master Shifu, and Michealangelo now have proper pages. You can work out what each tool is for, what it gives you, where it stops, and how to install it without reverse-engineering a README.
- Choose faster: Each page leads with the outcome, then explains the mechanism and limits.
- Install without guesswork: Commands, supported agents, free-tier constraints, and expected outputs live in one place.
- See useful changes: Project updates ignore documentation noise and keep only product work that changes what the tool can do.
Speaking and media stopped hiding behind a page called Fun
The old Fun page mixed a book, talks, and podcast appearances under a label that explained none of them. It is now Speaking & Media, with a useful URL and a short list of episodes worth starting with.
- Find the proof: Talks, podcast seasons, and the book now sit under a name people would search for.
- Start somewhere useful: Eight recommended episodes replace the job of digging through two complete seasons.
- Keep old links working: The previous URL redirects instead of becoming a dead end.
You can now tell what hiring me would involve before booking a call
The consulting section now separates general B2B SaaS work, AI marketing work, and product marketing work. Each page names the problem, the engagement shape, the expected outcome, and the situations where I am the wrong fit.
- Evaluate fit: The pages explain workshops, defined projects, ongoing consulting, and fractional leadership without pretending every company needs the same thing.
- See the boundary: What I do not do is stated beside what I do.
- Reach the right page: Navigation and internal links now connect the broad consulting offer to its specialist pages.
Shared links finally look like the page they lead to
Essays now generate wide preview images that survive LinkedIn, WhatsApp, and Slack. Pages also gained visible breadcrumbs, so arriving deep inside the site no longer means guessing where you are.
- Know before clicking: Link previews carry the real title, description, and a readable image.
- Move around: Breadcrumbs show the page's place in the site and provide a short route back.
- Keep renamed writing reachable: Old essay URLs redirect instead of breaking shared links.
Search engines and AI systems no longer have to guess what each page is
Titles, descriptions, canonical URLs, structured data, author details, heading order, RSS discovery, and crawl rules now describe the site consistently. Most of this is invisible until it is missing, which it was.
- Better search results: Pages have distinct titles and descriptions instead of borrowing generic site copy.
- Cleaner indexing: Duplicate archive aliases and the 404 page no longer compete with real pages.
- Clearer machine context: Search engines and AI agents can identify the author, page type, canonical URL, and relationships between pages.
The site now gives both humans and AI a sensible next step
Every page ends with direct routes to ask ChatGPT, Claude, or Perplexity about me, plus the site keeps RSS visible for people who would rather follow the writing without an algorithm.
- Continue the question: AI links open with useful context instead of dropping you onto an empty chat.
- Follow the writing: RSS is linked from the site instead of existing as an undiscoverable feed.
- Keep the interface quiet: The calls to action use the same restrained visual system as the rest of the publication.
The site became a publication instead of a pile of page templates
Every major page moved onto one narrow, readable system with shared type, spacing, navigation, and content patterns. Half-built features came out when they added maintenance without helping a reader.
- Read without fighting the layout: Long-form pages, lists, tags, projects, and utility pages now share one predictable rhythm.
- Use it on small screens: Navigation, timelines, headers, and footers reflow cleanly down to phone widths.
- No pretend features: The unfinished email form and an intrusive MCP prompt were removed instead of being left to imply they worked.
AI clients can read the live site instead of relying on stale training data
The MCP endpoint exposes current posts and pages to compatible AI clients. A pre-push QA gate also checks public content for search, answer-engine, design, and privacy mistakes before it leaves the repository.
- Use current context: Compatible clients can search and retrieve the actual live publication.
- Connect with one URL: The MCP page gives client-specific setup snippets instead of requiring a local bridge.
- Reduce public mistakes: The QA gate blocks sensitive exports and catches broken content structure before push.
The site became easier to find, faster to load, and less awkward to use
Search and AI crawl files were added, accessibility failures were fixed, and a tiny avatar stopped shipping as a 104KB image. None of that needed a redesign. It needed paying attention.
- Readable controls: Contrast and screen-reader labels now match what people see.
- Less wasted data: The small booking image became roughly 37 times lighter at the same display size.
- Better discovery: robots.txt and llms.txt give search engines and AI systems explicit routes through the site.
The default Jekyll theme came out; a real personal site went in
I rebuilt the site around my writing, work, and side projects, then connected GitHub Pages so changes deploy from the repository. This is where the current site starts.
- One home: Writing, work, speaking, and experiments became parts of the same site.
- Changes stay accountable: The public repository records what changed and GitHub Pages ships it.