Skip to content

Insights ·

Enforcing local ownership in code, not community guidelines

Foodpoint lists local-owned food businesses only. That rule lives in the product rather than in a policy document, and the difference is the whole design.

Guidelines are a promise you make to yourself

Every listings product starts with community guidelines, and the guidelines always say something admirable. They are also the first thing to move when the numbers need to move. Coverage is the metric listings products are judged on, and the fastest way to increase coverage is to relax the definition of what belongs.

This is not cynicism about anyone's intentions. It is a structural observation: a rule that lives in a document is enforced by whoever is on moderation duty that week, against a target set by someone who does not read the document. The rule loses, slowly, and nobody can point at the moment it happened.

What changes when the rule is in the product

Putting the constraint in the product converts an ongoing judgement call into a one-time decision. The listing model itself carries the distinction, so adding an outlet that does not qualify is not a moderation failure — it is work someone would have to deliberately do.

It also makes the cost visible up front. A directory that excludes categories of business has a hard ceiling on how large it can get, and we would rather hit that ceiling knowingly than discover in eighteen months that the product has quietly become a different product.

The ceiling is the feature

The usual instinct is to treat a smaller database as a weakness to be apologised for. For food discovery it is closer to the opposite.

A search that returns every dining option within two kilometres has not answered the question — it has restated it. The value of a local directory is in what it leaves out, and a user who trusts the exclusions can act on the first three results instead of scrolling past forty. Coverage and usefulness point in different directions here, and we chose one.

None of this requires the user to know the rule exists. They notice that the results look like the neighbourhood they are standing in. The rule is what makes that reliable rather than lucky.

Where it applies beyond food

The generalisable form: if a constraint is core to why your product is worth using, encoding it in the data model is cheaper than defending it in a policy every quarter.

The test is simple. Ask what happens to the rule when it collides with a growth target. If the honest answer is that the rule bends, it is not a rule — it is a preference, and it belongs in the product before it belongs in a document.

More from Mavis Digital

  • Four languages from the first commit

    Foodpoint ships in four languages. The interesting part is not the translation work — it is everything that has to be true before translation is even possible.

  • The stage everyone skips

    Every product we run goes through four stages, and keeps going back through them. Under deadline pressure, teams reliably skip one of them, and it is almost never the one they would admit to.