Why this exists
The space industry is still nascent, and a lot of the work that sounds like science fiction (orbital data centers, lunar compute) doesn’t make the headlines of the news I follow. Instead of trying to find a publication that covers a beat this narrow, I figured it was reasonable to just make my own.
There was a second reason. I wanted to see what’s actually possible for automating a workflow like this. Even a few months ago, the kind of relevance filtering this newsletter depends on would have been too tedious or too unreliable to automate. I wanted to find out where the bar had moved.
What it does
Every Sunday evening, a short markdown issue lands in subscribers’ inboxes. The beat is narrow on purpose: orbital and lunar computing infrastructure. Companies building space datacenters, in-space cloud announcements, radiation-hardened compute, lunar power for compute, plus the funding, contracts, and government RFIs around all of it.
Each issue follows a fixed shape:
- A one-sentence intro naming the top story of the week
- Sections for Launches & Hardware, Business & Funding, Tech & Research, Industry & Policy, and Quick Links (any of which can be empty)
- Per story: bold headline, read estimate, a short paragraph on what happened and why it matters, a Read more link
- A one-line sign-off that reflects the week’s biggest story
If a week has no qualifying stories, no issue ships.
How it works
- Fetch: feedparser pulls roughly 18 RSS feeds covering space industry trade press (Payload, SpaceNews, Parabolic Arc), broader tech (Datacenter Dynamics, The Register, TechCrunch), and the agencies (NASA, ESA). Anything published since the last issue goes forward.
- Score: Each item gets a 0-to-10 relevance score from Gemini Flash, prompted with a calibration set of titles at each tier (a 9 looks like ESA Taps Edge Aerospace for Space Cloud Contract; a 2 looks like Anduril Names Its SBI Team for Golden Dome). Anything below the threshold is dropped.
- Write: The keepers, sorted by score, are passed back to Gemini with a writer prompt that fixes tone, section structure, and length. It returns the full markdown body, no frontmatter.
- Email: Resend sends the issue to a YAML list of subscribers, wrapped in a light HTML template.
A few small choices kept this maintainable: one model for both scoring and writing (Gemini Flash, cheap), markdown as the only output format, YAML for both feeds and subscribers so adding either is a config edit rather than a code change.
What’s next
- Add a narrative layer. Right now each issue is a digest of the week’s stories. The bigger story underneath is that orbital and lunar compute is moving from “science fiction” to “feasible” in real time, driven by Starship and other high-payload launch capabilities. A short editorial framing at the top of each issue, naming the shift, would make the newsletter more than a list.
- Tighten the relevance filter through backtesting. The scorer has been good enough to ship, but a backtest against past weeks would probably surface both stories that should have made the cut and ones that snuck in as fluff. That’s the next round of prompt iteration.
What I learned
The hardest single piece was the relevance filter. It’s the biggest time-saver if it works, and the biggest bottleneck if it doesn’t. Building this turned into a small case study of where the cheap, fast, reliable model frontier sits right now, both when I started the project and how the frontier has moved in the months since. The honest takeaway: low- and no-cost models can carry a real editorial workload now in a way they couldn’t this time last year.
Status
Shipped. Issue 1 is live. The cron runs every Sunday at 5pm Pacific; new issues post automatically when the week has enough qualifying stories.