You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit fa0d7e3
Browse filesBrowse the repository at this point in the historyBrowse files
feat(directory): a category leads with what has just been published (#218)
/podcasts opened on whichever show the importer reached last and showed no
dates at all, so a directory of 318,000 podcasts fronted shows that had
published nothing for six weeks and gave a reader no way to tell.
Two changes to the same complaint:
* the river. `view=latest` — now the default for podcasts — is the newest
episodes across every show, picked by `latestItems`: the 400 feeds with the
newest material, then their items through feed_items_feed_pub_idx, rather
than the feeds-to-items aggregate 0030 measured at 215 seconds. New index
feeds_category_published_idx makes that pick affordable for the rare
categories the river was built for.
* the roster. `view=shows` is ordered by when each feed last published and
says so on every row ("Latest episode Aug 12, 2026", with the gap on
hover). Feeds with no publish date yet — 42,000 still waiting on a first
crawl, including everything submitted this week — keep their arrival order
and follow the dated ones, so the pager still reaches them and a submitter
can still watch their feed turn up.
listFeedsByPublished is deliberately two queries rather than one `nulls last`:
that ordering cannot be served by an index here, and sorting a category of
318,000 rows on every request is not a page load.
Also on this branch: per-category follow filters, and the directory feed and
following feed follow the view they advertise.
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: apps/web/src/lib/categories.js
+56-1Lines changed: 56 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -45,10 +45,16 @@ export const CATEGORIES = {
45
45
noun: 'podcasts',
46
46
one: 'podcast',
47
47
title: 'Podcasts',
48
-
lede: 'Shows with audio in their feed and a publisher who filled in the podcast namespaces, newest first. Episodes play in the reader while you read the show notes.',
48
+
lede: 'Every show with audio in its feed and a publisher who filled in the podcast namespaces. The newest episodes across all of them first — press play on any of them here.',
49
49
schemaType: 'PodcastSeries',
50
+
entrySchemaType: 'PodcastEpisode',
50
51
item: 'episodes',
51
52
entry: 'episode',
53
+
// The category leads with what has just been published rather than with
54
+
// the feeds that published it. Only podcasts for now: it is the category
55
+
// where "what is new" is unarguably the question being asked, and the one
56
+
// whose entries the site can play where they stand. See CategoryIndex.
0 commit comments