The last couple of days I spent on writing a web service to notify people of new La Trappe Quadrupel Oak Aged batches. Why did I spent my free time on that? Well… Reddit made me do it! And I also really like that beer 😜🍻
Where can I find this important service?
How is the service written?
The service is written in Go. It contains an ever running job that checks the online store of La Trappe. Once the version number is incremented, the service sends out a mail to all people subscribed. It also contains a webserver to handle the front page and subscriptions.
- Batches and subscribers are stored in a Sqlite database using Gorm as ORM.
- Scraping is done with GoQuery.
- Web service is written with with Echo.
- Mails are sent through Mailgun. (But the the service itself can be configured to send through any SMTP gateway)
- All html templates are compiled within the binary, so they are saved from memory. Alle CSS is included in the HTML, without any external assets (apart from Google fonts). So it should be fast and stable.
- All is packed in a Docker image. In production it is served behind Traefik on a Scaleway instance.
This written in a very short amount of time, while drinking some La Trappe beers. So don’t take this as a textbook example of the perfect Go app. 😇
I probably spent too much time on a service that nobody will use. But at least it will be useful for myself and I had fun coding it!
If you find it useful, you can always offer me a beer as reward. 🙃