Skip to content
GardenTrack GardenTrack
Start free

What shipped

Newest first. Short entries — what you can now do, and whether it fully works yet. The longer stories about how any of it went live on the blog, and the how-does-this-work pages are in help.

  1. A trait tag now says who is talking

    Variety pages showed trait tags like "drought tolerant" or "takes the heat" as flat facts, with nothing to say where they came from. Most of them came from a seed catalog describing its own product — a sales claim with a URL on it. Now, once you have picked a variety, the app names the source: "Johnny's Selected Seeds describes this as drought tolerant" reads differently than "NC State Extension records this as drought tolerant," and both beat stating it as our own fact. 144 varieties had a trait nobody could be named for — those show nothing now, instead of an unattributed claim standing in as the truth.

  2. An estimate can now say we went looking for something better

    Strawberry’s container size, 1–2 gallons, is our own estimate — no extension office states a gallon figure for a strawberry plant. Until today, if we went back and genuinely searched for a real number, there was nowhere honest to put the result: our database could hold an estimate or a record of a search, never both on the same field. That is fixed. The estimate on strawberry’s page now carries one line saying we checked four university sources for a better figure and found none — one was about freezing the fruit, one was actually about grapes. **The number did not change. What changed is that you can now see we looked**, instead of wondering whether anybody ever checked.

  3. Every guide we have rewritten now says why it is worth reading

    The last three guides in this pass are done: tomato flowers dropping, will it frost tonight, and how to protect plants from frost. Same treatment as the others — the writing reads like a person talking, and every temperature, figure and university quote is exactly where it was. Each one also now states what makes it worth reading over the other pages answering the same question, and a check refuses to build the site unless that claim is genuinely in the page. Two are worth calling out. The flower-drop guide gives you how LONG it has to stay hot before you actually lose flowers, not just how hot — because one hot afternoon costs you nothing and a run of hot nights costs you the set, and almost nobody publishes the duration. The frost protection guide now leads on what a cover is actually doing, which is trapping the ground heat rather than the plant heat. Every way covering fails follows from that: a cover that does not reach the ground lets the only heat you have pour out the sides, a cover touching leaves conducts cold straight through, one left on into sunshine runs 20 to 40 degrees hotter than the air and cooks the plant, and a wet sheet can leave things colder than no sheet at all, because evaporation pulls heat away.

  4. The free plant data keeps every crop and every variety, and drops the fields only software uses

    When we put the plant database up for download last week we put up all of it — including the parts that exist to make our app work rather than to help anyone garden. That was more than we meant to give and we have narrowed it. What did NOT change: all 151 crops and all 3,176 named varieties are still there, free, CC BY 4.0. What came out: the growth stages and the care actions inside them, the watering rates and weather thresholds our alerts fire on, and the frost calendar those stages resolve onto. None of that changes what you do with a trowel; all of it is what took eighteen months to put together. What stayed is what you act on — spacing, sowing depth, sun, days to maturity and what it counts from, how big it gets, hardiness zones, pot size, pests and diseases, when to start relative to your last frost, and per variety its maturity, type, color, size and habit. The provenance file came with it: every value in the download that has a source names it, and every value that has none says why. If you want the complete record for research or to check our work, email us and ask — the page says so, and we would rather hand it to somebody who says what it is for.

  5. We fixed one link that reloaded the app. Then we fixed all of them.

    Earlier today the guide link in a chat answer quietly reloaded the app instead of opening the guide. Fixed. But the cause was never that one link. **The app answers for any address at all.** Ask it for a page it does not have and it hands back its own front page with a perfectly healthy response — which is exactly what makes it work as an app, and exactly why a link to our website disappeared into it without a trace. So it was not one broken link. It was every link to our own site, present and future — and the future part matters, because the chat has just learned to answer from all eighteen help pages and that list writes itself. **The surface was growing on its own.** Now anything belonging to the website is handed to the website. Guides, help, the plant database, the tools, the research pages. We wrote the list by hand first, and it was wrong before it shipped: four addresses, when there are eleven, and the plant database was not one of them. **A list you type twice drifts the first time somebody adds a page** — so it is now read from the website itself, and adding a page updates the app by building it. The check also refuses to hand over anything that is one of YOUR screens. Sending somebody from their own garden to our marketing site would be a far worse bug than the one we started with, so the build fails rather than allow it.

  6. Fall crops were not too late — the app just thought they were

    Ask the app in early August whether you could still plant spinach, lettuce, radish, kale, turnips, arugula, mustard or cilantro, and it was telling some of you "not this year" when the true answer was "yes, plenty of time." A tomato really does die at the first light frost, so the app checked every crop against that same date — but a light frost barely slows spinach down, and it makes kale taste better. Now a crop a light frost does not kill is checked against your first HARD freeze instead, a colder date later in the year that we already had for your address and simply were not using. In Fargo, ND, about as short a growing season as the Lower 48 has, turnips sown today went from "three days short" to "a week to spare." Most of the country has an easier season than Fargo. If the app told you no a few weeks ago, it is worth asking it again.

  7. It made the cherry trees and it made the watering. It did not connect them.

    Reported after a real message: "I moved the orange tree and potted lavender to the front porch and watered the two cherry trees I have in the front yard." Two cherry trees were created. A watering was written down. **Nothing joined them** — the watering was a note carrying the words "front yard", so asking that tree next month when it was last watered would have got nothing back. Two things were wrong underneath. Everything was saved in the order you said it, so the watering went looking for trees that did not exist yet. And the way it looked was by matching your words against the plant's NAME — so "front yard" would find a tree you had labeled "front yard cherry" and miss two labeled "Cherry". It worked sometimes, which is why nobody noticed it usually did not. Now the bed is made first, then the plants, then anything referring to them — and the watering is attached to the actual trees, one entry each, so each tree can answer for itself. **And when we are not sure, we ask.** Say "the two cherry trees" when we hold three, and you get the three offered so you can pick. That is deliberate: a number you stated is something you know about your own garden, and when it disagrees with our records, one of us is wrong and it is not automatically you. Quietly picking two of three would settle that in our favor, invisibly, in your own records — and a watering on the wrong tree is never noticed.

  8. It recorded a healthy rose as dead, and a bolted lettuce as a milestone

    We took every sentence the app understands and rewrote each one the way somebody who has never gardened would say it. Most of the failures were harmless — the app kept your words and saved a plain note. **Four were not harmless. They recorded the opposite of what happened.** **"Pulled the dead flowers off the roses" marked the rose as dead.** Deadheading is the most ordinary job in a rose bed and August is exactly when you do it — and "dead" is the one thing in your records you have to be able to trust. A thriving plant filed as dead is a lie you would read next spring and believe. **"The lettuce shot up and started flowering" was recorded as flowering** — a milestone. That is bolting: the plant has given up on leaves and gone to seed, and the crop is over. We would have congratulated you for it. The other two were quieter. **"Sprayed a bit of water on the seed tray"** was filed as treating a pest, because of the word *sprayed*. **"Gave everything some plant food"** was filed as planting, because of the word *plant*. **Every one of them lost to a shorter, more general word** — *dead* beat *dead flowers*, *plant* beat *plant food*. All four now land right, and the sentences they used to steal from still land right too: spraying a rose is still treating it, a genuinely dead tree is still dead, and a first flower on a zucchini is still a first flower. **A missed sentence costs you a fact. A wrong one invents a fact.** Those are not degrees of the same problem, and only the second is worth interrupting the week for.

  9. It understood 43% of what a gardener actually says. Now 57%.

    We fixed "I moved it" as a one-off last week, and that was the wrong shape of fix. **"Moved" was not special — it was the one thing somebody happened to try.** Nobody had ever written down the list of things a gardener says out loud, so we were finding the gaps one report at a time. So we wrote 56 of them down first, in the words a person actually types — short, lowercase, half a sentence — and measured before fixing anything. **43% understood.** Five were understood as the *wrong* thing, which is worse: a note keeps your words and loses the fact, but a wrong type invents one. "Picked the caterpillars off by hand" was filed as a harvest of caterpillars. Three fixes, measured after each. **The app picked the first matching pattern rather than the best one.** "Lost the zucchini to slugs" matched on the word *slugs* and became a pest sighting, when the sentence plainly says the plant died. Now the most specific match wins — and the ordering is pinned by tests, because it had been silently load-bearing for years. **There was no way to record treating a plant.** Spraying, traps, picking pests off by hand — the app will tell you to do these, and had nowhere for you to say you had. The second spray is the one where remembering the first matters. **And everything the app understood was something a PERSON did.** "Beans are up." "Lettuce has bolted." "First flower on the zucchini." You say those in exactly the same breath as your own jobs, and it heard none of them. **It understood a logbook, not a garden.** Now it hears them, and records them against the plant with the date — which matters more than it sounds, because we hold how long a seed should take. Beans up on day six when we said eight is your garden telling us something about your soil.

  10. It said you were offline. It was calling your own phone.

    Reported twice, four days apart, both times on full signal: a message that would not send, "could not reach us just now, though you are online", and a queue of unsent changes climbing to nineteen. The app was sending every request to `localhost` — a address that means **this device**. So the phone was asking itself for the answer, and getting an instant refusal. It looked exactly like a network problem because a refused connection is the same error a network problem gives you, and it failed in nine milliseconds, which is why the Try again button appeared to do nothing. The cause is duller and worse than a bug. The address of our server is a setting supplied when the app is built, and if it is missing the code fell back to a developer's own machine — a sensible convenience while writing code, and a catastrophe once shipped. That setting had gone missing, so every build since quietly pointed at nowhere. **A production build now defaults to production**, and the developer address only exists while running the app locally. We also found the same address written out FIVE separate times across the app, which is why nobody noticed: fixing one would have left four. There is now one copy, and a check that reads the finished app before it can ship and refuses it if the word localhost appears anywhere in it. Nothing was lost. Everything saved while it could not send has been waiting on the phone and goes up as soon as the app can reach us again.

  11. "I moved the orange tree to the front porch" — and the apple tree stayed where it was.

    Telling the app you moved something now works, and the app knows the difference between two things that sound the same. **Repotting is not moving.** "Moved it to a bigger pot" changes what a plant is planted IN — the app already understood that one. "Moved it to the front porch" changes where it SITS, and until now that fell through as a plain note. They are worth telling apart because where a plant sits decides its light, its wind and how fast it dries, and none of that changes when you repot it in the same spot. **And a plant in the ground cannot be carried anywhere.** Say you moved a tree we have on record as rooted and we will write down that you told us — and leave the tree where it is, and say so: *"Apple tree stayed put — our record says it is in the ground rather than a pot. If that is wrong, change it on the plant and we will follow."* Either our record is wrong, or you dug it up, or it was a slip of the tongue, and all three of those need you rather than a guess.

  12. Nine bean varieties were given another species’ sowing numbers, and one of those numbers could cost you the seed

    If you looked up Scarlet Runner, Christmas Lima, King of the Garden, Big Mama, Painted Lady, Sunset Runner, Florida Speckled Butter, Willow Leaf, or Dr. Martin’s on this site, the growing numbers you saw were not that plant’s. They were pole bean’s. Runner beans and lima beans are not pole beans. They are three different species — a pole bean is Phaseolus vulgaris, a runner bean is P. coccineus, a lima is P. lunatus — and somebody filed those nine varieties under pole bean because they are all grown up a pole. They inherited every pole bean number as a result. **The one that matters is soil temperature, and it runs wrong in both directions.** We told you to wait for 60°F soil. A runner bean can go in at 50°F, so anyone who waited lost the front of the season — in the one bean whose whole advantage is that it goes in early. A lima wants 62 to 65°F, so anyone who sowed at 60 put seed into soil that is too cold for it, and cold soil rots lima seed. That is not a late planting. That is a planting that never comes up. Every other field was wrong too, just less sharply: days to maturity, days to germinate, how far either side of your last frost to sow, and what size container. A runner bean finishes up to 35 days sooner than a pole bean, so its whole calendar was stretched. The nine are moved to their own crops and now carry their own figures. They were also in the plant database download, by name, so anyone who took a copy before today has the wrong numbers for those nine rows and should download it again. On how it was found, because it was not luck and it was not a bug report. We fixed a different filing mistake yesterday — five lemon balms sitting under lemon — and then went looking for anything with the same shape rather than assuming it was a one-off. That is what turned these up. The first measurement of the damage came back saying no field differed at all, which was clean, confident and completely wrong; it was caught because three different species sharing an identical soil temperature is not believable, not because anything failed.

  13. One row of cucumbers is the entire 4×8 bed

    A new guide on laying out a vegetable garden, and it argues with itself on purpose. **The number that decides whether a plan fits is not the one on the seed packet.** In-row spacing is the famous number; the gap between ROWS is the one that decides, and across the thirteen crops we checked it runs from about one and a half times the in-row figure up to ten times it. The pattern is the opposite of what you would guess — the smaller the plant, the bigger the gap, because you can pack the row and still need somewhere to put your feet. **Cucumbers are published at 8 to 12 inches in the row and 48 to 72 inches between rows. A 4×8 raised bed is 48 inches wide.** Read those together and one row of cucumbers is the whole bed — not a corner of it. Summer squash at 36 to 48 does nearly the same thing. That is why so many first beds turn into a thicket by July: nothing was done wrong, the subtraction was just never done. **Then we ran the same check on our own recommended plan, and it fails too.** The four-row bed we suggest needs 72 inches of gaps at published spacing and a 48-inch bed gives 36. We printed that rather than round it away, because the resolution is the useful part: those figures reserve a walkway for someone with a hoe and a field, and in a bed you reach into from both sides, half is genuinely fine. Shaving a number you have seen is a decision. Shaving one you never met is a guess wearing a plan. **Every figure comes from our own records, and behind the ten crops named sit 42 extension publications from 11 universities.**

  14. One fruit’s source bled onto its neighbors, and we caught it before you saw it

    Fifteen crops got a real, cited container size today — ten herbs and five fruits. **Three of the five fruits were wrong when they were written, and a second reviewer caught all three.** **Fig was the clearest.** We had it at 10 to 15 gallons with a note about starting small and moving it up a pot size as it grows. That advice is real — it is just about **blueberries**. Fig appears in our source exactly once, inside a sentence that names four fruits together and gives them one number: fifteen gallons. No range, nothing about potting up. **Fig now says 15 gallons and nothing else.** **Blueberry had a floor nobody stated.** We showed 5 to 15 gallons. The page we cite gives a size for a mature plant and says to repot as it grows — it never names a starting number. So the 5 was ours, not theirs. It now says 15 gallons, with the repotting advice kept as words rather than invented as a figure. **Blackberry’s number was right and its receipt was wrong.** 20 to 30 gallons is what Oregon State says. We had also listed a Maryland page as backing it up — and that page actually says **10 gallons** for the same crop. Two sources disagreeing is worth knowing; a disagreement presented as agreement is not. We dropped the citation that did not support us and say plainly on the page that the two disagree. **All three are the same mistake.** When one page covers several crops in one sentence, it is easy to let the detail from a crop that HAS its own page slide sideways onto a crop that does not. The number looks sourced. The sentence it came from was about something else. We now have a written check for it and a second reader on every batch, which is what found these — not the person who wrote them.

  15. Every pest and disease now has exactly one name

    **Thirteen pests were living a double life in the database.** "Cabbage looper" on some crop pages, "cabbage loopers" on others — same insect, two different spellings, and nothing tying them together. Same story for the Japanese beetle, root-knot nematode, wireworms, and nine more. It never showed up as wrong information — every individual crop page was correct on its own. The problem was invisible until you read the full list and noticed two neighbors that were obviously the same bug. We picked one spelling per pest — checking what the actual extension sources call it, not just going with whichever spelling showed up on more crops — and repointed every crop page to it. A few crop pages now name a pest slightly differently than before (plural vs. singular). **The real payoff is what this makes possible:** we can now write one real "what it looks like, what to do about it" page per pest and have it correctly show up on every crop that has that pest, instead of silently missing half of them.

  16. It asks you once what "planted out" means, then never again

    **Some gardeners say "planted out the leeks" and mean the leeks are in the ground for good. Others mean the tray went outside for the day and comes back in tonight.** Both are ordinary English. It is not a careless way of talking — it is regional, and there is no majority we could quietly side with. We went looking for something that would settle it. **Nothing does.** Not the time of year: hardening off happens in the days right before the transplant, so the two sit on top of each other by definition — and of our 151 crops, only 38 even mention hardening off and not one of them says when it happens. Not whether the plant is already in the ground, which answers the easy half and leaves exactly the half people say this about. Not whether you mentioned hardening off earlier, which is missing both when you did not do it and when we did not hear you. **So it asks you. Once.** Two buttons — *into the ground* or *out for the day* — and the thing it remembers is not about the leeks. It is what those words mean when **you** say them, and that does not change between Tuesday and next April. One tap buys every sentence you type after it. Until you answer, those sentences save as your own words rather than as a guess, because a coin flip repeated all season is worse than a note. In our own test set of 56 things a gardener actually types, that one answer takes us from 59% understood to 63% — and takes the number we understood **wrongly** to zero.

  17. How to grow potatoes in a bucket, and the number that decides it

    New guide, and it is the first of a short series about growing in actual buckets rather than in pots you have to go and buy. Every page on this subject answers the same question — what size container — and then leaves you guessing how many potatoes to put in it. That second question is the one that decides your crop. University of New Hampshire Extension publishes the figure: plan for five gallons of soil volume for each plant. A standard bucket is five gallons, so a bucket grows one potato plant. Not three. One. Put three in and they all come up, share one plant worth of soil between them, and you tip out a bucket of marbles in September. The guide has the filling method from the same source, which is not like filling a pot — you start the bucket half empty and keep adding soil as the stems rise, because the potatoes form on the buried stem above the seed potato rather than below it. It also says what a bucket does not fix: it dries out faster than the ground and wants watering daily in July, and it will never out-yield a row. One plant makes what one plant makes. What the bucket buys you is somewhere to grow with no ground at all, and a harvest you tip onto a tarp instead of digging for.

  18. Seven jobs the app asked you to do and then had nowhere to write down

    Nik asked a simple-sounding question: do we cover all the jobs a gardener actually does — **"pruning, put up supports or braces, thinning out"** — and do we know the proper words *and* the casual ones *and* how somebody new would say it. Two of his three examples worked. **Staking did not**, and nor did six others: weeding, covering, uncovering, hilling up, dividing a clump, and taking cuttings. All seven were saved as plain notes — nothing lost, but nothing countable either. **Four of them are jobs the app itself tells you to do.** It will say *stake this while it is still small*, or *keep the bed weeded* — and then have no way to record that you had. So the job never got ticked off by saying you did it. That is fixed: doing the thing now finishes the thing. Each one understands three ways of saying it, because they are genuinely different sentences: *staked the dahlias*, *tied the tomatoes up*, and **"put sticks in for the beans to climb"**. That last one is the kind we were worst at, and it is the one most people would actually type. **The hard part was the words that already meant something else.** "Covered in aphids" is a pest sighting, not a row cover. "Split the rhubarb" is dividing a plant; "the plum split after the rain" is damage. In each case the new word would have won and quietly stolen the sentence, so each one is now guarded and tested. Understanding of the things a gardener says went from **59% to 73%** in the same change.

  19. Half of "I watered it" was not the word water

    Nik reported something small: **"for watering I can put in 10 but I want to either select gallons or minutes."** That part already worked — a bare number keeps the number and shows you two buttons, because a can is gallons and a hose is minutes and there is no honest way to turn one into the other. So before changing anything we drove it, the way we drove the verbs last week: **30 ways a person says they watered something, scored before any fix. 43%.** **The units were barely the problem.** Half those sentences never reached the amount question at all, because the app was looking for the word *water* and people mostly say the tool or the amount instead. "Gave the beds two gallons." "Drip ran for an hour." "Misted the seed tray." "Gave them a drink." All ordinary, all landing as a plain note. **And the tool you name settles the unit, so it should never have been a question.** Nobody measures a hose in gallons — you do not know how many came out and you never will. Nobody measures a can in minutes. A hose, a sprinkler, a soaker or a drip line is minutes; a can, a bucket or a jug is gallons. It still refuses to guess from the *job* — "watered the tomatoes, 10" is genuinely unknowable and still asks — but it no longer interrupts you to ask something you already said. **"Two cans" is not two gallons.** That one was quietly the worst: a real number sitting against the wrong noun, with the gallons button one tap away. Your can holds somewhere between one and three gallons and it is not labeled. Now it keeps the gallons and leaves the number to you. **And "a good soak" is not an error.** It used to answer *there is no number in that we could record*, which is true and reads like being told off — and somebody told off for talking normally learns to talk to their app like a form. The watering was always saved. Now it says so, and the number is an offer with a reason attached. **43% to 93%, and nothing it writes is a number you did not say.**

  20. Winter was never empty. The app just could not count past New Year

    **Garlic goes in during October and comes out the following July.** A plant's stages are stored here as day numbers, so garlic's harvest lands on **day 544 of a year that stops at 365**. Asked in January whether day 544 had arrived, the app said no — correctly, and uselessly. Then it filled the gap with the only thing it could find ahead of it, which was next October's planting. On 15 January the row read *"Taking root in 237 days"*: advice to plant garlic, given to somebody whose garlic was already in the ground and four months old. **33 of our 151 crops had at least one stage the app could not see, and garlic was the worst — invisible for 227 days of the year**, including its dormancy, its spring growth, its bulbing, its harvest and its curing. Five fruit trees lost the bare-wood prune for the two weeks either side of New Year, which is the only stretch that job exists. **Nothing was broken enough to notice.** Nothing threw, no test failed, and an empty winter looks exactly like a quiet winter. The app now works out which year a plant is actually in before it compares anything. Garlic reads **Dormant** in January, **Growing leaves** in April and **Ready to pick** in July, and the winter jobs on fruit — the bare-wood prune, peach's dormant spray, straw round the strawberries — turn up on the day they are due instead of never. The fix ships with a sweep that checks **all 55,115 crop-days** in the catalog rather than the handful of cases a person would think to write down.

  21. What actually fits in a five-gallon bucket, and the four crops that do not

    New guide. A bucket is the right container for **bush beans, carrots, Swiss chard, cherry tomatoes and cabbage**. It is too small for summer squash, which wants ten gallons — two buckets' worth of soil for one plant. The part worth reading is the four crops in between. **Maryland Extension answers this question twice, and the two answers disagree.** One of their pages carries a per-crop table where a standard tomato needs five gallons. Another skips crops entirely, sorts plants into three sizes, and puts that same tomato in the large class at eight to ten gallons, one plant per container. Peppers, eggplant and cucumbers sit in the same class. Both pages say minimum. Neither links the other, so you land on one number and never learn there is a second — and the five-gallon bucket falls exactly in the gap between them. Our read, and we label it as ours rather than something they publish: **five gallons is where the plant lives and eight to ten is where it does well.** A pepper in a bucket is a real pepper plant. It is the smallest container that is not a mistake, which is a different thing from being told five gallons is the answer. One thing we went looking for and could not find: how many plants fit in a bucket, crop by crop. Nobody publishes it except for potatoes. So the guide says that instead of doing the arithmetic ourselves and putting a citation on it.

  22. The link to our own guide quietly reloaded the app instead.

    When the chat names a problem we have written about, it offers you the page. Tapping it took you nowhere — or rather, it took you back to the app. Our guides are served from one address and the app from another. The link inside the app was written as a plain path, which looks perfectly valid and resolves to **the app's own address instead of the site's**. **And the app answered.** Not with an error — a single-page app hands back its own front page for any address it does not recognize. So the link returned a healthy, successful response and showed you GardenTrack again. No error page, no broken link, nothing at all to suggest anything had gone wrong. That is the same shape as the app calling your own phone last week: an address that looks right, resolves somewhere wrong, and gets a confident answer from the wrong place. Fixed, and the check that catches it had to be built twice. The first version scanned the shipped app for those bare paths — and flagged the corrected version too, because the same paths legitimately live in the shared data the website itself uses. **A check that fires on good work is one people switch off.** So the real test now asserts that the app builds the link against the site's address, and it was proven by breaking it on purpose first.

  23. Our pictures now describe themselves, instead of reading the headline out twice

    If you use a screen reader, every guide on this site used to do the same unhelpful thing. The big picture at the top was described by reading out the page title — **the exact words you were about to hear again from the heading underneath it.** So the picture told you nothing, and you had no way of knowing you were missing anything. All 17 guides now carry a real description of what is actually in the picture. The frost one is a curly kale plant edged with white frost in cracked soil. The tomatoes-in-pots one is two plants side by side — a short bushy one loaded with fruit, and a tall thin one on a cage with barely any — **which is the whole argument of that page, and it was previously invisible unless you could see it.** One note on how they were written, because it is the part that could have gone wrong quietly. We keep a log of the instruction behind every image we make, and it would have been much faster to write the descriptions from those instructions. We opened every picture instead. **An instruction is what we asked for, not what came back** — one image generated this week was asked for a plastic bucket and came back with an old metal pail. A description written from the request would have been confidently wrong, and the one person who cannot check it is the person relying on it.

  24. A variety that says "62 days" no longer also says "early"

    Small cleanup to the variety lists in the app. Each variety can carry short tags — **drought tolerant**, **cold hardy**, **bolt resistant** — and two things were wrong with them. **The same tag existed under two names.** 96 varieties said "pollinator" and 68 said "pollinator friendly". Those are the same claim, so anything that grouped or filtered on one quietly missed the other half. Nine pairs like that are now filed under one name. **And a row that already prints a number was printing the word for it too.** A variety that says 62 days does not also need the tag "early". That tag is gone from 215 rows. It is **kept** on the 73 varieties that carry no day count, because there the word is the only thing said about timing — honeyberry is the case that decided it. No honeyberry variety we hold has a day count, honeyberry needs a second variety flowering at the same time to set fruit at all, and **early or late is exactly how you pick a pair that overlaps.** Dropping it everywhere would have deleted the fact that decides whether the plant fruits. One thing we did not do: a first pass at finding duplicate tags by name similarity proposed seventy pairs, and among them was "bolt prone" and "bolt resistant" — **opposites.** Merging those would have inverted the fact on every row carrying it. Only pairs that plainly mean the same thing were merged, and the test suite now refuses the opposites by name.

  25. Nobody publishes the temperature your vegetables die at. We checked all 151

    New piece, and it came out of a column we could not fill. You stand in the garden at nine at night, the forecast says 30°F, and you want one number: **does the kale die?** We went looking for that number on every one of the 151 crops we hold. **27 have one. 124 do not — and we had already written down that we looked**, which crop, which sources, what date. 242 of those notes across 136 crops. Then the part that turned a gap into a finding. **Eight of the 27 are not death temperatures at all** — they are a source saying the plant is still fine down to that number, which is a hardiness statement wearing a temperature. That leaves 19. **And all 19 belong to somebody with a crop to lose.** Seven are fruit trees in blossom. Five are perennials getting through winter. Four are field crops. Two are tropicals. One is asparagus losing its spears. **Not one is an ordinary vegetable on a frost night.** We named it the orchard thermometer. Those tables were built for a grower deciding whether to run frost fans over a blooming peach block at two in the morning, and they answer that person precisely. For a cabbage in a backyard the same institutions publish a hardiness zone — the right answer to what can I grow here, and no answer at all to does this die tonight.

  26. Three honest answers for which variety you planted Partly live

    Adding a plant had no way to say which variety it was — the name you typed sat in the label, and the plant page kept asking "which kind of tomato?" above a plant that already looked answered. Now there are three real answers: pick one from our list and your dates sharpen; say you are not sure and the app asks again later, because it genuinely does not know; or type the name if it is not in our list, and the app stops asking. A typed name also gets logged by crop — a variety enough people type becomes one we go and add for real.

    Not yet: A typed variety currently lives on the device you typed it on and does not yet follow you to a new phone. A picked variety is unaffected.

  27. Three more guides rewritten, and one of them contradicts the usual advice

    The hornworm guide, the yellow tomato leaves guide and the yellow cucumber leaves guide have been rewritten to read like a person talking, with every temperature, figure and university quote left exactly where it was. Each also now states what makes it worth reading, and a check refuses to build the site unless that claim is genuinely in the page. The cucumber one is the interesting case. Almost every page answering "why are my cucumber leaves yellow" tells you to feed the plant. University of Minnesota publishes a diagnostic tool listing nine causes of discolored cucumber leaves, and nutrient deficiency is not one of them. So our page says that outright rather than recommending fertilizer to sound helpful, and points you at the wilt test instead — the one you can run without touching the plant. The hornworm guide leads with the caterpillar you must not kill, the one carrying white wasp cocoons, because squashing it destroys the insects that would have done next year work for you. And the tomato one starts from the leaf in your hand rather than from a list of five causes you have to guess between.

  28. The 'today' mark on your calendar stopped landing on yesterday

    Two things on the plant pages — the little 'today' mark on the calendar, and the 'what can I plant right now' list — work out today's date with some quick math. That math had a bug: for about an hour after midnight, on any day the clocks were set to daylight saving time (roughly March through November), it could land on yesterday instead of today. It never threw off a whole week, just that one day, and only in that hour. Fixed 7 August 2026 — today's date is now worked out a way the clock change can't trip up.

  29. Two guides rewritten, and both now say why they are worth reading

    The hardening-off guide and the squash bug guide have been rewritten to read like a person talking rather than a manual. Every temperature, every week count and every university quote is exactly where it was — what changed is the sentences around them. Both also now carry a short declaration of what makes them worth reading over the ten other pages answering the same question, and a check refuses to build the site if that claim is not actually in the page. For hardening off it is the six extension services that disagree about the length, plus the two crops that invert the whole exercise: celery, which the usual cold treatment ruins, and artichoke, which will not form a bud without exactly the cold that sets a pepper back. For squash bugs it is the stage argument — the bug you can actually see is the one spray works worst on, which two extension services state from opposite directions. Neither of those was new to the pages. Both were already in there, written by someone reaching for the bigger idea, and nothing had ever asked them to say so out loud.

  30. When we said two sources agree, it was sometimes one source counted twice

    Every figure on this site carries the publication it came from, and some carry more than one — which is meant to tell you the number has been checked in two places. **Eighty-three web pages were filed in our records under more than one name.** So a figure citing both names looked like two independent sources agreeing when it was one page, cited twice. **Nothing on the site was wrong because of it, and we checked that specifically rather than assuming.** No figure anywhere actually cited both names of the same page — so no confidence was inflated, and not one number changed. What existed was the mechanism, waiting. We found it because two people working on different things hit it within an hour of each other, and the second one stopped before publishing anything built on top of it. The cause is dull and worth saying plainly. Our source list grew over months, and two naming habits ran side by side — one written by hand in capitals, one generated automatically in lower case. **The same university page could arrive down both routes and be filed as two different things.** Nobody was careless; the list simply had no rule that a page may only appear once. **Now it does, and the build refuses to finish if a page is ever filed twice again.** Ninety-four duplicate entries were merged into the originals and every figure that pointed at one was repointed — 12,646 citations checked, all of them still resolving. If you have downloaded our plant database, the source list in it is now 845 publications rather than 881. **That drop is the fix, not a loss:** the missing 36 were pages already in there under another name. Every figure and every value in the download is unchanged, which we verified by rebuilding the whole dataset and confirming the health report came out byte-for-byte identical. If you keyed anything on our source IDs, download it again.