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.
One description of me across every page and feed
About, Work and the machine-readable feeds now all call me a B2B SaaS product marketer and spell my employer HCL Tech the same way, where some pages still said marketing operator or HCLTech.
- Consistent wording: Every page describes my role the same way.
- Consistent AI answers: Search and AI assistants now read the same description everywhere.
Contact now points straight to LinkedIn and GitHub
Removed the line about my current role and views from the Contact page. It already says where to reach me, and the disclaimer covers the views.
- Simpler contact page: The page only says how to reach me.
- One disclaimer: Views are covered once, on the disclaimer page.
About is shorter, without the FAQ block at the end
Removed the question-and-answer section from About. It repeated the page above it and had no links, so the page now ends with the personal section.
- Less repetition: About no longer restates itself in a Q&A.
- Cleaner ending: The page now ends on the personal section.
Every page now has a summary for AI assistants
Pages without a visible intro, like About, now fall back to their description in the machine-readable feed, so an AI assistant connected through MCP always sees what the page is.
- Complete summaries: Every page in the MCP feed carries a one-line description.
- Better AI answers: Assistants describe About accurately instead of guessing.
Search and AI answers now reflect my current role
Updated page titles, descriptions and structured data so search engines and AI assistants report my current role at HCL Tech, and refreshed llms.txt.
- Accurate answers: Search and AI assistants describe my current role correctly.
- Richer profile data: The structured data now names my employer, my city and the topics I work on.
Days grid, refreshed About and Uses This, real logos
The Days page now shows a GitHub-style activity grid. About and Uses This are reorganised newest first, with the correct Google, Salesforce and Paper logos and new Mac specs. Copy is now consistently British English.
- Activity grid: Each day of the year is one cell, shaded by how much shipped.
- Correct logos: Tools on Uses This now show their real brand marks.
- Newest first: About now reads from the current role back to university.
Now Group Manager, Product Marketing at HCL Tech
Updated the homepage, About, Work and Contact pages for my new role at HCL Tech. Removed the consulting pages and hiring calls to action, which no longer apply.
- Current role: Every page now shows where I work today.
- Simpler navigation: Consulting and booking links are gone, so Contact points to LinkedIn.
The mobile menu and footer are fixed on a real phone
The menu panel filled only the right half of the screen and made each link a target the width of its own word; rows are now full width and left aligned at a readable size. The footer stacked into a single column of six groups on a phone, which ran to a screen and a half, and now holds two columns at every width.
- Easier to tap: Each menu row spans the sheet, so the target is the row rather than the four characters in the word.
- Shorter footer: Two columns at every width instead of one long stack of six groups.
The line under the name says what the operation actually is
The homepage now leads with the operating model rather than a description of the job title, in one row directly under the name. The paragraph that used to make the same point in different words has been cut back to the part the new line does not already say.
- Says the thing: The claim under the name is the one nobody else on a marketing site can make.
- No repetition: The paragraph that restated it now carries only the open-source point.
A tighter line under the name, and the logo set cleaned out
The line under the name now says the same thing in one row rather than two. Ten logo files that nothing referenced are gone, and the lookup that renders them is regenerated from what is actually on disk, so the two cannot drift apart.
- One line: The positioning line reads as a claim rather than a description, and holds a single row at desktop width.
- No dead files: Ten unreferenced marks removed, and nothing on the site falls through to a letter placeholder.
The design system now documents the site that actually ships
The written design system had drifted from the site on four sections at once, and now matches it. It also gains a section on how to verify a change here, covering the content policy that silently blocks debug scripts and the headless browser behaviour that made a working mobile menu look broken.
- Accurate doc: Header, homepage, footer and the tools list are described as they ship rather than as they were two revisions ago.
- Fewer repeats: The traps that cost this session time are written down, so the next one does not pay for them again.
Every logo on the site is now the mark its owner publishes
The Letterboxd mark was rebuilt to the proportions Letterboxd publishes rather than the ones it was drawn with, and the tools page no longer splits into a grey hardware list and a colour software list. Apple hardware carries the Apple mark, and the two brands that publish only a wordmark keep a glyph, because a wordmark is unreadable at twenty pixels.
- Correct mark: Letterboxd sits at the 15.2% circle overlap its own logo file uses, not the 39% that read as one blob.
- One page: The tools list uses real brand marks throughout instead of grey glyphs above and colour below.
Apple's masthead and footer, and every brand logo made exact
The bar at the top of every page is now a translucent scrim with a blur behind it, the same one apple.com uses, and the footer is a full-bleed band to match. Every product logo on the site is the exact mark its owner publishes, in that brand's own colour, and the row on the homepage sits smaller than it did.
- Real logos: Every mark is the geometry the brand publishes, in its own colour, rather than a redrawn approximation of it.
- Legible bar: The masthead blurs the page moving under it and holds its text at four stops above the contrast floor.
- One line up top: The homepage says what the work is directly under the name, and drops the aside that used to open the paragraph.
The masthead is a cutting mat and the page light is one button
The bar at the top of every page now carries the blue and the grid of a cutting mat, and it is taller so the grid reads as a board rather than a stripe. Every blue on the site is that same blue, taken from the mat itself. The three theme swatches became a single button that cycles light, beige and dark.
- One blue: Links, the chevron, the favicon and the masthead all read one value now, taken from the cutting mat rather than picked.
- Page light: A single button in the bar cycles light, beige and dark, and its icon fills up to show which ground is on.
- Readable bar: White on the new bar measures 11 to 1, so the navigation could drop to a normal weight and stop shouting.
The site now reads like a terminal, without costing readability
Headings, navigation and labels are monospace, body text stays proportional, and the install command sits in an accent-bordered block with a prompt chevron. Sections are numbered by the stylesheet rather than by hand.
- Interface reads as a tool: Monospace chrome and numbered sections make the pages scan like documentation.
- Prose stays readable: Body paragraphs keep the proportional face, which is faster to read across 1500 words.
- Command comes first: On a phone the install command now sits on the first screen instead of below the changelog banner.
Employer figures on the public pages are now multiples
Three pages were publishing a former employer's absolute pipeline and marketing budget. The claim is unchanged and the arithmetic is the same, stated as a multiple instead.
- Employer numbers stay private: The proof still lands without putting someone else's internal numbers on a public page.
- Same claim, same arithmetic: The result now reads as 4x the annual marketing budget in pipeline.
Side quest pages now open with the install command
Every side quest page shows what it is and the one command that installs it before you scroll, instead of hiding the command under a heading a thousand words down. The pages are shorter, and the stylesheet is smaller than it was before the change.
- Install above the fold: The command that installs each side quest sits under the title, with a copy button.
- Shorter pages: Interview Recon dropped from nine sections to seven, and Master Shifu from eight to six.
- Smaller stylesheet: The inlined CSS fell from 16,754 to 16,724 bytes while gaining a radius and a hover tint.
The retired Lazarus Pit write-up now reads in the past tense
The page described a tool that still ran every Monday, which stopped being true when the project was retired. It now reads as a record of what the agent did, so anything quoting the page, including an AI assistant reading it, describes a finished experiment rather than software you can go and use.
- Accurate when quoted: AI clients reading the page get a finished experiment, not a live tool.
- No phantom checks: The section claiming to poll a repository daily is gone, since there is no repository.
Lazarus Pit is marked retired, with the reasoning left in place
The Lazarus Pit experiment no longer exists as its own project, so its page and its row in the side-quest directory now say retired instead of describing a tool you could go and use. The write-up stays up, in past tense, because the part about refusing to draw conclusions from eleven sessions is still worth reading.
- No dead ends: Nothing on the site now offers a project that cannot be obtained.
- The thinking survives: The page keeps the reasoning rather than disappearing with the project.
The contribution graph reads correctly on the beige ground
On the beige page the GitHub grid's empty squares were a cool grey borrowed from the white theme, which made the whole graph look like holes cut out of the paper. They now match the warm ground. A side project was also showing another project's releases as its own, which is corrected.
- Beige reads properly: The contribution grid sits on the warm ground instead of fighting it.
- Correct attribution: Lazarus Pit no longer lists releases that belong to Rainmaker.
Browser chrome now matches the page ground you picked
Choosing beige or dark used to leave the browser's own toolbar showing the colour your system preferred rather than the one on screen. It now follows your choice. A pass over every page also confirmed no broken links, missing image descriptions, or heading problems anywhere on the site.
- No mismatched edges: The browser toolbar takes the colour of the ground you chose.
- Checked, not assumed: All 70 pages audited for broken anchors, missing alt text, and duplicate ids.
The days log says which year you are reading, above the band
The year row moved from the foot of the page to directly above the week band, so it now labels what you are looking at instead of explaining it after the fact. The caption below the band has room around it, and the footer link to the log is called days rather than something you would never search for.
- Labelled where you look: The year sits on top of the band rather than at the bottom of the page.
- Easier to find: The footer link is now called days, under Read with the blog.
Pick how the page reads from three swatches at the top
The page light is now three swatches in the top corner showing the grounds themselves, light, warm beige and dark, instead of a pull cord. Leave them alone and the page follows your system setting exactly as before. The days log also gained a Years row and a clearer break between the year overview and the weeks.
- You see what you get: Each swatch is painted in the ground it switches to, so nothing is a guess.
- Works on a phone: The picker sits in the page rather than floating over the menu button.
- Years have a home: The days log shows which year you are reading and where the others will live.
The days log gained a year summary and a week-by-week overview
/days now opens with what the year contains so far, essays, releases, and how many weeks actually got logged, followed by a row showing every week at a glance that you can click to jump into. Closed years move to their own page, so the log stays readable however many years it runs.
- The year at a glance: One row shows every week and how much landed in it, before you scroll anything.
- Honest arithmetic: The summary reports weeks logged out of weeks elapsed, not just the wins.
- Still fast in ten years: Each year gets its own page, so the log never becomes one enormous document.
The days log now covers every week since the site went live
/days showed one week next to a counter reading 91 days. It now generates every week since the launch week and fills them from essays and side-quest releases already published here, so you can see three months of work rather than the last seven days. Weeks with nothing in them still appear, empty.
- Three months visible: Fourteen weeks of dated, linked work replaced a single week.
- Gaps cannot hide: Weeks are generated rather than typed, so a quiet week shows up instead of vanishing.
- Sources are linked: The Day 91 post now links every company, talk, and book it mentions.
A day counter and a weekly log of what I actually shipped
The new /days page counts the days since this site went live and lists, week by week, what got finished, what is still open, and what I dropped. Unfinished items stay visible after the week ends, and a week with nothing logged still shows up empty rather than being skipped.
- See the work: Every week names one intention and lists the dated things that actually came out of it.
- Misses stay visible: Open and dropped items are never removed later, so the log stays a record rather than a highlight reel.
- Always current: The count recomputes in your browser on Asia/Kolkata time, so it is right between deploys.
The site now follows your system dark mode
If your device is set to dark, this site is now dark too. There is no toggle to find and nothing is stored about you: the page reads your operating system setting and matches it. Body text sits at 14:1 contrast against a ground that is deliberately not pure black, because pure black under near-white text makes letters glow at the edges and is hardest on readers with astigmatism.
- Reading at night: Text, links, dates and quotes keep the same order of emphasis they have in light mode, so nothing shouts that did not shout before.
- No setting to find: Your device already knows which you prefer, so the site just uses that. Nothing to click, and no preference kept about you.
- Contribution graph: The green scale switches to GitHub's dark values, so a busy day still reads brighter than a quiet one instead of the reverse.
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.