Articles

Lessons from building in the open: what worked, what didn't, what I'd do differently. They land here first, then in the newsletter.

  • On Reddit, Claude Code lives in three subreddits: r/ClaudeCode, r/ClaudeAI and r/claude. The five threads Google ranks for this query, posted between June 2025 and March 2026, disagree on the verdict and agree on the cause: the output tracks what the person handed the tool. The failed reports share seven mistakes, and the people it works for describe a fix for each.

  • A cold email is a first message sent to one specific person who has never heard from you, for a reason tied to that person, with a request they can refuse. It is not spam, which sends one text to a list, and not a newsletter, which goes to people who signed up. In the US it is legal without prior permission if you identify yourself and honor opt-outs; in the UK, Canada and the EU it depends on who owns the address.

  • Dashboarding tools turn a database into charts that other people can read without writing SQL. On September 12, 2026, I built the same three charts from one Postgres database in Grafana 13.2, Metabase 0.63 and Evidence 0.9, all open source. All three drew the same numbers. What separates them is what you edit afterwards, JSON files, a click interface or a markdown page, and how much memory the server takes.

  • LinkedIn offers nine post formats: text, image (one or up to 20), video (one per post, up to 15 minutes), document (a PDF or slide file, up to 300 pages), poll (two to four options), celebration, event, article (125,000 characters) and newsletter. Pick one by the single action you want a reader to take in the feed: read, swipe, watch, vote or save. A reach ranking is the wrong reason.

  • For a photo you upload to a LinkedIn post, export at 1080 pixels wide or more and keep the width to height ratio between 3:1 and 4:5. LinkedIn's help page sets the minimum at 552 by 276 pixels and the upload limit at 5 MB. Outside that range, the image is centered and cropped to fit. The 1200 by 627 you have read everywhere is a real number from a different spec.

  • A self-hosted AI agent is an agent whose runtime you install on hardware you control. In most setups that covers only one of three layers: the runtime is yours, the model is still a cloud API, and the tools reach wherever you point them. Keeping the model local is a separate decision, and it costs memory, roughly 16 GB for the smallest capable models, plus some tool-calling reliability.

  • SaaS marketing automation is the set of messages your product sends because of what a user did inside it: signed up, reached the first useful result, went quiet, ran out of trial. The hard part is not picking a tool from a list of thirty. It is naming the one event that means a user got value, then hanging every trigger and every exit condition off that name.

  • A bad news email subject line should identify the affected service, order or request. For an operational change, include the change and date: "Your Pro plan rises to $29/month at your 12 November renewal". For a sensitive personal decision, a neutral subject naming the request can be more appropriate. Put the explanation and next steps in the body.

  • Hermes Agent and OpenClaw both support conversations, tools and scheduled work. Their security cannot be compared as “gateway versus container”: both need controls on who can issue requests and what those requests can execute. Choose using your required channels, execution environment, credentials and maintenance needs, then test the same limited task on each.

Get ahead.

Get the best articles, carefully selected to save you time.

Featured

A pivot is often just the polite word we use with investors when the first company is dead and we have decided to build another one. And that is fine. Not because failure is noble, but because luck needs exposure: every market you enter, every product you ship and every channel you test is one more surface where something unexpected can land.

Projects

Brands

The essentials, by email.

What works, what does not, what I would do differently. Sent when I have something useful to say.