FoodyFocus

AI food photography for restaurants: product, front end and the growth audit, all in one pair of hands.

FoodyFocus turns a phone photo of a dish into a print-ready professional photograph in seconds, for 19 euros a month instead of a 400 to 800 euro shoot. It is my own product. I own the UX, the React front end, and the SEO and performance work that decides whether restaurants ever find it.

Role

Founder, UX engineer

Client

Own product

Timeline

2026, live

Platform

Web app (React, Vercel, Supabase), marketing site in five languages

FoodyFocus website

334

URLs across five languages in the sitemap

450x

Organic traffic gap to the direct competitor, diagnosed as topic selection, not page count

1.5 MB

JavaScript every marketing page was shipping before the decoupling work

Context

Restaurants need good photographs for delivery apps and menus, and a professional shoot costs 400 to 800 euros. FoodyFocus lets an owner photograph the dish on a phone and get a professional image back in seconds. The audience does not buy AI; it buys photographs, and every decision on the site follows from that.

The audit

Before any redesign I audited what a crawler actually receives. The site had 334 URLs in five languages and roughly three organic visits a month against a competitor's 1,352. That is a 450x gap, and it was a topic-selection gap rather than a page-count gap.

Two things were holding the site back. About 56 landing pages had never been crawled because the sitemap had grown since Google last read it, which is a twenty-minute dashboard fix that gates everything downstream. And every marketing page shipped 1.5 MB of JavaScript, including the entire 826 KB application bundle and the auth client, so a visitor reading a blog post was booting a logged-in app.

The first audit pass also flagged a canonical decision as a bug. It was not; it was a deliberate response to a real duplicate-content signal, and the audit records the retraction so the next person to crawl the site does not repeat it.

FoodyFocus landing page
The promise in one line: your real food, in your own restaurant, three free photos, no card.

Decisions

  • Stop the bleeding first: the one real 404, the Search Console tasks only a human can do.
  • Decouple the marketing bundle from the app before splitting anything. Most of the performance win lands here and it pays for itself even if the split is cancelled.
  • Then split: marketing on www, product on app, two builds, two deployments.
  • Brand before visuals. Four mood boards, deliberately far apart, each stating the claim it makes and what that claim costs. The point is not to pick a pretty one but to decide which claim the brand makes.

Why it is on this page

It is the clearest example of how I work: research the real problem, decide in writing, then build it myself. The same six-phase process runs on client work; here I also own the consequences.

FoodyFocus website section
FoodyFocus website section

More Works

More Works

More Works

More Works