Daily Dispatch: a digest and podcast of my links
I send myself links all day. Daily Dispatch turns them into a daily digest, a two-host podcast and an app for phones, e-ink tablets and desktops.
The app runs on Android phones and e-ink tablets, iOS, the web, macOS, Linux and Windows.[1]




I send links from my phone all day, and I wanted them back once a day as something I would actually read. Daily Dispatch turns the links you send from your phone during the day into a daily news digest and a two-host podcast episode.[1] Both land in a small reading app styled after the old Yahoo News Digest, which Yahoo launched in January 2014 and stopped publishing in June 2017.[1][2][3]
It started as a 5 PM digest for me, and I don’t like building one-offs, so I put the whole thing in one public repo that anyone can run.[4]
What it does
Every day the same links become three things, starting with a written digest: the daily-digest skill for Claude Code turns the day’s links into a digest page and rebuilds the archive.[5] The second is a podcast, a “two-host, call-in style podcast episode.”[6] The third is the app, where the digest, the archive and the episode live.[1]




How it works
You send links with Pushbullet, whose API lets other programs “build on the Pushbullet infrastructure.”[7] A Python pipeline captures them and writes the digest.[1][5] The daily-dispatch command line tool writes the podcast script and voices it.[6]
The script writer and the voice are both swappable, with four script writers to choose from: Anthropic, OpenAI, Ollama, and any command you choose.[8] There are six voice providers: ElevenLabs, OpenAI, Google, Amazon Polly, Azure and a local voice server.[9] The link-talk-podcast skill voices the two hosts with ElevenLabs Text to Dialogue, which makes multi-speaker dialogue in one call.[10][11] Paid providers always start as a dry run, and nothing spends money until you add --confirm.[6]
The show’s style guide asks for “two hosts, Car Talk-brothers style.”[12] Car Talk was NPR’s call-in show where two hosts joked their way through people’s car problems.[13] The same guide says to “Cut the joke rate roughly in half compared to your first draft.”[12] I tried to hold this post to that rule too.
A daily episode is optional, and when you turn it on, the tool installs a job with systemd, cron, launchd or Windows Task Scheduler, whichever your machine uses.[14]
New editions and episodes come with a notification: Android and iOS use Expo push, the web uses Web Push, and the desktop app checks for news every 5 minutes.[15][16][17]
Where it runs
The app runs on Android phones and e-ink tablets, iOS, the web, macOS, Linux and Windows.[1] The e-ink version is a grayscale build of the same app.[1][18]
On the desktop it is the same React Native code as the phone app, drawn by react-native-impeller-platform.[19][20] “There is no Electron and no web view.”[19] That platform is another of my open-source projects.[21]
The desktop screenshots come from the repo’s desktop check, a 480x900 window drawn by the engine.[22]

Quick start
The README’s quick start runs the desktop app on sample editions, writes a podcast script from example stories, and runs the pipeline’s tests, and none of it needs an account or an API key.[1]
git clone https://github.com/blbaker/daily-dispatch.git
cd daily-dispatch/app
npm run desktop:install
npm run desktop:demo
The podcast tool is on npm as @blbaker/daily-dispatch.[23] It needs Node.js 22 or newer, plus ffmpeg to make audio.[6]
How it’s tested
The latest build on main made the Android phone and e-ink apps, an iOS simulator app, the web export and desktop packages for macOS, Windows and Linux.[24] Its script tests passed 44 of 44.[24] The podcast package passed 176 tests with one skipped, and its release checks passed 113 of 113.[25] Before a release, CI publishes the package to a throwaway local registry and runs it by name.[26]
What’s missing
- iOS is a simulator build for now, since a device build needs an Apple developer account.[1]
- The macOS desktop app isn’t signed or notarized yet.[19]
- Without a release key, the Android apps are signed with the public debug key.[27]
- The Android build used for the push tests was a debug build that never ran on a real phone.[15]
- A real Web Push to the browser used in testing fails, because Google’s push service answers 410.[15]
Daily Dispatch is on GitHub at blbaker/daily-dispatch under the MIT license, with docs at blbaker.github.io/daily-dispatch.[28][29]
More open source from Baker
-
react-native-impeller-platform on GitHub
React Native Platform, rendered through Impeller
react-native-impeller-platform DocsWhy I put React Native on Impeller
-
OpenVoid on GitHub
Run Void apps on your own infrastructure
Sources
- daily-dispatch README
- Yahoo Launches News Digest, Its First App Based On Summly (TechCrunch)
- Yahoo News Digest for iOS to Shut Down on June 30th (iPhone in Canada)
- GitHub REST API: repos/
blbaker/ daily-dispatch - Claude Code skill: daily-digest
- @blbaker/
daily-dispatch package README - Pushbullet API documentation
- Script writer adapter registry (writers/
registry.ts) - Voice provider adapter registry (voices/
registry.ts) - Claude Code skill: link-talk-podcast
- Text to Dialogue (ElevenLabs documentation)
- Link Talk podcast style guide
- The Best of Car Talk (NPR)
- Daily schedule installer code (schedule/
install.ts) - App-side push notifications doc (push-clients.md)
- Expo push notifications setup (Expo documentation)
- Push API - Web APIs | MDN
- App builds and release artifacts doc (builds.md)
- Desktop app doc (desktop.md)
- npm registry: react-native-impeller-platform
- react-native-impeller-platform GitHub repository
- Desktop gate (app/
desktop/ scripts/ gate.mts) - npm registry: @blbaker/
daily-dispatch - GitHub Actions run 39444559563 (Build workflow, job: CI script tests)
- GitHub Actions run 39444559412 (package workflow, job: package)
- GitHub Actions workflow: package (package.yml)
- GitHub Actions workflow: Build (build.yml)
- LICENSE file
- Daily Dispatch documentation site home page
About the author
Brandon Baker is a Solutions Architect in Ames, Iowa. He builds Daily Dispatch, OpenVoid and react-native-impeller-platform.