Inspiration
I subscribe to a lot of newsletters, but I rarely read them. They get buried in my inbox, mixed in with noise and work emails, and I often don't have time to go looking for them. I wanted a way to get the value without the clutter.
What it does
Minimail connects to your Gmail, detects real newsletters, cleans the HTML, and uses AI to summarize and categorize them. The result is a clean, high-signal feed of what’s actually worth reading.
How we built it
We used the Gmail API to fetch emails and Supabase to store and manage content. We use a collection of Edge Functions to clean up and parse the HTML. Then we use OpenAI to summarize, classify, and tag each newsletter.
Challenges we ran into
- OAuth: setting up OAuth with Google to gain Gmail read access was a bit cumbersome.
- Parsing Gmail messages: Gmail messages are encoded, decoding them into readable HTML was challenging.
- Identifying newsletters: to minimize costs, we came up with an algorithm that identifies newsletters without calling any AI API. It instead uses several heuristics to filter out personal emails and identify newsletters.
- Cleaning up Gmail messages: passing full html files for AI to parse woul've been extremely expensive as HTML files tend to be very large with about 50% of the content being formatting and styles. We had to come up with a smart way to clean up the HTML files and pass the AI the smallest possible file so it could provide clear insights at a reasonable cost.
- Feature images: we wanted to show, for each newsletter, a featured image. Coming up with an algorithm to identify this image inside the HTML without the use of AI (to minimize costs), was a challenge.
Accomplishments that we're proud of
An awesome website that shows newsletter summaries in a very user friendly and clean UI.
What we learned
How to extract the most from Bolt. I was amazed by its capabilities.
What's next for minimail
Continue its development:
- Clean up the UI.
- Implement payments to make this a real service, as running it has associated costs.
- Implement recommendation system to allow the user to explore other newsletters and articles they may like.
Built With
- bolt
- supabase
- typescript
- vite
Log in or sign up for Devpost to join the conversation.