Omnomnom
omnomnom.devWhy?
For years I’ve been getting more and more frustrated at GitHub’s notifications. The service itself is amazing and using bitbucket or gitlab at work is a huge jolt in terms of UX and development flow. But, having said this the notifications are pretty rubbish - so I built Omnomnom.
Currently on github there are two/three ways to watch a repo:
- Release notifications - Get an email when a release is created. These are normally pretty infrequent for established libraries.
- Watch the repo - Get an email for every comment on every PR and every issue. This can be dozens of emails a day for some repos.
- Subscribe to an issue or PR - Get an email for every comment on that one issue/PR.
You can if you want to follow the development of a repo you either accept that your inbox is going to be overrun or you can just skip everything and get an email after months of work have gone on. There is nothing in between and that is where Omnomnom comes in.
Omnomnom allows you to subscribe to a repo and then get a weekly digest email of the most interesting pull requests and issues that have happened on that repo in the last week. Currently we are ranking pull requests and issues based on a number of factors to determine which are the most interesting that week. This means you can keep up with repos without sacrificing your inbox.
Implementation
The UI is built using NextJS and TypeScript hosted on Vercel which is a really straightforward if you follow the path. All the auth and API for the frontend is managed in Next API functions as well which has an amazing local dev experience.
The backend is another lambda function that is triggered by an AWS event every Friday morning to send an email via SES.
Omnomnom uses dynamodb for a database and omanyd as the data mapper for node.
All of the infrastructure not in Vercel is managed using cdk which has been pretty amazing and in my opinion really straightforward when compared to terraform.