Why Fern talks the way it does
The rules behind Fern's words, shown through real strings from the app. Why late care is "waiting since Monday", why the mascot stopped talking, and the places where the voice still slips.
Until this September, a watering that slipped by three days could earn an evening push titled "⚠️ Monty needs attention!", with "Care is overdue by 3 days." underneath.
Now the same plant turns up in the next morning's summary. The title is something like "3 plants to look after today 🌱". The body lists what's due, "Water Monty and Goldie · Feed Olive.", and ends with one more sentence: "Monty has been waiting a little while."
Both messages carry the same fact. One wraps it in a warning sign and an exclamation mark. The other makes it part of the morning. This post is about why Fern talks the second way, and where it still doesn't. Several examples come from changes we made in late September, so they have a real before and after.
Two things at once
We've quoted Fern's tone guidelines before, in Calm by design: warm, clear, honest about uncertainty, never scolding or alarmist. A list like that is easy to agree with and hard to apply.
What makes it hard is that almost every sentence in a plant app is about two things at once. A plant three days behind on water is a fact about a plant. It's also easy to read as a fact about the person holding the phone, and not a flattering one. Our product brief says Fern should guide people "without making them feel judged", and most of the rules below come down to one move. Say plainly what's true about the plant, and be careful with what the sentence implies about you.
You can see the line in a single word. The care score on the You tab is about you, and its two lowest bands used to be called "Needs care" and "Struggling". They're now "Finding a rhythm" and "Let's get back on track". "Struggling" is still in the app, as a filter in My Plants for plants that are wilting. There it describes a plant, and that seems right to us.
The word for late
Today used to sort care into two piles, "Due today" and "Overdue". Now it's one list under "Needs you today", with earlier care at the top. A plant that's behind says "Waiting since yesterday", or "Waiting since Monday", and after a week, when a weekday could mean two different days, "Waiting 9 days". The plant is the one doing the waiting. Nothing in the sentence is a mark against you.
When a lot has piled up, Today says how many, "8 things are waiting", and the next words are "That happens." Then it points you at the most urgent, already sorted to the top. If you told Fern you were going away, the card while you're gone says "Care is paused. Fern won't remind you, and nothing will count as late while you're gone."
The push for people who haven't been around changed the same way. It used to say "Your plants miss you 🌿". Read now, that line guesses at a feeling plants don't have and hands you the blame for it. It says "How are your plants doing? 🌿" instead, and suggests you "Pop in when you have a minute". It only goes out when nobody, you or anyone who helps with your plants, has logged care on them for two weeks, and only once per quiet stretch.
Sometimes the right care is no care, and the words should back that up. When you tap a watering on Today, Fern first asks "How's Monty's soil?". If it's still moist, the main button is "Safely wait", with "Water anyway" still there underneath. Choose to wait, and Fern moves the watering two days and tells you "Good call".
Words you'd use out loud
Fern's code has its own vocabulary, and it used to leak. When someone in a shared home fed a plant, the others got a line built straight from the database: "Sam logged fertilize for Monty". It now reads "Sam fed Monty". Inside Fern the task is still called fertilize, but the pushes about it all say feed.
The light meter had the same problem in another form. Its headline was a big number with "lux" next to it, which is accurate and hard to picture. Now it says "Bright indirect", with a sentence under it: "Right by a bright window, no sun on the leaves". The server still keeps the reading for matching plants to the spot, but the app never shows the number.
Some words never appear at all. A plant kept away from the others during a pest treatment is "Kept apart until 25 Oct", and the word quarantine isn't anywhere in the app. The code calls plants that died the graveyard, and that word never reaches the screen. We wrote about the language around loss in When a plant doesn't make it, from "No blame here" to "Lay Wisp to rest".
Errors are where plain words help most, because people read them while something is already going wrong. Fern tells two failures apart. With no connection, it says "You're offline" and "Fern will catch up when you're back online." When Fern's server isn't answering, it says "Can't reach Fern right now", then "Your plants are safe. We'll keep trying." When the AI behind Ask Fern is down, the chat says "Fern's AI is taking a short break", and whatever the AI provider said about it is never shown.
Saying how sure we are
Plant care is mostly educated guessing. The honest thing is to let the words carry how good the guess is.
When you add your first plant, the plan Fern shows says something like "Water about every 8 days", with the "about" left in. Weather pushes say "Hot weather ahead 🌡️" and that "3 plants may need extra water". When Fern changes a schedule by itself, Today says so in a line like "Fern moved Monty's watering from every 7 to every 10 days." That line only appears when the number really changed, because, as a note in the code puts it, "adjusted to every 10 days" when it was already 10 misleads.
Even the button that starts a free trial follows the rule. It names the number of days only once the App Store has told the app how long the trial is, and until then says "Start free trial".
So does Ask Fern. Its instructions tell it to "never invent watering dates, moods, scores, or weather", and to say so plainly when it can't find something, instead of guessing. The rules for Growers, Fern's community, ask the same of people: "If you're not sure, say so." They also warn that advice there can be wrong, "including Fern's own suggestions".
When gentle would be wrong
A few situations call for plainer words.
Pests are one. A late treatment round on Today says exactly how late, as in "3 days late · dose 2 of 4", in red. Right under that it says what to do and what happens next: "Do it now. Doses 3 and 4 move 3 days." Treatment doses also keep reminding you about a plant that's resting on the free plan, and the app gives the reason in three words, "pests don't wait". If a course falls a whole week behind, Fern says "This course is a week behind", and offers to "Start again from today with the same spacing, or end it if it's not needed any more."
Frost is another. The push says "Frost risk ahead ❄️" and "Protect 3 plants from the cold", which is about as urgent as Fern's wording gets.
Where Fern needs to be noticed without harsher words, it uses colour. Late care shows in a clear red, because, according to a note in the code, the earlier shade "read as brown against warm cards and missed the eye". The words stay calm and the colour gets them seen.
One voice
Until late September, Fern answered to three names. The assistant was "Dr Fern". Voice commands went to "Tell Sprig", came back under "Sprig heard", and failed with "Sprig couldn't find anything actionable in that". We changed all of those, under a rule that fits in one line: the assistant is Fern in every string, and Sprig is only the drawing.
Sprig, the little sprout in a pot, has a smaller job since. He appears at most once on a screen, and only where he means something: a plant's own mood, an empty screen with nothing else on it, onboarding, being away, and real celebrations. He was taken off error screens, and he isn't on Fern Pro, the paywall or the screen at the end of a free trial.
The home screen widget has the clearest before and after. If any care was late, it used to show Sprig frowning, titled "Sprig is upset", with a count of overdue care. Now late care gets the same thirsty face as care that's due today. The comment above that code calls late care "ready for a drink", never a guilt face.
Asking for money
The paywall is where an app's voice is under the most pressure. The sheet for every locked feature in Fern says "Watering, reminders and care stay free". One version of the screen at the end of a free trial is titled "Your plants are still in good hands". Plants beyond the free plan's five rest, and the app says plainly that "Resting plants keep their history, just no reminders." The ways out are as easy to read as the way in: "Not now", and "Continue with the free plan".
Where we break our own rules
The most certain words in Fern are the first ones. The welcome screen says "Keep every plant alive", and under it, "Fern tells you exactly when each plant needs water, food or a little help". A few screens later the same app says "about every 8 days", and further in there's a whole flow for the plant it didn't keep alive. Everything above argues against that welcome screen, and it's still there.
The paywall's headline is "Give every plant your best". It's the closest Fern comes to suggesting you might be giving less.
The same late plant sounds different depending on where you look. Today says "Waiting since Monday". Its line in My Plants says "Water · 2 days late", beside an exclamation mark.
The renaming missed a few places. The guided tour still has a stop called "Ask Dr. Fern", and the treatment screens offer "Not sure · ask Dr. Fern". Explore labels a guide "Sprig's pick". The widget that lost its guilt face still lets Sprig say "I'm thirsty", and still counts a "12-day streak" where Today and the celebrations count calm days.
Some errors still sound like nobody wrote them. A reply the app can't read can surface as "Unexpected response from the server." And one onboarding error goes the other way, with "Fern couldn't reach the garden shed". It's charming, and it describes the same problem as "Can't reach Fern right now" in a completely different voice.
The thing we've settled least is who's talking. Many screens talk about Fern in the third person, as in "Fern will ask you to feel its soil". Others talk as Fern. Adding a plant from a photo says "I had a good look", Ask Fern opens with "Hi! I'm Fern.", and a rain alert says "I moved watering for Monty to after the rain." Each sounds fine alone. Together they're two narrators.
What it costs
Soft words can undersell. "Monty has been waiting a little while" is the same sentence whether Monty is two days late or twelve. Today switches to "Waiting 12 days" after a week, but the push stays the same. Someone glancing at their lock screen could fairly take "a little while" at its word. We think the calmer push is the right default, and it's still a real trade.
Careful words also take more work. "Overdue by 3 days" is one template that fits every case. The "Waiting since" lines are separate cases with a rule for when each applies, and the code that picks between them has its own tests. So do the light meter's words, and the morning summary's exact sentence.
And a voice erodes. Every new feature arrives with words of its own, written by whoever built it, and the leftovers above are what that looks like. What helps is writing the rules down next to the code they govern, where the next person will trip over them. Ask Fern's instructions carry the line "Encourage, don't scold." The celebration sheets open with a comment saying "Not better" and "It didn't make it" never get a celebration.
None of that settles the narrator. A Fern that says "I" is warmer, and it also makes a schedule sound like it has opinions. A Fern that always says "Fern" is clearer about where a suggestion came from, and a little colder. Right now it does both, and we haven't decided which one it should be.