Station operations software
Local news on your station again. Without a newsroom.
NewsTrove watches the outlets covering your county and hands you the list every morning. You tick what’s worth writing up. Those come back four ways — website article, a :30 on-air read, a Facebook post, a Nextdoor post — with a graphic, and wait for you to approve them.
Nothing gets written that you didn’t pick. Nothing publishes that you didn’t approve. It takes the hunting and the typing; the judgement stays with you.
You didn’t drop local news because it stopped mattering.You dropped it because the hunting is the job.
Writing a local story takes ten minutes. Finding out there was one takes an hour — six websites and a dozen Facebook pages, every morning, holidays included. That is the part that doesn’t scale, and it is the part that gets dropped first.
There’s no deadline on it
Nothing breaks if local news doesn’t happen today. So it slides — until it stops.
There’s nobody to hand it to
One person sells the spots, writes the copy and runs the board. There is no news director.
The same story, three times
Air, website, Facebook — written out again for each. Nextdoor gets skipped entirely.
The competition has a newsroom
The station across town has staff for this. You have a morning.
What makes it different
Three things that decide whether this is usable
You pick. Then it writes.
The list comes to you before a single word is written
Everything the morning sweep found is listed on one screen — headline, source, how old it is, the blurb, a link to the original, and a badge showing what a writer would actually have to work from. Uncapped and unpaginated, deliberately, because a story must never go unnoticed on account of something trimming the list. You tick the ones worth doing and press Write these now. Nothing else gets written, and nothing else costs anything.
That badge matters more than it looks. A story marked headline only cannot come back as anything but thin, however good the headline is — so you know before you spend, not after you read it.
One story in. Four ways out.
Every story is written four times, and one of them is written to be read aloud
Most tools that write a story write a story. The work you actually have is the same facts four times over, in four registers — and the fourth one never gets done. NewsTrove writes all four from the same set of facts, every time, whether the story came off a feed or you typed it in yourself.
The on-air read is the one that gives it away. Roughly sixty to eighty-five words, sized for thirty seconds. Numbers spelled the way they are said — twenty-two thousand dollars, just after nine last night. No abbreviations, no URLs, nothing an announcer trips over on a cold read. A hard name is sounded out phonetically the first time it appears.
Crews shut off water to the Highland Park school building Tuesday morning after a main broke on Ridge Avenue. The district sent students home just after ten and said classes will resume Wednesday…
A water main break on Ridge Avenue closed Highland Park school this morning. The district sent students home just after ten, and says classes resume tomorrow. Public works crews expect the repair to take most of the day.
Highland Park sent students home this morning after a water main broke on Ridge Avenue. The district says classes are back tomorrow, and crews expect to be out there most of the day.
If you’re near Ridge Avenue, water pressure may be low until this evening while crews repair a main that broke this morning. Highland Park families: the district sent students home just after ten and says classes resume tomorrow.
Illustrative. One story, the four versions it comes back as.
A brief stays a brief.
The thing that makes it usable is what it refuses to write
Hand any writer a two-sentence blurb and ask for “a news story”, and you get the missing third sentence invented. That is the failure that ends the experiment, because a padded story reads as authoritative and isn’t — and the station’s name is on it.
So every story grades its own sourcing: full, brief or thin. Thin ones are badged in red in the queue and in the morning email, so a two-line blurb can never quietly become something that reads fully reported. Padding is treated as the worst available outcome, not a nice-to-have.
A morning, end to end
Twenty minutes, and most of it is reading
One email arrives each morning listing what is untriaged — including yesterday’s leftovers, not just what the last sweep happened to find. It is a nudge, not a control panel: it carries no stories and no buttons, so a forwarded digest cannot publish anything. It links back to the site, where triage actually works, because weighing a dozen headlines against each other does not fit in an email and should not be done one story at a time.
Ticking stories and pressing Write these now starts the writing immediately — not on a timer. The work runs in the background, so the page comes straight back and drafts appear in the Story Queue as they finish. It is safe to close the browser and go and do something else.
In the queue you can edit the headline and the copy before approving. Approving publishes the article to the station website and puts the Facebook, Nextdoor and on-air versions on screen, each with a Copy button. Rejections are kept as a record rather than deleted, and dismissing a candidate is undoable — dismissed stories stay on their own filter with a Put back button, so a mis-click costs nothing.
The photo problem, solved rather than lived with.
Every story gets artwork the station owns
A news photo belongs to whoever took it. Unlike the facts in a story, there is no rewrite that makes reuse safe — so other outlets’ images are never downloaded, full stop. The usual consequence of that rule is stories with no artwork at all, which look broken on a website and dead on Facebook.
Instead, each story gets a branded card drawn from its own headline and key facts: 1200×630 for the article page and the Facebook link preview, and a separate square for the news list — drawn again at that size rather than cropped, because a headline set for a wide card is a smudge when it is squeezed into a square.
Before approving you can reword it, redraw it, swap in a photo of your own, or leave it off entirely. None of that is destructive, and none of it needs a designer. Stories you type in yourself get a graphic on save too, in the same pass as the other three versions.
Illustrative. Wide card for the article page and Facebook; the square is redrawn, not cropped.
Finding the stories
Adding a newspaper is a form, not a code change
Sources are managed in the browser. Paste a URL, pick what kind it is, and it is in — no deploy, no engineer, no waiting on anybody. Keyword sweeps go wider than the outlets you already know about: anyone covering the county turns up, including the ones you have never thought to check.
Where an outlet isn’t paywalled it can be told to read the full article rather than the summary, which is the difference between a full story and a brief one. Where it is paywalled, it works from the summary and says so rather than failing or guessing.
Every source shows its own health: when it last checked successfully, and the specific error if it didn’t. There is a test mode that hits every source and reports what each one returned without writing anything — which is what you run before trusting a new outlet, and again whenever one goes quiet.
Ask what it would find in your marketThe question everyone asks first
It does not watch Facebook pages — and that loses less than it sounds
A lot of local news does land on Facebook before it hits anybody’s website, so this is the first thing every station asks for. It can’t be built reliably, and that isn’t a matter of effort.
Why not
Reading posts from a Page you don’t own needs a Meta permission that is granted only through App Review, takes weeks, and is very rarely approved for small-scale use. There is no self-serve path to it.
Scraping doesn’t survive contact either: public Page content sits behind a login or consent wall for logged-out visitors, and requests from a datacenter IP — which is what any server is — get blocked quickly. It also breaks Meta’s terms, and the account most exposed to a block is the station’s own.
Third-party bridges that claim to turn a Page into a feed are scraping underneath. They work sometimes, break without warning, and carry the same risk.
What happens instead
Nearly every outlet that “posts to Facebook first” is posting a link back to its own article. The story exists on their website at the same moment. So the feed gets the same story — usually within minutes, sometimes before the Facebook post — and it arrives with the actual article text, which the Facebook post never has.
Reading the source directly is the better input, not the consolation prize.
What is genuinely lost: a page that posts news only to Facebook and has no website — a volunteer fire department, a sheriff’s office using Facebook as its press channel. For those, the honest answer is a bookmark folder and two minutes a day, with the story typed into the form below. That path is built, and it is part of the product rather than a workaround.
It works the other way too
Type a story in and get everything else back
A school closing. A council decision. A listener who called it in. Type it into the New Story form, save it, and the Facebook post, the Nextdoor post, the :30 on-air read and the graphic are all produced from it in one pass — same house style, same guardrails, same Copy buttons.
This is the part that pays for itself on the days nothing comes off a feed. One story in, four ways out plus artwork, and the two versions that normally never get written are the two that arrive free. If the first pass isn’t right there is a rewrite button, and editing before approving is always available.
Core features
What it does, story by story
Triage before you spend
Everything found is listed, uncapped and unpaginated. Only what you tick gets written.
Write these now
Writing starts the moment you press it and runs in the background. Close the browser; drafts appear as they finish.
Three kinds of source
Feeds, keyword searches across every outlet, and scraped listing pages for sites that publish no feed.
Sources managed in the browser
Adding a newspaper is a form. No code change, no deploy, no engineer.
Full-article reading, per source
Turned on for outlets that aren’t paywalled. That is what turns a brief into a full story.
Paywall-tolerant
When the full text can’t be read it works from the summary and says so, rather than failing or guessing.
Deduplication that holds
Survives tracking parameters, www., trailing slashes and anchors. The same story is never drafted twice.
Age filter
Yesterday’s news doesn’t resurface as this morning’s find.
Per-source health
Last successful check and the specific error if it failed, for every source, on one screen.
A test mode
Hits every source, reports what each returned, saves nothing. Run it before trusting a new outlet.
Sourcing graded per story
Full, brief or thin — and thin is badged red in the queue and the email, where you can’t miss it.
A writer’s note on every story
A short line flagging what was missing or wants checking before it runs.
Crime copy constrained
“Charged with” and “accused of”. Names and ages match the source exactly or are left out.
A branded graphic per story
Drawn from the headline and key facts. Reword it, redraw it, replace it with your own photo, or leave it off.
Dismissing is undoable
Dismissed candidates are kept on their own filter with a Put back button. A mis-click costs nothing.
API key set from the browser
No SSH, no editing PHP. Paste it, save, and it tells you straight away whether it was accepted.
Being straight about it
Three things it deliberately doesn’t do
Each of these is a decision with a reason, not a gap in the roadmap. Better to read them here than find them in week two.
It doesn’t monitor Facebook pages
Not a limitation that effort fixes — the permission is App-Review-only and rarely granted, and scraping hits a login wall and gets blocked from datacenter IPs. Outlets that post to Facebook first are posting a link to their own article, so it reads the source directly and gets the full article text instead, which the Facebook post never has.
It doesn’t post to Facebook or Nextdoor for you
Posting to a Page you do own is technically possible and is left out on purpose: approving a story and posting it in the same click removes the last place a bad draft gets caught. Nextdoor has no public API at all, so copy-and-paste is the only route there and will stay that way.
It doesn’t use other outlets’ photos
A news photo belongs to whoever took it, and unlike the facts there is no rewrite that makes reuse safe. Image URLs are noted; nothing is ever downloaded. That is why every story gets a drawn card of its own instead — artwork the station owns, rather than no artwork at all.
Running it
No new server, no new box in the rack
It runs on the website and database the station already has. There is nothing to install in the studio, nothing to rack, and nothing that has to stay up at the transmitter site. The API key is set from the browser — paste it into Settings, save, and it tells you immediately whether the key was accepted, rather than leaving you to find out from a silence tomorrow morning.
It degrades safely, which matters more than it sounds for something that runs unattended every morning. With no key set, stories simply queue up and wait — harmlessly, nothing lost. If the database piece hasn’t been installed yet, the admin page says so and keeps working normally rather than breaking the site.
There is a hard daily cap, and it is a runaway-spend guard rather than an editorial one: it refuses an oversized run outright and tells you what it left queued, instead of quietly writing the first few. A silent trim is exactly how a story goes missing. The editorial filter is you, at the Candidates gate.
Built on a working station
Running on a licensed FM, not a mock-up
Every behaviour on this page exists because of something that happened on a real station. The Candidates gate exists because the first automatic run would have written up three obituaries and a competitor’s giveaway promo. The thin-sourcing badge exists because a two-line blurb came back reading like a filed report. The source health screen exists because two feeds “worked” for a fortnight while quietly returning the wrong newsroom’s stories.
Better together
The on-air read still needs a voice
NewsTrove writes the :30 read; somebody still has to read it. That is deliberate — news copy going to air unheard is exactly the kind of shortcut this product exists to refuse. VoiceTrove handles the station’s between-song breaks the same way, with the same insistence that nothing airs unverified, and the two share one set of station branding and one pronunciation list.
They are separate tools today. The on-air read arrives as copy on a page with a Copy button on it, ready for whoever is reading the news.
Pricing
Priced per station, not per group
Newsroom automation is normally sold to groups on annual contracts, at a figure that assumes there is already a news director to hand it to. NewsTrove is for the station that doesn’t have one.
Single station
One station, one market.
- Unlimited sources, added from the browser
- Four written versions and a drawn graphic per story
- Triage before anything is written, approval before anything publishes
- Runs on the website and database you already have
Station group
Networks and multi-signal operators.
- Per-station rate below the single-station price
- Separate source lists and separate queues per market
- One house style across the group, or one per station
- Custom work quoted alongside — see the software page
Pricing is not set yet. There are deliberately no figures on this
page. Fill in the amount and per fields in the
$tiers array at the top of software/newstrove.php, add an
offers block to $page_schema, then set
$pricing_is_placeholder to false to remove this banner.
Early-access stations keep the rate they join at. NewsTrove is in development and taken on a small number of stations at a time, so pricing is confirmed in writing before anything is installed. AI usage is billed to the station’s own account and runs to a few cents a story — sweeping the sources costs nothing, and nothing is spent on a story you didn’t tick.
Questions
The things stations ask first
Can it publish or post something without me seeing it?
No. Every story stops twice — once before it is written, once before it is published — and both stops need a person. Approving publishes the article to your website and puts the Facebook, Nextdoor and on-air versions on screen to copy. It never posts to Facebook or Nextdoor itself, and that is a decision rather than a missing feature.
Do I pay for stories I didn’t want?
No, and that is what the Candidates gate is for. Sweeping the sources is free; writing costs money, and nothing is written that you didn’t tick. Each candidate shows a badge for what a writer would actually have to work from, so a headline-only story can be left alone before you spend anything on it rather than after you read it.
Will it watch our local Facebook pages?
No, and it is worth reading why. The API permission for reading a Page you don’t own is App-Review-only and rarely granted; scraping hits a login wall, gets blocked from datacenter IPs, breaks Meta’s terms and puts the station’s own account at risk. Outlets that post to Facebook first are almost always posting a link to their own article, so it reads the source directly — and gets the full article text, which the Facebook post never has.
Is it going to make things up?
It is told not to invent any detail, number, name, timeline or quote that isn’t in the source, and never to imply the station confirmed anything. The harder problem is the quiet one: a thin source padded into something that reads fully reported. Every story grades its own sourcing and thin ones are badged red, so you can see what the writer actually had to work from before your station’s name goes on it.
Are we republishing another outlet’s work?
No. Stories are rebuilt from the facts rather than reworded from the source’s sentences — facts aren’t copyrightable, the way a reporter phrased them is. Attribution goes to where the facts came from: the sheriff’s office, court records, what the mayor told the committee. Photos are the one place there is no equivalent argument, so no photo is ever taken — each story gets a drawn card instead.
What does it need on our end?
Your existing website and database. No new server, nothing racked in the studio, nothing at the transmitter site. Sources are added from a browser and the API key is set from the browser, so neither one is a code change or an SSH session.
How much does it cost to run?
A few cents of AI usage per story, on the station’s own account — a handful of dollars a month at a cap of a dozen stories a day, less in practice because quiet days don’t fill the cap. Sweeping the sources is free, and nothing is spent on a story you didn’t tick.
Can I write my own stories in it?
Yes, and it is half the point. Type in a school closing, a council decision or a listener call, save it, and the Facebook post, the Nextdoor post, the :30 on-air read and the graphic are produced in one pass — the versions that normally never get written arrive for free.
Is it available now?
Not generally. It runs at a licensed FM today and is being prepared as a product for other stations. Early-access stations are taken on a small number at a time so each deployment gets real attention.
Put local news back in your morning
Tell us which outlets cover your county and what your mornings look like now. We will tell you what NewsTrove would find there — and what it would refuse to write.
