Get early access
🍅 Built for tomato growers

Photograph the leaf. Get the diagnosis, the risk, and what to do next.

PlantPhrase reads a photo of your tomato plant, pairs it with your temperature and humidity readings, and returns a ranked list of actions — not a wall of charts you have to interpret yourself.

Private beta. No card, no spam — one email when your spot opens.

Recorded diagnosis 59.2% confidence
Late blightSolanum lycopersicum · mild
1Remove affected foliage now — this spreads fast in humid air; do not compost the leaves.
2Improve airflow, water at the base rather than overhead, and check daily for spread.
This is one real recorded run — open the live demo
What it does

Four questions, answered from one photo and a sensor feed.

Every number below comes from a published agronomic model, computed on your own readings — not a general-purpose chatbot guessing at a picture.

Diagnosis

What is wrong with it

Leaf photo in, disease out, with a confidence score. Below 0.55 it says uncertain and tells you how to retake the shot rather than inventing an answer.

Tom-Cast DSV

When blight will strike

Daily severity from leaf-wetness hours and temperature, accumulated over the season. At the field-validated threshold you get a spray recommendation — not before.

VPD & GDD

Whether conditions are right

Leaf-to-air vapour pressure deficit against the band for the plant's current stage, and growing-degree days that track which stage that actually is.

BER risk

What is coming for the fruit

Blossom end rot scored from transpiration stress, irrigation irregularity and stage susceptibility — the delivery failure, not a calcium deficiency myth.

How it works

Three steps, and the third one is the point.

  1. Send a photo

    Upload from the app. The photo is checked, stored, and queued — you get an immediate response and the result streams in when it is ready.

  2. Add your environment

    Push temperature, humidity and leaf-wetness readings from whatever you already run, or let historical weather fill short gaps for a located plant.

  3. Get ranked actions

    Deterministic rules decide what to do and in what order. Language may be rephrased for readability; the decision itself never is.

The models

Published agronomy, not vibes.

These are the actual models behind the numbers, so you can check our work against the literature.

ModelBasisWhat it decides
Tom-Cast DSVPitblado severity table for Alternaria solani; zero outside 13–29 °CPreventative fungicide timing
GDDCapped method, base 10 °C, cap 30 °CPhenological stage
VPDTetens SVP, leaf-to-air with a 2 K leaf-cooling offsetHumidity and shading calls
BER risk0.40·vpd_stress + 0.35·irrigation_irregularity + 0.25·stage_susceptibilityIrrigation regularity
Where it is honest about gaps. Accumulating models need continuous readings. A day with no data is skipped, never zero-filled — a missing snapshot is visible, a fake healthy day is not. Short gaps are bridged; longer ones can pull historical weather for GDD only. Leaf wetness is never invented, so no disease pressure is ever conjured out of thin air.
Your data

Boring, careful infrastructure.

Your photos stay yours

Uploads are size- and content-checked, stored under your account, and used to answer your question. They are not a training corpus.

Least privilege by default

Permissions are enforced by the database itself, not by convention. The analysis side cannot delete a row anywhere, and tests assert it.

Bring your own sensors

Readings arrive over a plain HTTP API, so anything that can POST JSON — a hub, a script, a controller — can feed it.