UFOs, hauntings, cryptids and high strangeness.
Updated 3284 stories in the last 30 days92 live sources

How this works

Paranews is a machine-assembled wire for UFOs, hauntings, cryptids and high strangeness. Every half hour it re-reads its sources, folds the same story from different outlets into one entry, grades it by who published it, and ranks the result.

What it does not do

It generates no summaries and uses no language model. Snippets are the publishers' own feed descriptions, or the opening of the reader copy, cut to 300 characters. Nothing here is verified.

Reader copies

For each story the site keeps a reader-mode copy of one outlet's article: the text a browser's reader view would show, its lead image reduced to a thumbnail, and nothing else from the page. "Read here" opens it over the front page; the original is linked at the top and bottom of every copy. Pages that ask not to be crawled, pages behind a bot wall and pages with fewer than 150 words of text are skipped, and the story's next outlet is tried instead.

It carries no entertainment: films, television, games, books, stage and music are filtered out by headline keywords and by a list of entertainment outlets. Two filters catch the rest of the noise — a beat word used as a ticker, product or team name ("NASDAQ: UFO"), and a headline that names nothing from any beat. Together they removed 1912 stories from the current window. A story is hidden only when more than half the outlets covering it trip a filter.

Three more signals demote rather than hide: Halloween attractions and ghost tours; perennial service copy ("The 10 most haunted hotels in America, ranked"), which is on the beat but is rewritten every autumn; and an organisation's own housekeeping, like a researcher's podcast appearance or a call for papers.

Sources

96 sources are polled: Google News searches for each beat across the US, UK, Australian, Canadian and Irish editions, plus direct feeds from genre outlets, science desks, sceptics, university research units and journals. Three consecutive failures quarantine a source, a daily probe lets it heal, and a GitHub issue is opened. The sources page shows the live state.

Reddit is polled only through the application-only OAuth route Reddit sanctions, and only when credentials are configured. Its robots.txt disallows everything, including the RSS feeds, and its API rules forbid the browser user agent this site sends to ordinary feeds. A Reddit post that links to a publisher is filed under that publisher and graded by its tier; a post that is someone's own account of an experience stays unverified and has to clear a much higher bar to appear at all.

Beats

A story can sit on more than one beat. A beat is only ever claimed by the headline: a feed that declares a subject is asserting something about the feed, not about the story, so a headline naming nothing from any beat is set aside whatever brought it in. High Strangeness is held to that hardest, because it is the beat everything drifts into — an archaeological dig, a suspicious death or an atmospheric adjective is not high strangeness. It is Keel’s beat now: time went to Temporal Anomalies and the cosmos went to Science, which is here because a fireball that turns out to be a fireball is still worth the page.

Beats are re-derived on every build, so a tightened rule applies to the whole archive rather than only to new stories.

Tiers

Each publisher is assigned a tier by lookup table, never by reading the story. It tells you what kind of outlet said it, not whether it is true.

Unknown Google News publishers default to genre press. Broadcast call signs and newspaper naming conventions are matched by pattern; the table lives in config/sources.yml.

Grouping

Headlines are compared as bags of stemmed words weighted by rarity across the current month, so two stories sharing "ufo" and "sighting" are not the same story, but two sharing "pentagon", "private" and "archive" are. Twenty affiliates running one syndicated headline count as a single write-up.

Ranking

Score = publisher weight × corroboration ÷ age. Weight sums the best tier of each independent write-up, corroboration grows logarithmically with the number of write-ups, and age is measured from the latest coverage, so a developing story stays up. The front page never shows more than two consecutive stories from one beat.

An independent write-up is not simply a distinct headline. Two reports count as one when they share a headline or share a publisher: twenty affiliates running one syndicated story are a single write-up, and so are three rewrites of one sighting by the same tabloid.

Scholarly sources are rare and are covered once, so they score far below stories that many outlets picked up. Rather than weight the ranking in their favour, they get their own column on the front page.

Conventions are filtered too. One UFO festival can produce eight stories about its own schedule, so a convention, festival, expo, contest or touring show is hidden — unless the headline carries an actual claim rather than logistics. A witness account given at a festival is still a witness account.

Maps

The UFO and cryptid maps place reported sightings against the whole run of the archive, not the rolling window, with a density layer and a date filter.

A story is placed only on evidence: a headline that puts an event somewhere ("spotted in Damariscotta"), a wire dateline, or a subject that names its own location — Nessie is Loch Ness by definition, and those pins are drawn hollow to say so. It must also be a report of something witnessed: a festival, a convention, a film, a statue or a "this day in history" column is beat news but it is not a sighting, and it places well — the Mothman Festival really is at Point Pleasant — so left alone it sits on the map looking exactly like an encounter. About one story in thirteen qualifies. The rest name no place that can be trusted and are left off rather than guessed at, because a wrong pin is worse than no pin. A pin marks where a report says something happened; it is not a verified location, and the tier still describes the publisher rather than the claim.

Below each map, reports per day across the whole run. That chart counts every story on the beat rather than only the placed ones, because the map needs a location and a timeline does not — restricting it to mapped stories would throw away twelve thirteenths of the signal. Empty days take up space rather than being skipped, since a flap is as much about the quiet either side of it as the spike. Dragging across the chart filters the map to that stretch of days.

Places come from a GeoNames extract and a country list, with region centres computed from the populations of the towns inside them. A short curated list overrides population where it would mislead: "Roswell" is Roswell, Georgia by population and Roswell, New Mexico by every other measure. Map tiles are served by OpenStreetMap.

Every pin is also a row in the table under the chart, sortable by date, place or how many outlets carried the story; clicking a row finds it on the map, and dragging the chart narrows the table with it.

All of it downloads. Each map offers its sightings and its reports-per-day as CSV and JSON — UFO sightings, JSON, UFO reports per day, JSON, and the same four for cryptids. The CSVs carry coordinates, precision, how the place was established, the publisher and its tier, the number of outlets and a link back to the story, so a claim in the data can be traced to the report behind it. With a date range selected on the chart, the download button hands back just that stretch.

Archive

Every item ever seen is committed to the repository as JSON, one file per publication day, so the state of the site on any date can be reconstructed from git history. Reader copies and their images are committed too and never removed. The front page and beats show the last 30 days; the archive lists every story with a reader copy, by month.

Corrections

A mis-tiered publisher, a dead feed, a missing beat: all are one-line edits to config/sources.yml. Open an issue or a pull request.

Original ↗

Loading…