Engineering
Reading time, and other small lies a website tells you
The reading time on this post is computed from the text. The last-modified dates in our sitemap are absent rather than stamped with today. Small honesty is mostly a series of defaults you decline.
Every post on this site shows a reading time. It is computed at build from the actual word count of the actual post, divided by 225 words per minute.
This is not an achievement. It takes one line. But the default in most content systems is a number someone typed, and a typed number drifts the moment the post is edited, and then the site is telling you something small and false for no reason at all.
A short collection of these, because together they are most of what separates a site that can be trusted from one that cannot.
The sitemap that lies about freshness
A sitemap can carry a last-modified date for every URL. The tempting implementation is to stamp every entry with the build time, because it is one line and it makes the site look actively maintained.
What it actually does is teach the search engine that your last-modified field is noise. If every URL changed today, and again tomorrow, and again on Thursday, the field carries no information and gets ignored. You have spent a real signal to look busy.
Ours omits the field entirely. Not because omitting it is clever, but because we have nothing truthful to put there yet: the content layer is new and there is no substantive revision date to report. When there is one, it will come from the content record, set when someone actually changed something, never from the build clock.
The freshness date in the title
“Best X in 2026”, updated every January by a script that changes the year.
In the corpus we studied, a large share of comparison page titles carry the current year. Some of those pages were genuinely revised. Many were published once and carry a year that updates itself.
We do not do this, and the mechanism is that our records carry a last-verified date which a human sets when they re-check the facts. If nobody has re-checked, the date stays old, and an old date is information.
The testimonial with no name
Not our sin yet, because we have no customers to quote. But the pattern is worth naming while we still have nothing to lose by committing to it: a quote attributed to “Head of Product, SaaS company” is a quote nobody can check, and an unverifiable endorsement is closer to a claim about ourselves than a claim by someone else.
When we have quotes they will carry a name and a company or they will not run.
The author who does not exist
The strongest single signal we found across 3,038 competitor pages was a byline. One name appeared on 98% of a 552-page cluster, described with a specific job title and fifteen years of experience.
We cannot prove that person is fictional and we are not going to try. What we did was make it impossible for us: our blog schema requires a named author on every post, and the publication gate refuses to build a post without one. Not a house byline, not a team name. A person.
Why any of this matters
Individually, none of these is important. Nobody has ever chosen a vendor because the reading time was accurate.
They matter because they are the things nobody checks, which makes them a reasonable proxy for how a company behaves when nobody is checking. We are asking people to let an agent into their software. The small stuff is the only evidence we can offer before they do.