Colophon
How this newsletter is built
This page is about how robertomb is made: why I built it instead of using a newsletter platform, and what it runs on.
Why I built it
I wanted a newsletter that felt like my own place on the internet. A platform would have been faster to start with, but I wanted the domain, the archive and the subscriber list to be mine, and I wanted to understand every piece of the system.
I also had a few rules for it:
- Light and fast. Pages are plain HTML and load almost instantly, even on a slow connection.
- Easy to keep running. No database and no admin panel to maintain. Posts are text files.
- Easy to find. Every issue has a permanent, public page that search engines and AI assistants can read and link to.
- Readable everywhere. In the browser, in RSS readers, and in any email client.
It also helps that I work on growth at Resend. Running my own newsletter on it is the best way I know to feel what our users feel.
How it works
- I write each issue as a Markdown file and commit it to Git.
- The site rebuilds into static pages: one per issue, plus the archive, the RSS feed and a few files for search engines.
- When an issue is ready, I send myself a test email, read it on my phone, and then send it to everyone with a single command.
That's the whole workflow.
What it's built with
Email: Resend.
- Broadcasts send each issue to the whole list, with tracking for opens and clicks.
- Contacts and Segments hold the subscriber list, so there's no database of my own.
- Unsubscribe links are handled by Resend in every email.
- React Email renders the email templates. Each issue is laid out for email clients, not copied from the website.
- Double opt-in: when you subscribe, you get a confirmation email with a signed link that expires after 48 hours. You're only added once you click it.
- Every page is generated in advance, so there's no server rendering to wait for.
- Fonts come from your device, so there's nothing extra to download.
- Light and dark mode follow your system setting.
- Privacy-friendly analytics from Vercel, with no cookies.
Discoverability.
- Structured data on every page describes each post and its author for search engines.
/llms.txtand a Markdown version of every post (add.mdto any post URL) make the archive easy for AI assistants to read and cite.- A sitemap, a full-text RSS feed, and new posts submitted to search engines through IndexNow.
Want one like it?
I plan to open-source the whole project so anyone can run a newsletter like this with their own domain. Until then, if you'd like to set up something similar, email me. I'm happy to share what I learned.